← CS50: Introduction to Computer Science

Week 10: The Final Project

No more problem sets: choosing your own project, designing it before you code it, and where the road goes after CS50 ends.

5 topics · 17 questions

Each topic is a path, not a menu: work down it in order and every question builds on the one above. Click any of them to watch the answer draw itself.

Choosing a Final Project

  1. How it worksHow does scoping a project down to something finishable in a few weeks beat an ambitious idea that never ships?
  2. Common mistakeWhy isn't picking the most impressive-sounding idea actually the smartest way to choose a final project?
  3. Going furtherWhat happens to a final project's odds of finishing once its scope has been deliberately cut in half?
Your turn1 of 2
A student's ambitious project idea has 29 planned features. After deliberately cutting the scope in half to make it finishable, about how many features remain?

Planning and Designing Your Project

  1. How it worksHow does breaking a final project into small, testable pieces mirror how a problem set is already broken into functions?
  2. Common mistakeWhy isn't opening a text editor and starting to type the fastest way to actually build a working project?
  3. Going furtherWhat happens to a project's design the moment you actually try to implement the piece you were most unsure about?
  4. Ties togetherHow does designing a final project pull correctness, design, and style from week 1 into one real piece of software?
Your turn1 of 2
A final project is broken into 15 small, independently testable pieces, and 2 of them are already working. How many pieces are left to build and test?

Presenting a Finished Project

  1. Worked exampleWalk me through a 3-minute demo that shows a project's core feature working before explaining any of its code.
  2. Common mistakeWhy isn't listing every technology you used the most convincing way to present a finished project?
  3. Going furtherWhat happens to an audience's understanding of a project when the demo is shown before the explanation, not after?
Your turn1 of 2
A student's demo has 11 total minutes, and 2 of those minutes are spent explaining code before the working feature is ever shown. How many minutes are left to actually show the feature working?

Where to Go After CS50

  1. How it worksHow does CS50's mix of C, Python, SQL, and web development map onto the specialized courses that follow it?
  2. Going furtherWhat changes about how you read new code once you've built something of your own from an empty file to a finished project?
  3. Ties togetherHow does the memory intuition built in week 4 connect forward into a future course on operating systems?
Your turn1 of 2
CS50 covers 13 major topics across the course, and a student wants to go deeper into just 3 of them next. How many of the original topics is the student setting aside for now?

Reading Other People's Code

  1. How it worksHow does tracing through unfamiliar code one function call at a time rebuild the mental model the original author had?
  2. Worked exampleWalk me through tracing what an unfamiliar function does by testing it on one small, concrete input first.
  3. Going furtherWhat happens to how fast you can read new code once you've built several projects of your own?
  4. Ties togetherHow does reading someone else's code for the first time connect back to reading a debugger's output in week 2?
Your turn1 of 2
An unfamiliar function is tested by trying it on 15 different small, concrete inputs one at a time, and its behavior becomes clear after the 2-th input tried. How many of the remaining inputs would have been unnecessary to try, beyond that 2-th one?