Workshop: 2020 Updates to The Beauty & Joy of Computing AP CSP Course

View on Snap!Con

Presented By: Mary Fries, Brian Harvey


Join us for a hands-on overview of the 2020 Beauty and Joy of Computing (BJC) curriculum updates in alignment with the revised Advanced Placement Computer Science Principles (AP CSP) framework and according to teacher feedback. 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 experienced BJC teachers and those new to the curriculum to explore the latest student-facing activities in this collaborative workshop.

This session will include an introduction to the AP CSP course and 2020 curriculum framework updates, the BJC pedagogical approach, and an overview of recent changes to BJC. Participants will then choose the hands-on activities they wish to explore from among several new projects in the BJC curriculum: a quiz app that introduces abstract data types (ADTs) and list traversal by pairing questions with their answers and traversing the list of pairs; an introduction to binary search that teaches efficiency by comparing the run time of binary and linear searches given sets of various sizes; and a data processing project in which students choose a dataset of interest to them and use ADTs and higher order functions to ask and answer questions about their data set. Participants will focus on core ideas by using modified versions of the BJC projects that are designed for the conference format and may explore more than one if they have time. The session will close with a group sharing and discussion (so participants receive some insights about each of the activities) followed by information about the free resources and training available to BJC teachers and suggestions for implementing some or all of the BJC curriculum.

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 free of charge at and

There was a question in the session regarding the BJC introduction to the KEEP block and how the required blank space is discussed. The language in the curriculum is, "The blank input slot is where each item of the list goes to decide if it will be kept," and then later on the page, "Note that the blank input slot in the predicate is required when using keep. This is where the item from the list goes each time the question is asked." Here is the page that introduces KEEP.

Please let us know if there are any other questions!


More detail on the BJC Updates for 2020:

Modified student pages for conference participants:

  1. Building a Quiz App (from Unit 2): intro to abstract data types and list traversal by pairing questions with their answers—
  2. Search Algorithms and Efficiency (from Unit 5): intro to efficiency by comparing the run time of binary and linear searches—
  3. Data Processing (from Unit 5): using abstract data types and higher order functions to answer questions about data—

BJC curriculum:

BJC professional development:

Visit for access to solutions/assessments and to join Piazza community of BJC teachers and friends