Utility · skim even if revision feels fine
The misconception clinic
Exam questions are built around the specific wrong beliefs beginners reliably form, because distinguishing the students who hold them from those who shed them is what an exam is for. Here are the course's usual suspects, stated plainly and corrected. Misconceptions feel exactly like knowledge from the inside, which is why this page is worth a pass even on a good week.
Why a misconception clinic
A misconception is not an absence of knowledge; it is a plausible model that happens to be wrong, which makes it stickier than ignorance and invisible to rereading (the text agrees with your reading of it). The only reliable solvent is confrontation: state the belief, test it, watch it fail. Each row below does the first two; the linked pages hold the demonstrations.
The clinic: wrong belief, true belief
| The wrong belief | The true belief | Where it costs marks | Demonstration |
|---|---|---|---|
| "Commit saves my work to GitHub." | Commit is local; only push publishes. Four areas, and the remote is reached by exactly one move. | Any "partner sees nothing" scenario; A-section tool questions | Git's model · Week 1 |
"git pull just downloads a fresh copy." | Pull fetches the remote's new commits and merges them into your history; it can therefore surface conflicts, which are information, not damage. | Conflict questions answered as if pull were a download button | Command core · Week 1 team page |
"sudo apt update updates my software." | It refreshes the catalogue only; full-upgrade installs. Two acts, strictly ordered. | The order-and-meaning question the exam loves | Security trio · Week 3 |
| "SSH login sends my private key to the Pi to check." | The private key never leaves its machine; the Pi holds the public key and issues a challenge only the private key can answer. | Key-model questions; any answer that ships the private key scores zero | Security trio · Week 3 keys |
| "Enable the firewall first, then sort out rules." | Allow 22 before enable, always: default-deny slams the only door you are behind on a headless machine. | The consequence-and-order question | Security trio · Week 3 firewall |
| "Indentation in Python is tidiness." | Indentation is the block structure: moving a line's indent moves it in or out of the loop, branch or function, changing meaning. | Trace questions where one line sits inside or outside a loop | Python core · Week 4 |
| "Read a traceback top-down, like prose." | Bottom-up: the last line names the error, the lines above locate it. | Reading-code sections; the habit is usually worth explicit marks | Error families · Week 4 |
| "The resistor divides 3.3 V, so I = 3.3 / R." | The LED drops its forward voltage first; the resistor absorbs the remainder: I = (3.3 − V_LED) / R. | The resistor calculation, every time | The mathematics · Week 4 |
| "Resistor placement matters: it must come before the LED." | One series loop, one current everywhere in it; before or after is electrically identical. Polarity, by contrast, matters absolutely. | Fault-spotting questions; swapping the two concerns | The mathematics |
| "A pin that reads low is a pin connected to nothing." | A disconnected input floats, reading noise; a defined low or high comes from a pull resistor or a real connection. | Input-wiring questions, pull-up reasoning | Inputs and pull-ups · Week 4 |
| "Requirements should say which loop and function to use." | Requirements state observable what; the how belongs to design. Dictating mechanisms is the F-section's favourite plant. | Spec repair | Five qualities · Week 5 |
| "Pseudocode has an official syntax I might get wrong." | No standard exists; the course fixed conventions precisely so your exam answers have a defined, accepted form. | Conversion questions; hesitation costs time, not correctness | Conventions · Week 5 |
| "Timestamps and durations come from the same clock." | Wall clock for timestamps; monotonic() for intervals, because the wall clock can jump. | Design questions touching measurement | Timing rule · Week 5 |
"self is something the caller passes." | Python passes it: log.add(431) ≡ ReactionLog.add(log, 431). You list it in the def and never supply it. | The G-section rewrite question, and every "takes 1 positional argument" trap | Compressed core · Week 6 |
| "Where I create an attribute inside the class is a style choice." | Class-body assignments attach one shared object to the blueprint; per-instance state is created in __init__ through self, no exceptions. | The shared-list prediction question | Week 6's trap page |
| "Callbacks take parentheses, like every call." | A callback assignment hands over the function itself: when_pressed = self.press. Parentheses run it once, assign None, and the system goes silent without an error. | Fault-diagnosis questions with "no error, no behaviour" | gpiozero set · Week 6 |
Revision stuck? Find the layer
Before you ask for help
- Name the topic and the layer: "B on tracebacks" gets a better answer than "I don't get Week 4".
- Bring the artifact: the trace table that went wrong, the repair you attempted, the class you wrote on paper. Diagnosis needs a specimen.
- Say what you have tried: which review section, which hub page, which self-test. It prevents being handed the step you already took.
- Office hours and Omnivox messages exist for exactly this fortnight; a question asked on October 9 is worth three asked on October 18.