Final Project - CS50x 2021
Final Project - CS50x 2021
Final Project - CS50x 2021
This is CS50x
OpenCourseWare
Final Project
The climax of this course is its nal project. The nal project is your opportunity to take your newfound savvy with programming out for a spin
and develop your very own piece of software. So long as your project draws upon this course’s lessons, the nature of your project is entirely up
to you. You may implement your project in any language(s). You are welcome to utilize infrastructure other than the CS50 IDE. All that we ask is
that you build something of interest to you, that you solve an actual problem, that you impact your community, or that you change the world.
Strive to create something that outlives this course.
Inasmuch as software development is rarely a one-person effort, you are allowed an opportunity to collaborate with one or two classmates for
this nal project. Needless to say, it is expected that every student in any such group contribute equally to the design and implementation of
that group’s project. Moreover, it is expected that the scope of a two- or three-person group’s project be, respectively, twice or thrice that of a
typical one-person project. A one-person project, mind you, should entail more time and effort than is required by each of the course’s problem
sets.
Ideas
a web-based application using JavaScript, Python, and SQL
an iOS app using Swift
a game using Lua with LÖVE
an Android app using Java
a Chrome extension using JavaScript
a command-line program using C
a hardware-based application for which you program some device
…
Getting Started
Creating an entire project may seem daunting. Here are some questions that you should think about as you start:
What will your software do? What features will it have? How will it be executed?
What new skills will you need to acquire? What topics will you need to research?
If working with one or two classmates, who will do what?
In the world of software, most everything takes longer to implement than you expect. And so it’s not uncommon to accomplish less in a xed
amount of time than you hope. What might you consider to be a good outcome for your project? A better outcome? The best outcome?
If using the CS50 IDE, create a directory called ~/project to store your project source code and other les. You are welcome to develop your
project outside of the CS50 IDE.
How to Submit
https://cs50.harvard.edu/x/2021/project/ 1/2
18/01/2021 Final Project - CS50x 2021
Step 1 of 3
Create a short video (that’s no more than 3 minutes in length) in which you present your project to the world, as with slides, screenshots,
voiceover, and/or live action. Your video should somehow include your project’s title, your name, your city and country, and any other details
that you’d like to convey to viewers. See https://www.howtogeek.com/205742/how-to-record-your-windows-mac-linux-android-or-ios-screen/
for tips on how to make a “screencast,” though you’re welcome to use an actual camera. Upload your video to YouTube (or, if blocked in your
country, a similar site) and take note of its URL; it’s ne to ag it as “unlisted,” but don’t ag it as “private.”
Step 2 of 3
Create a README.md text le in your ~/project folder that explains your project. This le should include your Project Title, the URL of your
video (created in step 1 above) and a description of your project. You may use the below as a template.
If unfamiliar with Markdown syntax, you might nd GitHub’s Basic Writing and Formatting Syntax (https://docs.github.com/en/free-pro-
team@latest/github/writing-on-github/basic-writing-and-formatting-syntax) helpful.
Your README.md le should be minimally multiple paragraphs in length, and should explain what your project is, what each of the les
you wrote for the project contains and does, and if you debated certain design choices, explaining why you made them. Ensure you
allocate suf cient time and energy to writing a README.md that you are proud of and that documents your project thoroughly. Be proud
of it!
Execute the submit50 command below from within your ~/project directory (or from whichever directory contains README.md le and your
project’s code, which must also be submitted), logging in with your GitHub username and password when prompted. For security, you’ll see
asterisks instead of the actual characters in your password.
submit50 cs50/problems/2021/x/project
Trouble Submitting?
Step 3 of 3
Be sure to visit your gradebook at cs50.me/cs50x (https://cs50.me/cs50x) a few minutes after you submit. It’s only by loading your Gradebook
that the system can check to see whether you have completed the course, and that is also what triggers the (instant) generation of your free
CS50 Certi cate and the (within 30 days) generation of the Veri ed Certi cate from edX, if you’ve completed all of the other assignments. Be
sure to claim your free certi cate (by following the link at the top of your gradebook) before 1 January 2022.
That’s it! Your project should be graded within a few minutes. If you don’t see any results in your gradebook, best to resubmit (running the
above submit50 command) with only your README.md le this time. No need to resubmit your form.
https://cs50.harvard.edu/x/2021/project/ 2/2