Tortoise
Encode

Three Days Later, Half the Palace Was Gone

  • #encode
  • #building-in-public
  • #cs50p
  • #memory-palace

Tonight’s session was supposed to be a victory lap. Two 35-minute sprints through the next four sections of CS50P Lecture 0 — return values, comments, multiple arguments, named parameters. Easy stuff after the conceptual heavy lifting of last session.

I sat down with the cheat sheet in my head from Session 6. Argument flows in, return value flows out. Function as door, argument as chalkboard on the door, both paired so you remember they go together. Side effect at the couch, return value at the couch opening — also paired. Nine palace anchors, all “locked” three days ago at the closeout. I’d repeated each definition back clean. The session report said locked. The state file said locked.

Block one started. First question: when you write name = input("What's your name? "), what is name? My answer included a slip — I said the return value comes from “the string between the brackets,” which would mean the prompt itself is what gets returned. It isn’t. The prompt is the argument. The user’s typed text is the return value. Two different strings, two different roles.

Fine. Caught it, corrected it, kept moving. Then the next question. Then the next. By the fifth attempt to nail down argument versus return value on length = len("hello"), I’d said “string and output” instead of “argument and return value.” I’d called the chalkboard “the function.” I’d called the equals sign “the variable that comes back.” Five tries, five different versions of the same wrong directionality. Three days ago I’d been sure I had this.

The teacher built me a cheat sheet mid-session. A diagram with function in the middle, argument flowing in, return value flowing out. A table for type-versus-role. The drill press analog from last session, formalized. We saved it to disk so future sessions could load it automatically. Then we did the same for the full palace inventory — thirteen anchors now, the four new ones from tonight included. Both files now live in the resources folder. Auto-loading. Permanent.

The session almost ended there. But before closeout, we did one more thing: a cold walk. Thirteen palace anchors, fast. Image, term, definition. I’d say what was at each location.

Anchor seven, couch jumping. My answer was “debugging.”

Anchor eight, couch opening. “Debugging.”

Anchor nine, fireplace cubbies. “Variables.”

Anchor ten, golden fireplace. I skipped it.

The drift report came back four out of nine wrong. The biggest miss was anchors seven and eight — the side-effect-versus-return-value split that was the headline learning moment of Session 6, the thing I had been so proud of locking. Three days later, both anchors had collapsed into the same generic word: debugging. The split was gone.

I corrected each one as the report listed them. Couch jumping is side effect — outbound, no return, you feel discharged. Couch opening is return value — opens up, hands you fifteen years of suffering coming back. Cubbies are bug taxonomy. Fireplace is variable. The corrections came easy as soon as I saw the gap. The information was in there somewhere. It just hadn’t been retrievable thirty seconds earlier when I had to produce it cold.

What You Can Recall Is What You’ve Encoded. Nothing Else Counts.

Three days ago I sat through a closeout where the teacher asked me to repeat each definition once. I repeated them clean. We both said “locked.” That’s the standard test in most learning systems — teach, repeat back, mark as known, move on. It’s also a lie. Repeating something seventeen seconds after hearing it uses your working memory, the part that holds your phone number while you dial it. It has nothing to do with whether the concept is in long-term storage.

The only honest test is retrieval after a delay. Twenty-four hours. Three days. A week. If you can produce the concept cold — without the teacher feeding you the question, without the textbook open, without the cheat sheet — that’s encoded. Anything else is a feeling-of-knowing decoupled from actual knowing.

A locomotive engineer running a regional freight has the same problem in reverse. The trip plan is in your hands at signoff — every signal name, every speed restriction, every meet point. You can repeat them back perfectly. But seven hours later, fatigued, tunnel four miles ahead, that’s the test. If your recall there matches what you said at signoff, you’re trained. If it doesn’t, you’ve been telling yourself a story about what you know.

What this session bought is the real status of my palace, not the inflated status. Thirteen anchors, four of them confirmed-decayed, three more solid, six untested. The next session starts with a cold walk — not because it’s ceremony but because it’s the only honest measurement. From now on, every session closes with one too. If an anchor drifts, the session rating drops by one. The audit is the audit.

Tonight’s new anchor for the variable concept is a golden fireplace with topless shoeboxes inside. They burn, and binary code rises up the chimney. It smells like cinnamon. It’s the densest sensory image I’ve built so far — visual, olfactory, cross-linked back to the interpreter at locus two. Three days from now I’ll find out whether I actually encoded it or just told myself I did.