This 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, which means that you may

  • browse and search the internet,
  • review books,
  • review questions and answers already posted on Ed,
  • review the course’s own materials,
  • use CS50 IDE or CS50 Sandbox, and
  • email the course’s heads at heads@cs50.harvard.edu with questions, but

you may not

  • receive or solicit directly or indirectly any help from anyone other than the course’s heads.

Take care to review the course’s policy on academic honesty in its entirety. Note particularly, but not only, that

  • looking at another individual’s work during the test is not reasonable and
  • turning to humans (besides the course’s heads) for help or receiving help from humans (besides the course’s heads) during the test is not reasonable.

Unless otherwise noted, you may call any functions we’ve encountered this term in code that you write. You needn’t comment code that you write, but comments may help in cases of partial credit. If having difficulty with code, you may resort to pseudocode for potential partial credit.

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. And most problems aspire to teach something new.

What To Do

  1. Open the test’s response document in Google Docs.
  2. Make a copy of the response document in your own Google account by choosing File > Make a Copy.
  3. Answer each of the questions below, in any order, by writing your answers in the response document, replacing each TODO with an answer.


Reload this page (and each problem’s page) throughout the week to see any FAQs (and any changes made to the test).

How to Submit

  1. Be sure that for count.c in Count on It and teetering.py in Teetering on the Edge, you have submitted your code via submit50 by running submit50 cs50/problems/2019/fall/test/count and submit50 cs50/problems/2019/fall/test/teetering.
  2. Download your completed response document from Google Docs as a PDF by choosing File > Download > PDF Document and saving it to your computer.
  3. Go to CS50’s Gradescope page. If you get a message that says “You are not authorized to access this page,” let heads@cs50.harvard.edu know!
  4. Click Test.
  5. Click Submit PDF.
  6. Click Select PDF and choose your test response file.
  7. Click Upload PDF.
  8. Click An Exclusive - Question 1 in the Question Outline at left, then click the page (or pages) on which your response to An Exclusive - Question 1 is located. Repeat this process for each of the other subquestions. You can shift-click on multiple subquestions to assign pages to multiple subquestions at once, if your answers to all of them are located on the same page. Be sure to assign a page to every subquestion, or else that subquestion will not be graded.
  9. Click Submit.

You should see a message that says “Test submitted successfully!”

If you run into any trouble with the above steps, email heads@cs50.harvard.edu!