CS50 Week 10 and the Final Project: How to Finish Strong
The last lecture is short and mostly a celebration: a recap of how far you've come, some thoughts on what's next, and a quiz show. The real work of Week 10 is the final project, a piece of software you design and build yourself. It's what turns "I followed a course" into "I built something".

Jump to the key moments
What the lecture leaves you with
The through-line of CS50 is computational thinking: breaking a problem into inputs, outputs and the steps in between, choosing a representation for the data, and weighing the trade-offs between time, memory and your own effort. Languages change and those skills don't. The recap is worth watching just to see how much of it now makes sense.
The final project: what Harvard asks
The final project is open. You can use any language and any platform, including tools outside CS50's environment. It should build on what the course taught you, and it should take more effort than any single problem set. You can work alone or in a group of two or three, in which case the scope scales up. Harvard lists ideas such as a web app with Python, SQL and JavaScript, a mobile app, a game, a Chrome extension or a command-line tool in C. Alongside the code, you submit a short video demo and a README explaining what you built and why. Check the spec for the exact requirements.
Choosing an idea
- Solve a problem you actually have. A tool for your family's shop, a tracker for your cricket club, a revision app for your A/Ls. Real users give you real feedback and a reason to finish.
- Reuse what you know. Most successful CS50 projects are Flask apps, because Week 9 gave you a complete stack. Learning an entirely new framework on top of building a project is a common way to run out of time.
- Browse the gallery of final projects to calibrate ambition, not to copy.
Scope it with three outcomes
Harvard's own advice is to define a good, a better and a best outcome. For example: good is sign-up plus one core feature working; better adds search and a clean design; best adds a feature you're not sure you can build. Aim to finish "good" early, then spend what's left of your time climbing.
A four-week milestone plan
- Week A: write a one-page plan (what it does, who it's for, the screens, the database tables) and get a "hello world" version deployed or running.
- Week B: build the core feature end to end, even if it's ugly.
- Week C: the "better" features, validation and error handling, then show it to two people and watch them use it.
- Week D: polish, write the README, record the video and submit. Don't add new features in this week.
Getting your certificate
Once every problem set and the final project show at least 70% in your CS50 gradebook, you're eligible for the free CS50 Certificate. The CS50x 2026 deadline is 30 June 2027. If you want edX's paid verified certificate as well, that's arranged through edX. Put the certificate and your final project on your CV and LinkedIn, because the project is the part employers will ask about.
What next
Pick the follow-on that matches the part of the course you enjoyed most: CS50P for more Python, CS50W for web apps, CS50AI for artificial intelligence, CS50 SQL for data. Or keep building: a second project, made without a problem set to follow, is where you really find out what you've learned.
Check yourself
What's the most common reason final projects stall?
Scope. Starting too big, or learning a brand-new framework at the same time. Define "good, better, best" and finish "good" first.
Besides the code, what do you submit?
A short video demo and a README describing the project. See Harvard's spec for exact details.
What score do you need on each piece of work for the free certificate?
At least 70% on each problem set and on the final project.
Finished CS50? The next step is building with AI. See Cocoon's hands-on programmes.
See Cocoon programmes →