The Beauty and Joy of Computing

An AP CS Principles course,
endorsed by the College Board and

Try Our Curriculum     How is BJC special?

News: We're bringing BJC to New York City!


Professional Development

We offer a three-week summer professional development workshop for teachers intending to teach BJC the following year. In our condensed model, about 20 hours of initial preparation are done online before you attend a face-to-face workshop in one of the locations listed below.

Forms and Information

Online Year-long Course

We are delighted to announce BJCx, BJC reimagined as a year-long Computer Science Principles edX MOOC course broken up into two smaller courses, each approximately 16 weeks long. We've been working on this course for more than two years, with the help of a grant from edX, and more than fifty outstanding undergraduates at UC Berkeley.


Programming Language

Snap! (formerly BYOB) is a visual, drag-and-drop programming language. It is an extended reimplementation of Scratch (a project of the Lifelong Kindergarten Group at the MIT Media Lab) that allows you to Build Your Own Blocks. It also features first class lists, first class procedures, and continuations. These added capabilities make it suitable for a serious introduction to computer science for high school or college students.


Textbook on Social Implications

In the non-programming part of our course we try to balance a fundamental optimism about the future of computer technology with an understanding of its limitations and potential for harm. Student readings are taken mainly from the excellent textbook Blown to Bits, which is available for free online download.