CS50 AP Newsletter — August 2016

Doug Lloyd

Hello, world! My name is Doug Lloyd, and this is the CS50 AP Newsletter, new and improved for the 2016–17 school year. Since we’re going to be moving away from the CS50 AP Wiki (as you’ll see if you read on), we wanted to try a new format, and Medium seems like a really great one to go with given its ease of use and accessibility, and since we aren’t in pilot anymore, our updates will be viewable by all — folks who were part of the pilot, folks who’ve attended a teacher training workshop and are ready to teach this year, and those who may just be hearing about CS50 AP for the first time.

This school year, instead of biweekly updates as we did in 2015–16, we’ll be posting updates around the beginning of every month; since things will not be evolving quite as quickly as they did last year, it seems like that pacing will be much better. And while this update will be exceptionally long given everything that has happened over the summer, don’t worry, we won’t be burying you in a pile of text in these newsletters!

Without further ado, here’s what’s been going down at CS50 R&D this summer as we worked to improve CS50 AP. We hope you like what you see.

Table of Contents


Course Naming/Graphics Guidance

If you have attended a CS50 AP Workshop in either 2015 or 2016, you have gone through exactly the training that we offer to our own teaching fellows, and then some. As such, you are teaching CS50! So you should call your course “CS50” as well, instead of “CS50x”. Feel free to start doing so, though do still keep a moniker after “CS50” to help with geographic or otherwise-unique identification. We’ll also soon be providing you with a “style guide” of sorts for creating a consistent look and feel across CS50 AP classrooms.

Course Syllabus Approved by College Board

We are very pleased to announce that the CS50 AP syllabus has been approved by College Board! Any teacher that uses exactly this syllabus during the course audit process should find that their course is quickly approved to use the AP designation this coming school year. Major thanks to CS50 AP pilot teacher Margaret Tanzosh of NEST+m School in New York, NY for helping us shepherd this through the audit process.

To take advantage of the relatively quick approval process, when completing your syllabus audit select the option “Claim Identical”, which permits you to use a syllabus submitted by a colleague. When you do that, upload the PDF found here (you must submit exactly this document, which is why we are only offering this as a PDF) and input the approved syllabus ID number 1658725v1.

If you feel compelled to make some after-the-fact changes to adapt to your specific classroom environment, don’t worry. Per College Board:

We understand that you may need to modify or adapt your syllabus or course plan to address the needs of your students, reflect new discoveries, and try out new approaches. You do not need to resubmit your syllabus when you modify it, as long as you are not changing your course so significantly as to eliminate from your curriculum one or more of the curricular requirements on the AP Course Audit form.

Course Reorganization

After having the syllabus and the course’s content analyzed and tagged over the summer by experts who have done framework alignments for 15+ years, we’ve come to the conclusion that a few of CS50's elements go above and beyond what is necessary for students who are taking AP Computer Science Principles. To that end, we have tagged Units 5 and 6, as they were known in 2015–16, as optional. The hope though is that these units still are valuable to help provide differentiation in the classroom, allowing students who are more comfortable time to further explore the material. Since none of the material in these optional units cover Learning Objectives that are not covered elsewhere in the curriculum, they can easily be skipped or partially completed without harming your students’ performance on the end-of-year AP exam.

There have also been some minor renamings. “Units” are now “Chapters”, and “Modules” may soon become “Topics”. And as alluded to above, some Chapters have been renumbered to take into account the optional designation of some material:

  • Unit 5: Now known as Fast-Track Chapter A.
  • Unit 6: Now known as Fast-Track Chapter B.
  • Unit 7: Now known as Chapter 5.
  • Unit 8: Now known as Chapter 6.

Each chapter also comes with a new teacher-facing document which is meant to provide additional support for teachers new to the curriculum. Each chapter has the following sections: central focus, assignments with their learning outcomes, essential questions, ways to launch the lesson, and classroom demos. The central focus sums up the long term goals for the chapter and unifies the main learning outcomes. The assignments section gives a brief description of each problem and the objectives tied to them. At a glance you will be able to decide which problems to keep as is and which problems you may want to modify for your classroom. Essential questions were included on the wiki but are further expanded upon in the chapter documents.

Another section we’ve added by teacher request are “bellwork” type problems or activities to get the lesson started. Ways to launch the lesson gives ideas for getting students hooked at the beginning of a lesson while incorporating collaboration. The documents also provide a more extensive list of classroom demos and suggested materials list. These chapter documents will live on the new portal site soon, and will be downloadable in PDF form for your convenience. Additionally you will be able to search for the resources listed above by resource type as well as by topic. We hope this resource allows you to focus less on lesson planning and other conventions and more on your students!

CS50 Event Kits

Three kits will be made available for the four CS50 events we offer. CS50 Puzzle Day kits are being mailed out to every teacher on our list beginning Wednesday, August 10. Similar to last year, they contain some swag but new this year is a custom set of puzzles that we wrote whose difficulty is tailored more to a high school audience. (Solutions, though, won’t be posted publicly here… those are for teacher eyes only!)

