Syllabus Lesson 151 of 156 · Capstone: choose one project
Capstone: choose one project

Choosing and scoping a project

Why it matters The capstone is the piece of work you can point to and say "I built that, and it was checked". A small project that is finished and passes says far more about you than a grand one that is half done. Choosing well, and drawing tight edges around the work, is most of what makes it finish.

A capstone is the last stone set at the top of an arch: it holds the rest together. In this course it is one project where you use what you learned in the legs before, on your own, without step-by-step instructions.

Capstone: one final project that pulls together the skills from the earlier legs. In this course you pick one of six, and finishing any one of them clears Leg 8.

Scope: the edges of what you promise to do. Like the fence around a garden: what is inside gets done properly, what is outside is not your job this time.

The six projects

Leg 8 needs Legs 1 to 4 only, so a learner who did the core can finish the course. Two of the projects (D and E) also need the deep half, Legs 5 to 7, because they build on what those legs teach.

ProjectWhat you doWhat it showsNeeds
A. Privacy auditAudit a hidden practice site end to end: trackers, cookies, CSP, third parties, and what its policy says versus what it doesYou can review a site the way a careful privacy reviewer wouldLegs 1 to 4
B. Blocker challengeExtend the blocker you built in Leg 2 and score it on a hidden practice worldYou can write a filter that stops trackers without breaking pagesLegs 1 to 4
C. Cookie-free analyticsCount visits and pages with no personal data at allYou can give a site owner useful numbers without tracking anyoneLegs 1 to 4
D. Research studyExtend your Leg 7 crawler to answer a question you choose about the simulated webYou can measure something carefully and report it honestlyAll seven legs
E. Build a privacy technologyA working Private Set Intersection or secure aggregation in the practice worldYou can build a protocol that is correct and leaks nothing extraAll seven legs
F. Any languageRebuild B, C or E in the language you use at workYou can carry these ideas into your own stackSame as the project you rebuild

CSP is the Content Security Policy from Leg 3: a header that tells the browser which scripts a page may run. Two more terms in that table come from the deep half (Leg 7), so here they are in plain words. Private Set Intersection lets two parties find the items their lists share without showing each other the rest. Secure aggregation lets a group learn a total without anyone seeing a single person's number.

Three questions to choose by

  1. What do you want to show? If you build websites, A or C maps straight onto your work. If you want to show engineering, B or E. If you want to show research, D. If your job is in JavaScript, Go, C# or another language, F lets you prove it there.
  2. What have you finished? If you did the core only, choose from A, B, C, or F rebuilding B or C. That is a full, fair finish, not a lesser one.
  3. How much time do you really have? Be honest with yourself. A project you can finish in the evenings you actually have beats one that needs weeks you do not.

Scoping: draw the fence before you dig

Before writing any code, write a short scope card. It has four parts, and it fits on one screen.

  • Goal, in one sentence: what the finished project does.
  • Must have: the few things the grader checks. Nothing else goes here.
  • Nice to have: extras you will only start once every must-have passes.
  • Not doing: things you are deliberately leaving out. Writing them down stops them creeping back in.

Here is a scope card for project C on the practice shop shopa.example:

Goal:        Daily page-view counts for shopa.example with no personal data.
Must have:   counts per page per day; no IDs, IPs or cookies stored;
             the report file in the exact shape the project asks for.
Nice to have: a count of which site sent the visitor (referrer site only).
Not doing:   charts, a dashboard, per-visitor paths.

Notice what is in "Not doing". Per-visitor paths would need some way to recognise the same visitor twice, which is the very thing project C is about avoiding. Good scope keeps you honest about your own goal.

A common misconception

"A bigger project gets a better result." It does not. The grader checks whether your output is correct on a world you have not seen. Extra features earn no extra marks, and every extra feature is one more place for a bug. Get the must-haves passing first; then decide whether the extras are worth it.

Try it Pick one project now, even if you might change your mind. Write its scope card in a plain text file or on paper: one goal sentence, three to five must-haves, one or two nice-to-haves, and at least two "not doing" items. Keep it beside you for the next two lessons.

Recap

  • You choose one of six projects; finishing any one clears Leg 8.
  • A, B and C need only the core; D and E need the deep half; F rebuilds B, C or E in your own language.
  • Choose by what you want to show, what you have finished, and the time you really have.
  • Write a scope card (goal, must have, nice to have, not doing) before any code, and finish the must-haves first.

Spotted a problem in this lesson? Report it

Code · runs in your browser
Output