Recap
- Over these past ten weeks, you have been drinking from the proverbial firehose.
- During this course, you learned to program in many different languages; indeed, our great hope is that you learned how to program in them all, regardless of the language.
- Consider the various topics we discussed over the last ten weeks: You have come so far and have gained so many skills.
- You should measure your success as the delta between your skill at the start of the course and your skill now, at the end of the course.
- Further, we hope that you learned how to solve problems above all else, how to take input, process it through an algorithm, and produce some output. To that point, we played a game where we drew a picture using verbal instructions.
- Notice how some verbal instructions were higher level and others were lower level, like the different programming languages utilized in this course.
- Notice how some instructions were more specific than others. Remember times when you had to refine your code to do exactly as you wanted.
- Also, notice how some instructions were abstracted away, like draw arms. This is similar to how we abstracted away code into functions.
- Looking at all the weeks of the course, you gathered tools and built skills. Above all, though, you learned how to teach yourself and leverage learning resources.
Final Project - CS50x 2026
The climax of this course is its final project. The final 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 Codespace. 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 final 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 fixed amount of time than you hope. What might you consider to be a good outcome for your project? A better outcome? The best outcome?
Consider making goal milestones to keep you on track.
If using the CS50 Codespace, create a directory called project to store your project source code and other files. You are welcome to develop your project outside of the CS50 Codespace.
How to Submit
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. Your video must begin with an opening section that displays:
- your project’s title;
- your name;
- your GitHub and edX usernames;
- your city and country;
- and, the date you have recorded this video.
It should then go on to demonstrate your project in action, as with slides, screenshots, voiceover, and/or live action. See 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 fine to flag it as “unlisted,” but don’t flag it as “private.”
Submit this form!
Step 2 of 3
Create a README.md text file (named exactly that!) in your project folder that explains your project. This file 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 find GitHub’s Basic Writing and Formatting Syntax helpful. You can also preview your .md file by clicking the ‘preview’ icon as explained here: Markdown Preview in vscode. Standard software project READMEs can often run into the thousands or tens of thousands of words in length; yours need not be that long, but should at least be several hundred words that describe things in detail!
Execute the submit50 command below from within your project directory (or from whichever directory contains README.md file 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.
Trouble Submitting?
If you encounter issues because your project is too large, try to ZIP all of the contents of that directory (except for README.md) and then submit that instead. If still too large, try removing certain configuration files, reducing the size of your submission below 100MB, or try to upload directly using GitHub’s web interface by visiting github.com/me50/USERNAME (where USERNAME is your own GitHub username) and manually dragging and dropping folders, ensuring that when uploading you are doing so to your cs50/problems/2026/x/project branch, otherwise the system will not be able to check it!
Step 3 of 3
Be sure to visit your gradebook at 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 Certificate and the (within 30 days) generation of the Verified Certificate from edX, if you’ve completed all of the other assignments. Be sure to claim your free certificate (by following the link at the top of your gradebook) before 2026-06-30T23:59+00.
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 file this time. No need to resubmit your form.
This was CS50x!
Looking Ahead
- As you journey from the work of this course to the world outside CS50, you may want to take a number of steps to prepare and adventure out.
- Journeying on, download and learn about VS Code. Cursor and Windsurf are other popular text editors.
- To be able to execute commands on the terminal, much like you did on CS50.dev, install command-line tools on your Mac or PC.
- Learn more about Git.
- Host a website using GitHub.
- If applicable, host a web app using AWS, Azure, Google Cloud, Cloudflare, Heroku, or Vercel.
- Ask questions in relevant online communities.
- Ask questions using AI-based tools like ChatGPT, Claude, Gemini, GitHub Copilot, Codex, or v0.
- Take any of our other CS50 courses.
- Join one of our many communities.
Thank You!
- Thank you for engaging in this course!
- Many people made this course possible: Thank you for making this course possible and for supporting us so well!
Summing Up
In this lesson, we reflected on your journey through this course. Specifically, we encourage you to…
- Take the programming skills you learned in this course to solve problems in the world.
- Take the new skills you acquired in this course and continue your learning!
- Finish strong and submit your final project.
- Quack!
This was CS50!