Semester project · 15% of the final grade
Build something that needs the math.
Each of you gets a personal project that sits where discrete mathematics meets real software: a solver, a simulator, a tool or an interactive explainer. The math is the engine, Python is the body. Projects are assigned individually by the instructor.
What counts
The project is 15% of your final grade (the other 85% is the final exam). The final is 60% of the course, so the project is 9% of your overall grade.
How you get it
Your topic is announced to you personally in week 4. Every student has a different project, sized so that the minimum scope is reachable and the advanced scope is a real challenge.
Where you work
In your own private repository created by Classroom 50, using the same Codespaces workflow as the labs. Commit often: your history is part of the grade.
Timeline
Four milestones
-
M0
Assignment
week 4 · Oct 12
You receive your personal project by announcement. Accept the project repository on Classroom 50 and write a one-paragraph plan in the README.
-
M1
Math design
week 7 · Nov 2
Definitions, the claims your program will test or demonstrate, and where your data comes from. One page in the repository.
-
M2
Working prototype
week 11 · Nov 30
The minimum scope runs end to end and has tests. Short check-in during the lab.
-
M3
Demo day
week 15 · Dec 28
Five-minute live demo in class, final repository and a two-page report.
Rubric
How it is graded
- 30 Mathematical correctness and depthDefinitions are precise, claims are justified, the math is used, not decorated.
- 25 Software quality and testsReadable code, meaningful tests, a README that lets someone else run it in five minutes.
- 20 Demo and explanationYou can explain every part of your code and your math, and answer questions about it.
- 15 ReportTwo pages: problem, the discrete math behind it, results, limitations.
- 10 ProcessMilestones on time, steady commit history instead of one big final push.
Deliverables
What you hand in
- Repository: code, tests and a README with setup, usage and an example run.
- Report: two pages (Markdown or PDF in the repo). The problem, the discrete mathematics behind it, results, limitations, sources.
- Demo: five minutes live on demo day, followed by two or three questions.