Assessment handbook — coursework, projects, exams
Covers all 8 modules. Weights, marking, exam blueprints, viva protocol, grade bands.
Every module: coursework (labs) 45% · project 35% · check-off viva 10% · exam 10%.
1. Coursework
Section titled “1. Coursework”The coursework is the labs listed in each module page (L1…L6). No separate
assignments. One lab per week, submitted as a git branch against the
Fixthemusic-com/ftm repo — a lab that is not a branch does not count.
Marking — three levels per lab
Section titled “Marking — three levels per lab”| Level | Requires |
|---|---|
| Fail | Doesn’t run, or no evidence recorded, or branch missing |
| Pass | Runs, meets the brief, evidence in the branch (test, output, log line) |
| Distinction | Pass plus proof: a test that fails without it, a before/after measurement, or a reproduced failure |
A module’s coursework mark = mean of its labs. Any Fail on a lab marked required (the module page names them) caps coursework at 50.
Deadlines
Section titled “Deadlines”One week after the lecture week. Two resubmissions allowed within the semester. Late submission without a reason costs one level.
2. Projects
Section titled “2. Projects”One project per module. The module page states the deliverable; this section states what makes it pass.
The rule that kills most of the cheating
Section titled “The rule that kills most of the cheating”A project counts only if the artefact exists outside the submission: merged to master, deployed to a preview/staging, or measured against real data. A diff in a branch is not a project.
Rubric — five criteria, equal weight
Section titled “Rubric — five criteria, equal weight”| Criterion | Pass looks like | Distinction looks like |
|---|---|---|
| Works | The thing runs and does what the brief says | Runs on a fresh checkout, cold, first try |
| Tested | At least one test covers the new logic | The test fails when the logic is deliberately broken |
| Correct in the domain | Doesn’t violate a stated FTM rule | Anticipates a rule the brief didn’t mention |
| Explained | A paragraph saying what it does and what it doesn’t | Names the ceiling and the upgrade path |
| Reviewed | Survives one review pass | Reviewer changes nothing but typos |
Domain correctness is marked against backend/, not opinion. A money or
permission mistake is a Fail regardless of the other four.
3. Check-off viva
Section titled “3. Check-off viva”20 minutes, unannounced which lab, on her own submitted code. Three questions, drawn from the code in front of us:
- “Walk me through what this does, line by line.”
- “What breaks this?”
- “Why did you do it this way and not the obvious other way?”
Pass requires all three answered without opening the code again. Cannot be resat — that is the point. A viva failure caps the module at Pass.
4. Coursework problem sets
Section titled “4. Coursework problem sets”Every chapter carries a problem set of 20 marks: five graduated problems (recall → apply → analyse → synthesise), plus worked solutions with the mark allocation visible. Formative — they do not count toward the module grade, which the labs and exams carry — but a chapter without one is not teaching material.
5. Exams
Section titled “5. Exams”One paper per module, in exam week. 100 marks, 2 hours 30 minutes. Closed book with one A4 sheet of notes, except the practical section, which runs on a laptop. No internet.
No multiple choice anywhere. Every question is answered either in code, in SQL, or in two-to-five sentences naming a mechanism.
Blueprints
Section titled “Blueprints”| Module | Time | Format | Contents |
|---|---|---|---|
| CS101 | 150 min | 100 marks | 10 short answers (20); 4 problems with proofs (40); analysis and design (25); practical on laptop (15) |
| CS103 | 90 min, written | Written | Given URL + host + cookie, route the request through the stack on paper; 4 real curl transcripts → name each status and why; 2 caching decisions with header |
| CS202 | 120 min, laptop | Practical | Write 5 queries; choose and justify an index for each; 2 transaction scenarios (what race survives this isolation level); read one EXPLAIN and say what to change |
| CS301 | 90 min, written | Written | Write specs for 2 undocumented functions; given a test suite, list three defects it cannot catch; decide refactor-or-rewrite for one real function |
| FTM301 | 120 min, laptop | Open-repo | 12 “where does this live” questions answered with file paths and one sentence of mechanism; 1 end-to-end trace; 1 migration safety review |
| FTM302 | 90 min, written | Written | 5 money scenarios answered in rows and amounts; complete the state machine; find one disclosure violation in a supplied diff |
| FTM401 | 90 min, written | Written | 8 URLs/screenshots → surface, service, file; 1 cacheability decision; diagnose 1 CWV regression from a trace |
| FTM402 | 120 min, written | Written | 10 fault descriptions → name the layer and the first command; diagnose 1 incident from a log transcript; 1 security finding with severity |
Marking
Section titled “Marking”Every paper publishes, before it is sat:
- a mark scheme per question with sub-item marks and partial-credit rules;
- model answers;
- a time budget consistent with marks at ~1.2 min/mark;
- grade descriptors — what a 50, a 60 and a 70 look like in behaviour;
- section floors — the parts that must be passed independently.
Answers are marked on mechanism, not vocabulary: “it’s cached” fails, “Fastly
serves it for 60 s because the page has no session read, so s-maxage survives”
passes.
Pass mark 40%, Merit 60%, Distinction 70%. Section floors apply per module. One resit per semester, same blueprint, different questions.
6. Grade bands
Section titled “6. Grade bands”| Band | Aggregate |
|---|---|
| Distinction | ≥ 70 |
| Merit | 60–69 |
| Pass | 50–59 |
| Fail | < 50 |
Module aggregate = coursework 45 + project 35 + viva 10 + exam 10. Semester gate: every module passed before the next semester starts.
7. Transcript
Section titled “7. Transcript”One page, nine lines: 8 module grades plus the capstone outcome, with the programme aggregate. Useful evidence if this ever becomes a promotion or hiring conversation.
8. Conformance
Section titled “8. Conformance”python3 /tmp/m/audit.py exits 0 only when every module meets the course
standards: 8 required chapter sections, numeric citations, problem sets totalling
20, exam section marks summing to the paper total, a mark scheme and grade
descriptors for every paper.
Current state: CS101 conforms; the other seven modules do not yet. They are summaries, not courses, and are being rebuilt to the CS101 standard.