Semester project · 15% of the final grade
Build something real, one commit at a time.
Every student has a personal project: a small but complete program, sized for one person and ten weeks, built in your own GitHub repository and demoed live on the last Monday. Most projects are in C; some use Python or the web.
Find my project
Type your student number
Your number is not sent anywhere. Each card is encrypted with a key derived from its owner's student number; your browser derives the same key and can open only your card. The page source contains nothing but ciphertext, so nobody can read another student's project.
No project shown yet. Type your student number above.
- Minimum scope (a passing project)
- Advanced scope (a top project)
Builds on . Your first commit: the README's plan paragraph and task list, this week.
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, and the single best line on your CV from this course.
How it was assigned
Projects were drawn at random from a bank of twenty across the six themes below, in week 5 (October 19, 2026). Each has a minimum scope and an advanced scope. Two projects were given to two students, with different advanced scopes.
Where you work
In a private repository created by Classroom 50 from a starter (README skeleton, report template, Makefile, devcontainer), with the same Codespaces workflow as the labs. Your commit history is part of the grade, so commit small and often.
Themes
Six themes, one per module
Every project sits in one of these themes and builds on the weeks listed. If your theme's weeks are still ahead, start with the parts you already know and read ahead on the week pages.
-
builds on week 3, week 4
Text and ciphers
Strings, loops and arrays in C. Small programs with a big history.
-
builds on week 5
Algorithms
Searching, sorting and problem solving, with running time you can measure.
-
builds on week 6
Memory, files and images
Bytes, pointers and binary files. The most “under the hood” projects.
-
builds on week 7
Data structures
Linked lists, hash tables and tries. Speed and memory trade-offs you can feel.
-
builds on week 9, week 10, week 11
Python, AI and data
Higher-level languages and real data. Tools you will actually use.
-
builds on week 12, week 13
The web
Things people can click. HTML, CSS and JavaScript, with an optional Python backend.
Timeline
Five milestones
Dates are Mondays. Each milestone is checked in the lab or by looking at your repository.
-
M0
Framework published
week 2 · Sep 28
This page: what the project is, how it is assigned, the milestones and the rubric.
-
M1
Your project, your repository
week 5 · Oct 19
Type your student number above to see your project. Accept the project repository on Classroom 50, write a one-paragraph plan and a task list in the README, make the first commit.
-
M2
Prototype check-in
week 11 · Nov 30
The minimum scope runs end to end. Tag the repository m3-prototype. Five-minute check in the lab: you show it, we look at the commit history together.
-
M3
Project workshop
week 14 · Dec 21
Lab time devoted to your project: polish, tests, README, rehearse the demo with one other student.
-
M4
Demo day
week 15 · Dec 28
Five-minute live demo from your repository, followed by two or three questions, and a tagged v1.0 release.
Rubric
How it is graded
- 30 Correctness and completenessThe minimum scope works without crashes on normal and edge inputs. Advanced scope earns the top of the range.
- 20 Code quality and testsReadable names, small functions, comments where they help, no memory leaks (C), and a few tests or a check script.
- 20 Demo and explanationYou can explain every part of your code, why you built it that way, and answer questions about it.
- 15 README and reportA README that lets someone run it in five minutes, and a two-page report (docs/REPORT.md): problem, design, results, what you learned, limitations, sources.
- 15 ProcessSteady commit history from week 5 on (at least one meaningful commit most weeks), milestones on time, tagged releases. One giant final push scores zero here.
Commit tracking
How process is measured
- Weekly commits. From week 5 to week 15, at least one commit that changes real code or documentation most weeks. Commit messages say what changed (“add blur filter”, not “update”).
- Milestone tags. Tag
m3-prototypeby week 11 andv1.0before demo day. Tags are how the instructor finds the version you want graded. - Task list in the README. The starter README has a checklist; tick items as you go. It doubles as your progress report.
- Deliverables. The repository (code, tests, README with build, run and an example run), the two-page report in
docs/REPORT.md, and the five-minute live demo.