Bringing CS50 to Singapore High School

Prakrit Duangsutha
5 min readOct 2, 2016
Culture. Image courtesy of CS50.

This year I’m excited to bring CS50 — an incredible, wildly successful computer science curriculum to Singapore’s high school setting.

CS50 is Harvard University’s introduction to the intellectual enterprises of computer science and the art of programming for those less and more comfortable alike. It is by far the most popular course in Harvard, Yale and on online education platform edX. The course prides itself in having a broad range of accessibility, inviting literally anyone to chime in irrespective of his or her prior background, all while maintaining the course’s historical rigor.

This year, CS50 has been implementing its own adaptation to high school environment — dubbed CS50 AP — allowing any teacher to have access to resources for teaching the course and organizing the course’s events, so we took the opportunity to jump right in.

CS50 AP: High school version of CS50


Since we’ll be conducting these sessions as part of a co-curricular activity, we generally only have a 2-hour contiguous class time each week for CS50. So we divided the class into two one-hour parts:

  • Section remains an essential core of our localized support, providing students with opportunities to learn topics at a more in-depth level and ask questions as they see fit.
  • Office hour, meanwhile, does not only assist students with the harder part of the problem sets but also give them some time to get started on their homework. Office hour is scheduled on the second hour of the class, but special appointments can be made to get help on the problem sets during recess or after school.
  • Lectures though, are given as additional weekly assignment for students to watch at home.

You may have already noticed that we choose to adopt the 13-week structure and use most of the materials from the campus version of CS50, not very much unlike how Miami Dade College did it, without the lecture and TF part. What we do provide is elaborate local support structure, to engage students and break down barriers that prevent them from completing the course on their own.

One of the components we also included is events, whereby students will have the experience of actively engaging in this exclusive community as opposed to doing so passively via the Internet. The Puzzle Day, Hackathon and CS50 Fair will remain a key tradition that we’ll continue to put forth. If time and resources permit, perhaps, we may even try out the new CS50 Coding Contest just for fun.

In terms of problem sets, we’ll continue to use CS50x materials, with the addition of personalized grading in compliance with the actual syllabus. We understand that the workload of the problem sets is sometimes an overwhelming responsibility on the student’s side given the stressful nature of the education system, hence we give students a 2-week time frame with requestable extensions when absolutely necessary.

Orientation Week

The first day kicked off with CS50's signature demonstration — phone book ripping. This is part of an introductory lecture to give students an idea of what CS50 and computer science in general is all about. Our students were thrilled. But because Yellow Pages is so rare nowadays, I was even more thrilled to finally be able to perform this demo for the very first time.

That’s me, tearing the phone book.

Claps and cheers aside, we moved on to talk about how else we can apply binary search in real life. I pulled another excellent demonstration of taking attendance in class. Fast forward 5 minutes later, I was walking through all the different components of CS50, including an overview of every problem set just to give them a glimpse of what awaits in the course.

Problem set 2 overview

I’m no professional teacher myself as you can see, so there were definitely missteps made. One was to invite a student up to play around with pset 3’s Game of Fifteen. The assumption was that classmates will join in and help solve the puzzle together. That didn’t happen, probably mainly because the overview was admittedly quite boring and the students were unfamiliar with the game in the first place. Clarity of the explanation also played a role. Perhaps that’s something to work on next time.

Nevertheless, as we progressed toward the end, I was glad the level of enthusiasm was still there. Students were excited to register themselves on edX and get their hands dirty. Slow internet connection was not a problem. Many dove right into watching the first lecture and some were already starting to explore Scratch on their own.

Puzzle Day announcement

The first day was a satisfactory start. Even though this is probably the first time our students are enrolling in a class this rigorous (given the short time span), I was able to set the tone and expectations with which (hopefully) we can keep up for the rest of the course. We know it’s not always going to be seamless, but with David’s superb job of hyping up the class and our effort to facilitate the student’s learning in the most comprehensive way possible, I am certain we will have the kind of energy, even as a high school student, to tackle the slope of the course with resilience and tenacity. Our journey has just begun.

This is CS50 for HIHS.