Software · SP-01

CS50P Final Project

The capstone application for Harvard's Introduction to Programming with Python — built to be read, tested and maintained, not just to run.

Source held privately — CS50 asks students not to publish solutions

Issuer
Harvard CS50
Course
CS50P
Language
Python
Completed
2022

Brief

CS50P closes with an open final project: the student defines the problem and delivers a working Python program together with its tests and documentation. The grading weight sits on structure and correctness rather than on scope.

Approach

  • Structured problem solving. The problem was decomposed into functions with single responsibilities before implementation began.
  • Data structures. Data modelled with the structure that fits the access pattern rather than defaulting to a list of dictionaries.
  • Unit testing. Test functions written against the public behaviour of each unit, so a refactor is verifiable rather than hopeful.
  • Clean code. Written to PEP-8, with naming and layout chosen for the next reader.
  • SQL. Persistence handled through SQL rather than ad-hoc file formats.

Outcome

Completed and submitted, earning the CS50P certificate from Harvard University. The source stays in CS50's private submission repository, in line with the course's academic honesty policy — happy to walk through it on request.

The habits from this course — decompose first, test the behaviour, write for the next reader — carry directly into the engineering software work I do now.