About the Test

Release Deadline
2022-04-13T12:00:00-04:00 2022-04-17T23:59:00-04:00

The test is a take-home that will cover Weeks 0 through 9 (and Problem Sets 0 through 9). The test is open-book: you may use any and all non-human resources during the test, but the only humans to whom you may turn for help or from whom you may receive help are the course’s heads.

The test will be released via the course’s website and will be submitted via Gradescope. You should expect to spend several hours (not days!) on the test.

Among the test’s aims is to assess your newfound comfort with the course’s material and your ability to apply the course’s lessons to familiar and unfamiliar problems. The test’s format (but not necessarily content) will resemble the below, with short-answer questions as well as longer-answer questions. In previous years, the course had both a quiz (longer than this year’s quizzes) and test. Some questions may involve code (for which you’re welcome to use VS Code). Expect to spend at least thirty to forty-five minutes per question.

Past Problems

Review Sessions

CS50’s course heads held three review sessions in Fall 2021 which were recorded and are available for you to watch. Each session covers a subset of weeks from the course and structures guided practice with related past problems.

Algorithms and Programming Languages

This review session covers key ideas from Weeks 1, 2, 3, and 6.

Memory and Data Structures

This review session covers key ideas from Weeks 4 and 5.

Web Programming: SQL, HTML, CSS, and JavaScript

This review session covers key ideas from Weeks 7, 8, and 9.

How to Prepare

Ultimately, how best to prepare depends on how you learn best. But allow us to recommend that you prioritize your studies per the ordering below.

  1. Review each week’s notes.
  2. Review each week’s source code, if any.
  3. Review each week’s slides.
  4. Review each week’s shorts, if any.
  5. Watch the review sessions, above.
  6. Take past years’ quizzes and tests and, only after you’ve attempted each of their questions, review their sample solutions. Realize, though, that some topics covered in past years might not have been covered in this term. Rely on this year’s lectures and problem sets as the official sources for this year’s topics.
  7. Review problem sets’ specifications, sample solutions (below) and, if any, distribution code.
  8. Review each lecture’s video.

Sample Problem Set Solutions