CS50 Hackathon and CS50 Fair kits will be sent out later in the school year to teachers who request them. More information on what will be in those kits will be available in a future CS50 AP Newsletter.

Lastly, the fourth event, the CS50 Coding Contest, will be held entirely online and as such doesn’t have a kit. But we’re going to publicize an AP-specific version of this event well in advance (the event itself will most likely be held during the winter) and we will encourage schools or groups within schools to create teams and compete against their CS50 AP compatriots!

CS50 AP Portal

We were very lucky to have an amazing set of interns this summer who worked on a variety of projects. Here’s the CS50 AP summer team last Friday, on our final day together!

L-R: Davey, Jack, Annie, Brian, Erin, and Doug

One of them, Brian Yu, helped to coordinate the new CS50 AP portal, which both replaces cs50.wiki but also allows you to create your own classroom hub, right on CS50's own web hosting architecture! The new portal exists at ap.cs50.net, and right now you can head over there to register for an account.

When you register for an account, know that your classroom page will ultimately live at ap.cs50.net/username, so we’d recommend you choose a username that includes your last name or your school’s name, so that your students will easily be able to find your page. Until your account is approved, you’ll have somewhat limited access, so in the meantime feel free to tinker with the publicly-accessible portions of the page, and watch this video that Brian put together so you can see what you’ll soon be able to do on the AP portal.

Brian walks through the new CS50 AP Portal

Note that although the wiki is being deprecated, the CS50 AP Discuss instance (cs50.harvard.edu/ap/discuss) is still intended to be the teacher forum for this coming year, and will still require the edX login you’ve been using.

CS50 Quizbank

Another of our fantastic summer interns, Davey Proctor, put together the idea for the CS50 Quizbank. Quizbank is both a student and teacher facing tool.

First, there’s the search engine, available to all, with which users can efficiently filter through the entirety of CS50's quiz questions from the past decade. For instance, if I’m an AP student, I might like to see all questions on arrays that require a code response. Or questions on asymptotic notation that want me to fill in a table.

Second, behind a teacher login (which is the same login as the one you create for Portal, once approved), one can use the same tool to generate quizzes for their students. As a teacher, you can generate a quiz on, for instance, the first three topics you’ve covered, arrange the questions as you like, and then download both the quiz and answer key as an editable word document!

The Quizbank lives at quizbank.cs50.net, feel free to poke around.

CS50 AP Map

Jack Deschler, another one of our great interns this summer, helped put together the CS50 AP Map. As many more teachers have gone through the workshops this year, we thought it might help to coordinate events between schools that are local to one another if you knew who else was nearby that was teaching CS50 AP. When a school is clicked, information about the teacher(s) at that school are made available. The map will soon be connected to the CS50 AP portal, behind teacher login.


And last but not least of our four fantastic interns, thanks to Annie Chen, we have a new series of videos for students who are just acclimating to CS50 IDE, perhaps those who have never programmed before or maybe even have limited exposure to using computers or the internet. This three-part series, Jumpstart, acquaints students with their new programming environment. We’ve embedded the first of these three videos below; the rest will soon be available on the Portal and at the beginning of Chapter 1.

The first of 3 of Annie’s “Jumpstart” videos

CS50 AP on edX

The entire CS50 AP team has been building out the course for roll out on the edX platform, and it’s just about ready for release, becoming available August 29, 2016. Keep an eye on the CS50 Facebook group for more information about that course’s release; if you are in a school where few students have signed up for the course and you may not have access to a classroom, leveraging the edX platform could be a usable workaround!

Major CS50 IDE Updates

We’ve worked this summer to further simplify the IDE while also making it more consistent in its usage and reliability. We’ve had a small team of developers working around the clock to bring these updates! The latest version of CS50 IDE is version 60.

First, we’ve made major architectural changes to the visual debugger to make it more reliable and simplify its usage. Beginning in September, you will be able to kick off the visual debugger from the command line with a “debug50” command. This will eliminate the need for the “Run” button, and make the student’s experience more consistent whether they’d like to debug or simply run the program without debugging; it all happens from the same place.

We’ve made a number of simplifications and reduced clutter to decrease the possibility that students with smaller screens have important data (formerly presented in the menu bar) occasionally be cut off. We’ve moved a number of items into the menus: the link to preview the web page served by the workspace is found as the “Web Server” menu item in the “CS50 IDE” menu, and immediately adjacent is the “phpMyAdmin” link. Night mode and the new presentation mode (which declutters even more and increases the font size of the editor and terminal) are found in the “View” menu.

There’s also new functionality in the IDE. Select one or more lines of code in the editor, and a small GitHub icon appears to the left of the selection; click on this to create a “Gist” to easily share snippets of code. We now have basic support to play small (less than 8MB) MP3 and WAV files, so assignments that generate music or sounds can now preview directly in the IDE.

