Presented by:

Mary Fries

from Beauty and Joy of Computing, Education Development Center, Inc.

Brian Harvey

from UC Berkeley

UC Berkeley Teaching Professor Emeritus. Co-developer (with Jens Mönig) of Snap!; co-developer (with Dan Garcia and several grad students at Berkeley, and a team at EDC led by Paul Goldenberg) of the Beauty and Joy of Computing curriculum. Long ago Logo developer and author of the three-volume Computer Science Logo Style books. Co-author (with Matt Wright) of Simply Scheme, a prequel to SICP.

June Mark

from Education Development Center

Volunteer Hosts
Thanks for helping with Snap!Con 2020!

Jeremy Millard

from DiamondFire

This poster presents the design principles of the Beauty and Joy of Computing (BJC) Advanced Placement Computer Science Principles (AP CSP) course. Snap! was created specifically to support the BJC curriculum, which was originally developed at UC, Berkeley and later adapted by Education Development Center, Inc. into a high school AP CSP course. BJC covers the AP framework but also teaches additional programming topics including recursion, higher order functions, and abstract data types. We invite both those new to the curriculum as well experienced BJC teachers to explore the pedagogy behind the curriculum design and how it has influenced the development of Snap! in this interactive poster session.

Our philosophy has always been to entice students to find programming something they enjoy and know they can do. Students must feel invited to use their own creativity and logic and to enjoy the power of their logic and the beauty and elegance of the code by which they express it. All students need genuine challenge and sensible support so all can have the joy of making—seeing themselves as creators, not just consumers, and seeing that their own intellect, not just our instructions, is the source of that making. The curriculum design principles we developed to support these goals have also guided the development of Snap!; learners should focus on the logic and structure of their thinking—not on misplaced semicolons, because attention to such syntactic detail is antithetical to broadening participation.

Based on our award-winning SIGCSE paper, our poster will cover BJC's pedagogical principles such as all kids can do challenging things, experience before formality, organizing around big ideas, learning by doing, helping students recognize and enjoy their own logic and creativity, and offering opportunities for personalization; our programming content principles such as the power of recursion, functions as data, and mathematics as a tool; our social implications of computing content principles such as how social implications differ for different groups of people, that everyone can participate in developing technology policies, and that teaching social implications is not “teaching ethics.” In addition, we will address how these design principles informed and were informed by teaching with Snap!.

BJC is an NSF-funded, College Board-endorsed, AP CSP course designed to help students develop computational habits of mind and appreciate the social issues of computing with the additional goal of broadening participation for female and underrepresented minority students. Like Snap!, BJC and the BJC Teacher Guide are available online and free of charge at and

Discuss on the Snap! Forum

20 min
Zoom 4
Snap!Con 2020
Poster / Demo
Posters and Demos