Beauty and Joy of Computing covers the entire AP Computer Science Principles Framework and addresses the seven Big Ideas in the framework with a primary emphasis on programming (Big Idea 5) and, closely linked with programming, on abstraction (Big Idea 2). As much as possible, BJC uses programming as the vehicle to tell other parts of the story; for example by presenting data (Big Idea 3) not through commercial database software but by writing programming projects that manipulate data sets as lists.
The secondary emphasis of BJC is on the social implications of computers (Big Idea 7, Global Impact). Social topics are included in every unit, not just one. Students are encouraged to think critically about each application of technology. The Big Ideas of creativity (Big Idea 1) and algorithms (Big Idea 4) are addressed throughout the units, and there is particular attention to the Internet (Big Idea 6) in Unit 4.
Snap!, the programming language used in BJC, was developed specifically for this curriculum. Its visual, drag-and-drop design is based on that of Scratch, so that it is accessible to a wide audience and not intimidating, but the language, itself, is extended with the abstraction mechanisms needed for serious computer science: first class procedures for control abstraction and first class lists for data abstraction. These capabilities are embodied in carefully chosen visual metaphors so that ideas traditionally considered difficult can be understood and enjoyed by beginners.