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,
  • email the course’s heads at heads@cs50.harvard.edu with administrative or clarification questions, but

you may not

  • communicate with other students about the test,
  • post any new questions or replies to threads already posted on Ed,
  • share any of your work, whether submitted or not, with other students, or
  • 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 for any reason 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.

You may resubmit as many times as you would like before the test’s deadline. Late submissions incur penalties per the course’s syllabus. You may not grant yourself an extension on the test.

What To Do

  1. In CS50 IDE, execute

     wget https://cdn.cs50.net/2020/fall/test/test.zip

    followed by

     unzip test.zip

    to download the distribution code for the test.

  2. Open the test’s response document in Google Docs.

  3. Make a copy of the response document in your own Google account by choosing File > Make a Copy.

  4. Answer all of the questions below, in any order, by writing your answers in the response document, replacing each TODO with an answer. Some questions will instead ask you to complete a TODO in one of the files in your test directory within CS50 IDE.


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

  • : Flaskless. Further clarified the running instructions with an additional warning.
  • : Flaskless. Updated instructions for running sample hello.py server and, ultimately, server.py

When to Do It

By .

How to Submit

  1. Download a ZIP file of your test folder (which should contain folders for finsta, flaskless, and shark) by control-clicking on your test folder in CS50 IDE’s file browser and choosing Download.
  2. Go to CS50’s Gradescope page.
  3. Click Test: Code Files.
  4. Drag and drop your test.zip file to the area that says “Drag & Drop”.
  5. Click “Upload”.
  6. You should see a message that says “Test: Code Files submitted successfully!”
  7. Download your completed test response document from Google Docs as a PDF by choosing File → Download → PDF Document, and save it to your computer.
  8. Go to CS50’s Gradescope page.
  9. Click Test: Response Document.
  10. Click Submit PDF.
  11. Click Select PDF and choose your test file.
  12. Click Upload PDF.
  13. For each question in the Question Outline at left, click on the question and then click on the page (or pages) on which your response to that question is located.
  14. Click Submit.
  15. You should see a message that says “Test: Response Document submitted successfully!”

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