For several years I’ve been following news of the College Board creating a new Computer Science course, called AP CS Principles. It sounds like a great course outline, with algorithmic thinking and creativity emphasized over pure programming exercises. While the curriculum does require some programming, it is language agnostic and some of the first and most prominent curricula proposed for this exam used only visual programming languages like Scratch and App Inventor. I think these are great languages for kids to get started with programming but I had little interest in using them for a purportedly college level course.

Last March I heard through our local Computer Science Teachers Association that Harvard University was offering a workshop to showcase a curriculum they were offering for AP CS Principles. I went to the workshop, mainly because it was so easy. Harvard is only half an hour drive from my home. I hadn’t yet heard anything about their course.

The curriculum Harvard is offering is based on the one for their wildly successful introductory Computer Science course, titled CS50. This course is taught now at Harvard, and also at Yale. Their secret sauce is not secret at all. The whole course is available for free on the online platform EdX, where it is the also the most popular course.  You could start taking it right now.

CS50__Introduction_to_Computer_Science___edX

A Rigorous Introduction

The CS50 course is rigorous. It starts with an assignment in Scratch, then swiftly moves students to programming in C. Later in the course students use PHP and Javascript, along with HTML and CSS, to make interactive web sites. This is an introduction to real programming. Students who complete it will have some solid skills to build on.

At Harvard, students do this in 13 weeks. What makes the course approachable to high school students is that the same material is stretched out over a full school year, which is more like 36 weeks. And while some of the material is challenging, it really is an introductory course.

The high school AP version of CS50 is a little bit different from the Harvard course.  In order to meet the requirements of the AP CS Principles course, some material has been added, and to make the course more appropriate for high school, a little bit has been taken away.  But not much.

Amazing Support System

Harvard’s CS50 course is all online. Every lecture and every problem set. There are also short videos on various topics to help students who are stuck. And they’ve been working with students a long time. They know what things students will get stuck on. There is an online discussion board, a Facebook group, and a Slack channel. One of the best parts is a set of tools, called check50, that allow students and their teacher to see if programs meet the requirements of the assignments.

At the same time, when used by a high school, the course belongs to the teacher. I’ll be free to modify, supplement, and add to the course as much as I think best to meet the needs of my students.

Online Tools are Cross Platform

All the tools for the course are accessible from a web browser anywhere.  That means that a student can complete CS50 using any computer connected to the internet. The course is about the same using a Mac, a Windows PC, or even a Chromebook.  There is even apparently a way to use the tools offline, but I have not given this a try.

ide50_-_CS50_IDE

The CS50 IDE

This is a huge deal for us, since our students use our Macs here at Lincoln Sudbury, but might have a different kind of computer at home. So we will be able to assign students programming homework in a way that we cannot now.

Coming Soon to Lincoln Sudbury

This summer, I’ve been doing the CS50 EdX course.  As I write this, I’m about halfway through.  While I have a good deal of computer science background, I am finding the assignments useful and engaging.  I just finished one where I had to write the puzzle game, Fifteen, using C code.  (Image from Wikipedia).

fifteen_puzzle_game_-_Google_Search

The amount of work that went into creating this assignment, providing scaffolding code, and even providing solutions to the puzzle in the form of move sequences that you can use to test your answers, is exemplary.

During the 2016-2017 school year, four students are going to take CS50 as an independent study with me. They’ll help me work through the curriculum, and we’ll see how CS50 matches up to the AP CS Principles requirements. I will be proposing the course be offered to all 10th through 12th grade students during the 2017-2018 school year. While the course has no prerequisites, it will require serious effort and a significant amount of homework.  Check back here to see how it goes!