A snippet of some of the more technical changes include:

  • The terminal makes a tone on error (you may disable this in preferences).
  • Simplified the terminal prompt to show just the current directory.
  • Changed the user that Apache server is run as, which will require slightly different permissions (e.g., by using “chmod”).
  • We’ve changed the MySQL authentication information, which can now found in the “username50” and “password50” commands in the terminal. The phpMyAdmin link should not require a username or password any longer.
  • Terminal tabs show the base name of the current directory, so as to provide a visual hint as where something is being executed.

Last Friday we also bid farewell to Dan Armendariz, who has retired from CS50 after many years on the team. It’s no understatement to say that without the amazing work he put in building out CS50 IDE, there would not be a CS50 AP program!

New Submission/Grading Platforms

We are currently working on an adaptation of the GitHub Classroom infrastructure to provide a submission interface for your students that takes advantage of the excellent history-tracking and line-by-line changing that the commit system provides. GitHub Classroom also has a great commenting interface, which means it would be an all-in-one location for collecting student submissions and providing qualitative feedback through an easy-to-use web interface, thus serving the dual purposes of being a submission platform and most of a grading platform as well.

We are actually investigating whether this system would also be something we could use in CS50 at Harvard and at Yale, as well. And while the system would use GitHub, students would not be expected to master Git commands in order to use the system; rather, we would provide wrappers for those Git commands as built-in commands within CS50 IDE.

At a minimum, however, we will be able to offer grading scripts to help batch grade student submissions, relying on check50 and exporting in some format that could be imported into the LMS of your (or your school/district’s) choice.

style50 Changes

We developed style50 in 2012 to provide students with a tool that checks C source code against the CS50 Style Guide and thereafter provides feedback on indentation, variable naming, commenting, etc.

Style50 was originally designed as a command line tool that one could execute within the CS50 Appliance, however, with the migration to the CS50 IDE on Cloud9 we wanted to provide students with an additional option to receive feedback. Thus, was born the style50 Cloud9 plugin which provides code style feedback via tooltips directly inline of the code editor, live:

While we are still working on fixing and adding smaller features, the new style50 version will roll out during fall 2016!


To help students transition from Scratch (block based programming) to C (text based programming), we’ve prepared Scratch to C translations for the early weeks of source code. This way, students can see the same concepts represented in the different languages and gain familiarity with C.

Because AP Computer Science Principles is language agnostic, College Board has provided an exam reference sheet with the phrases that they’ll use to communicate programming constructs for the sake of the exam. We’ve translated the earlier weeks of CS50 source code examples to College Board’s pseudocode so that during the exam, students will be comfortable using and evaluating the pseudocode on the exam.

Droplet on CS50 IDE

CS50 IDE will support editing using Droplet, an editor that allows students to edit their program in either Scratch-like blocks or C code, and switch back and forth at any time (similar to PencilCode, which you may have seen before). This can help students who are familiar with block-based languages connect with text, and allows students to gradually transition from blocks to text at their own pace.

Droplet in CS50 IDE (beta), coming Fall 2016

New Topics and Problems

Thanks in particular to the work of Davey and Annie, we’ve added two new topics to make sure we cover all the learning objectives in the curriculum framework : “Simulations” and “Augmented and Virtual Reality”. The “Simulations” topic can be found in Chapter 3, and adds a writing problem that asks students to find and research examples of computer simulations in the real world. The AR/VR topic at the end of Chapter 6, and intended to be covered in the end-of-year wind-down after the AP exam, exposes students to an upcoming trend in technology, which CS50 at Harvard will be creating new resources in over the upcoming school year.

CS50 Store

Coming soon, through a partnership with Harvard Student Agencies, will be the CS50 Store. We aim there to provide discounted CS50 swag (such as stress balls, sunglasses, CS50 Sockets, and any other gear that comes to mind!) if you wish to purchase quantities of these items beyond what we are able to get in the kits/otherwise give away, as well as be a vendor for custom gear specific to your school/classroom and “I took CS50” shirts for your students. We should have the store up and ready to go next month, so more information on this coming in the next AP Newsletter!

Staffing Changes

Lastly, on a less curricular-focused and more personal note, I’ve recently taken on a new role in CS50 to help manage all of our different efforts, not just CS50 AP. To that end, I’ll slowly begin phasing out my day-to-day involvement with managing this program, handing off the reins to my colleague Erin Carvalho, whom I’ve introduced in a prior update and who has also been working very closely with me and the summer intern staff to build out all of the changes to CS50 AP that you’ve seen described in this newsletter. Rest assured though that I will remain involved with CS50 AP and will continue to work for its success, just in a slightly different capacity than I have up until now.

Questions, Comments, Thoughts?

If there are any questions at all about anything you’ve seen in this newsletter or anything else, please reach out — you can reach both me and Erin by contacting ap@cs50.harvard.edu; this includes if you want to reach out to us because you’d like to get involved in the CS50 AP program for the first time… perhaps this school year!

This is CS50 AP 1617. We hope you’re as excited as we are for what’s to come!

CS50 AP Hackathon in New York, NY; February 6, 2016