Welcome to the Teacher Guide for the Beauty and Joy of Computing (BJC) AP Computer Science Principles (CSP) course. This guide is designed to support high school CSP teachers with timing and activities for the BJC student materials. We start this guide by presenting our three goals: including student groups typically underrepresented in computing, preparing students to pass the AP CS Principles exam, and conveying the beauty and joy that we see in computer science.
A primary goal of this course is to attract new students, especially those traditionally underrepresented in CS, to the joys and life opportunities that come with programming and computer science and to make rigorous computer science accessible and enjoyable. Please note any ways this curriculum does not meet your students' needs and any ideas you have for meeting them better, and tell the research team by using the blue feedback button.
Several curricula satisfy the framework for the new (starting 2020-2021) AP CS Principles exam. BJC is one. Most AP courses have specific curricula taught in similar ways at every high school where they are offered. CS Principles is different because it is equivalent to a college breadth course rather than a first course for CS majors, and there is no uniformity in how colleges teach such a course. In particular, the exam is meant to be "language agnostic," meaning that any programming language can be used in the course.
Like BJC, CSP's specific goal is to attract students in groups that are historically underrepresented in computer science. BJC is an AP course for tactical reasons: it's much easier to get high schools across the country to introduce an AP course than a non-AP course. But keep in mind that the goal is to attract students who may not view themselves as "AP kids."
The College Board CSP Framework sets minimum standards for each of the "Big Ideas" and "Computational Thinking Practices" listed to the right, but each curriculum has its own emphasis. BJC puts a heavy emphasis on Algorithms and Programming and the Impact of Computing. As an AP-endorsed curriculum, we cover every detail of the Framework, but no CSP curriculum follows the order of topics listed in the Framework. Instead, many Framework topics are spread throughout BJC. In this Teacher Guide, there is a teacher page for each student lab, and the last thing on each teacher page is a list of which Skills of the Computational Thinking Practices, Learning Objectives, and Essential Knowledge are found in that lab. A description of how each unit addresses the Big Ideas and the Skills of the Computational Thinking Practices is included on the Teacher Guide page for each of the first five units (Unit 1, Unit 2, Unit 3, Practice Create Task, Unit 4, Unit 5). Please note that the BJC Teacher Guide should be considered a support and that the official AP CSP Curriculum Framework is the definitive source of information about the standards, performance tasks, exam, and requirements of the course.
In addition to the AP goals and curriculum framework, BJC has one more goal: for students to come away from the course loving programming and wanting to do more of it. This doesn't mean they all have to be professional programmers or computer science majors. But everyone on the BJC team has had the experience of learning to love programming. As teachers, we've seen kids who hate school turned around by discovering programming.
Most of us started by seeing computer programs as a means to an end. Our focus was on the result of running the program, rather than on the program itself. We came to see programs as potentially beautiful in themselves when we learned the technique of recursion, in which a procedure calls itself as a subprocedure. So, starting right in Unit 1, we sneak simple examples of recursion into the labs. We don't make a fuss about them, and it's not until Unit 7 (after the AP exam) that we make a serious formal presentation of the idea.
"Beauty and Joy" isn't just poetry. We want the class to be a joyous experience for students. We want to make it hard for any student to feel like a failure. So we offer built-in differentiated instruction, in the form of "hints" that are not shown initially, but with a link that a student can choose to click in order to get a more scaffolded activity. (As always, in a heterogeneous class, we don't want to limit the activities to what the weakest student needs; we think most students will prefer to skip the hints once they see that they can do the work without them. Also, we have multiple-choice review questions, often mirroring the kind of question they'll see on the AP exam, but in our questions, if a student gives an incorrect answer they get a response with a hint about why that answer can't work, and they can try again as often as they need until they get it right.
Please help us achieve this goal: Do not mingle assessment activities with learning activities! At the end of each unit, we provide assessment activities. If you can't stand waiting a month to assess students, make Friday quiz day. But don't grade the labs, and don't give daily quizzes. The learning should be low-pressure; it's hard to learn when you're afraid.
First five minutes: Computing in the News. You or a student read one or two stories from today's paper about computing in society. No discussion.
Rest of class: Students work on the lab. You go around the room helping individuals.
Bell rings: Nobody wants to leave. But you sadly remind them that other students are waiting to use the room.
Teaching any curriculum for the first time takes a lot more time and effort than repeated teaching of the same curriculum. Unanticipated events (snow-days, absences, school issues) can also interfere with any teacher's schedule.
To help you make decisions when pacing gets difficult, the Teacher Guide marks some pages with an asterisk. While all of the BJC pages (except for "Optional Projects" at the end of each unit) are part of the essence of BJC (all part of learning the beauty, the joy, and the computing) if you must adjust your schedule, these are the pages that are safe to skip (safe, in that students will still be able to do later pages and will still be safe for the AP).
Units 1 through 5 cover the basic AP content and therefore must be finished before the AP exam. Units 6-8 expand on some of the beautiful and powerful ideas of computer science that are rarely if ever seen in other AP CSP courses.
Please do not stand in front of the room talking! Teachers, especially good teachers, feel that they're not doing their job if they don't make handouts and lecture slides for each class meeting. In this course, the curriculum itself does that kind of teaching. Your job is to walk around the room, look over shoulders, and get kids unstuck, preferably by asking questions rather than by suggesting code. Every minute you spend in front of the room is a minute in which the class isn't learning the curriculum. This is one of the main reasons teachers have trouble completing the course on time.
All of the required materials for this course are available online at no cost. There are the labs (at bjc.edc.org) and the textbook (at bitsbook.com/excerpts). Consider requiring students to bring an empty notebook in which to write journal entries. Any computer that runs a modern browser (not Internet Explorer; Edge is fine) is fine.
The title "lab" is used for all sessions of this course to emphasize the laboratory style—experimentation, discussion, interaction—both in programming and in the analysis of social implications.
Both types of labs involve classroom discussion. Read more about Facilitating a Classroom Discussion.
Social Implications: In the social implications labs, students confront difficult issues in computing in depth. By contrast, the daily Computing in the News is a brief presentation of current events. Social Implications labs also address the College Board's requirement for “Opportunities to Investigate Computing Innovations.”
Often it's best to introduce a topic with some facts, but most of the time should be spent in small group discussions. In whole-class discussions, a few students often dominate while the rest of the class misses out, whereas in small group discussion, everyone participates. Resist the urge to lecture, as then nobody is discussing.
Some labs include multiple choice, formative, ungraded "Self Checks" (suggestions on effective student feedback messages appreciated). You do not have to collect and review these. Regular projects offer plenty of opportunity for formative feedback for teachers and students, and formal exams will provide summative information.
Brian, is this a note to yourself? Can you please resolve it? --MF, 5/23/20
The BJC student materials have several design elements that are visually distinguished by color, each to serve a specific purpose:
In pair programming, the driver is the one with hands on the keyboard and mouse; the navigator is the one reading the lab instructions and suggesting what the driver should do next.
Vocabulary boxes are used both for words that are important in BJC itself and for words that are important in the CS Principles Framework. If there's a conflict, the box will explain that.
Please don't have vocabulary quizzes! Students should have plenty of exposure to the vocabulary words in the labs themselves. Vocabulary quizzes are the paradigmatic not-joyous school activity.
These boxes are for things that students need only for the AP exam. This includes the pseudo-programming-language notation in which the College Board presents programming problems, and occasionally AP vocabulary that downright contradicts what we think and say. (Don't worry; there aren't many of those.)
Both kinds of gray boxes are things students can skip in the heat of doing the lab and come back to later for review. It's up to you whether you want to encourage that, or instead to encourage them to stop what they're doing and write down the vocabulary words in their notebooks.
The following two boxes have hidden information. Click on the heading to expose the contents. Both are for differentiated learning.