Skip to main content

Week 5: Building the same mechanism as software

Why a timer app has never changed anyone's semester, what code can do that paper cannot, and which tempting features you have to leave out to keep a ladder worth living with

22 March 2027

Open the deck

You have a paper mechanism that makes a sitting usable. This week is the one thing paper cannot give you, and it is not convenience.

(The second half of today is the first assessment: you show us the thing, running.)

Why not just use a timer app

Because the entire category measures input. A pomodoro app records that you sat there for twenty-five minutes and has no opinion about whether anything came out of it, and after nine months of honest logging the only thing I could tell you about myself was a duration.

The verdict — did this sitting achieve the thing I said it would — is the only field in the whole system that touches output, and no timer asks for it.

What code buys you

Paper is better than code for the sitting itself. It is faster, it never crashes, and nothing about a five-minute tick needs a database.

Code buys exactly one thing, and it is worth the trouble: a curve. Two hundred verdicts is a shape. It tells you that your Tuesdays are real and your Thursdays are theatre; that the run you remember as a disaster was four losses inside a month of gains. You cannot hold that in your head and you cannot see it in a shoebox of paper.

So the rule for what to build: store the verdicts, derive everything else. If the rating is a stored number you will eventually have a stale one; if it is recomputed from an ordered list of wins and losses, then re-judging a sitting from six weeks ago correctly redraws the whole history.

The worked example

We will read one implementation together. It is faithful to a real ranked system in the parts that matter — ten tiers, a hundred points per division, placements that can only gain, a hidden rating whose lead or lag drives how much a single result swings, drops gated behind a game taken at zero, and protection for a few games after a promotion.

It has one house rule, which exists to answer the objection twenty minutes isn’t enough to do anything. Length picks the mode. Under ten minutes is a remake: somebody went offline, the game never counted, it touches nothing. Ten to twenty-five is the casual mode, at half the swing. Twenty-five and up is ranked, full swing. Suddenly a twenty-minute gap in your day is a thing you can do something with.

The refusals matter more than the features

Three things were deliberately left out, and this is the part to copy.

No decay. Real ladders take points off you for not playing. This one never does. A mechanism whose job is to survive your bad weeks cannot have a rule that punishes you for having one, on its own initiative, while you are not even looking at it.

No win-streak bonus. Undocumented in the original and tier-dependent. It would add noise to a curve whose whole job is to be legible.

Nothing pops up when you stop. No summary card, no score screen, no in-session checklist panel. Those were built and then cut, because they made studying feel like a performance of studying.

Write your refusals down. In the demo I will ask you for one, and “I didn’t have time” is a different answer from “I decided against it”.

Assessment 1 demos

Second half of the session. Paper or coded, both are fully marked. Bring it in whatever state it is actually in.

The slides, as text

Every slide in order, with a description of each figure. Generated from the deck source, so it cannot fall behind it.

  1. Building the same mechanism as software

    SLOP3733 · Week 5

    FigureOfficial League of Legends splash art: a half-machine inventor raising a mechanical arm. Desaturated and duotoned into the deck's palette, under a scrim. Splash art © Riot Games, via Data Dragon. Not endorsed by Riot Games.

  2. Paper is better than code for the sitting itself

    It is faster, it never crashes, and nothing about a five-minute tick needs a database.

    So this is not a lecture about upgrading. It is about the one thing paper cannot do.

  3. Why not just use a timer app

    Because the entire category measures input.

    A pomodoro app records that you sat there for twenty-five minutes and has no opinion about whether anything came out of it. Nine months of honest logging left me able to tell you one thing about myself: a duration.

    The verdict — did this sitting achieve the thing I said it would — is the only field in the whole system that touches output, and no timer asks for it.

  4. Code buys you exactly one thing: a curve

  5. Two hundred verdicts is a shape

    FigureAn example rating curve recomputed from two hundred logged sittings. The line climbs unevenly across the whole run. One stretch of thirty sittings is shaded and labelled the month you remember as a disaster; inside it exactly 4 losses are marked with dots, and the line rises through all of them. To the right, an inset of win rate by weekday shows Tuesday and Wednesday well above the halfway line and Thursday well below it. The caption reads: the rating is recomputed from the verdicts every time, so re-judging a sitting from six weeks ago redraws all of this.

  6. So: store the verdicts, derive everything else

    If the rating is a stored number, you will eventually have a stale one.

    If it is recomputed from an ordered list of wins and losses, then re-judging a sitting from six weeks ago correctly redraws the whole history.

  7. The worked example, and what it is faithful to

    Ten tiers. A hundred points per division. Placements that can only gain.

    A hidden rating whose lead or lag drives how much one result swings you.

    Drops gated behind a game taken at zero, and protection for a few games after a promotion.

  8. One house rule: length picks the mode

    It exists to answer the objection twenty minutes isn't enough to do anything.

    • Under ten minutes — a remake. Somebody went offline, the game never

    counted, it touches nothing.

    • Ten to twenty-five — casual, at half the swing.
    • Twenty-five and up — ranked, full swing.

    Suddenly a twenty-minute gap in your day is a thing you can do something with.

  9. The refusals matter more than the features

    FigureThree feature panels drawn as faint outlines and struck through: a decay meter, a win-streak multiplier, and an end-of-session summary card. Each was built and then taken out again.

  10. No decay

    Real ladders take points off you for not playing.

    This one never does.

    A mechanism whose job is to survive your bad weeks cannot have a rule that punishes you for having one — on its own initiative, while you are not even looking at it.

  11. No win-streak bonus

    Undocumented in the original, and tier-dependent.

    It would add noise to a curve whose whole job is to be legible.

  12. Nothing pops up when you stop

    No summary card. No score screen. No in-session checklist panel.

    Those were built and then cut, because they made studying feel like a performance of studying.

  13. "I didn't have time" is a different answer from "I decided against it".

    Write your refusals down. In the demonstration I will ask you for one.

  14. Assessment 1 demonstrations

    Second half of the session. About six minutes each.

    Paper or coded — both are fully marked, and a paper system in daily use marks better than a half-finished program.

    Bring it in whatever state it is actually in.

Teaching team