Children use computers every day, but mostly they run programs that other people made. This workshop argues that they should also learn how a computer works. A person who knows how it works can read a program's logic, predict what it will do, and make a machine carry out their own intentions, even when AI helped write the code.
The workshop is for teachers in Northville, Michigan, and it is done mostly on paper. Jason Kridner presents it under the title "Amplifying Agency". Agency here means being able to act on purpose and get the result you intended. A tool amplifies agency when it lets you do more of that. The workshop has two exercises, and they matter equally.
- The counter machine, with crayons. Each table runs a Minsky counter machine: an imaginary computer described by the computer scientist Marvin Minsky. Its memory is a few cups of crayons, and its program is a row of cards. There are only two kinds of card. One adds a crayon to a cup. The other takes a crayon out of a cup, or, if the cup is empty, sends you to a different card instead of the next one. With just those two instructions it can compute anything an ordinary computer can. So it shows how a machine computes, step by step, with nothing hidden.
- The next-word hat. The room starts from a shared opening sentence. Everyone writes a next word on a slip of paper, and one slip is drawn from a hat and added to the sentence. Then everyone writes again, and the process repeats. Run it twice from the same start and the two sentences come out different. This gives a loose idea of how a language model, the kind of AI that writes text, picks one word at a time by chance. It shows what today's AI is and isn't, and why it doesn't give the same answer every time.
The workshop opens with a short story about a child finding her own voice through drawing, and about tools she can use but not control. The story says why this matters. The workshop ends with a demonstration. Students program BeagleConnect Zepto, a tiny circuit board that is a whole computer, to play a game against each other, and the game is shown on BeagleBadge, a board worn on a lanyard with a paper-like screen. The code comes from the interactor project, where students compete through programs they wrote themselves.
What's here
- The slides, a deck that runs in a web browser. With the slides open, press the S key for the speaker view. The speaker notes give every slide's notes as one page. The paper activities give instructions for both exercises. The counter machine cards are printed on card stock. The workshop's own README explains how the deck is put together.
- Notes: planning notes and earlier decisions, kept as dated records.
- Stories: earlier drafts of the opening story.
- Status: what is done, what is in progress, and what is waiting on a decision.
Changing the slides
Every slide is one entry in www/workshop-v2/slides.json. After editing it,
rebuild the deck and check it. Run these from the checkout's top folder, the
one that holds this README:
node www/workshop-v2/build.cjs
node www/workshop-v2/verify.cjs
build.cjs writes the slide page, index.html, from slides.json, so an
edit made only to index.html is lost at the next build. verify.cjs runs
every counter machine program on the slides and the printed cards, and checks
that the slide count, the image links and the page links are right. It prints
PASS when all is well.
This project is kept in Fossil, a version-control system: it records every
change to the files as a new version, and a checkout is your copy of them.
The pictures are kept apart from that. They are unversioned files: files
that Fossil keeps on the project's server, with no record of earlier
versions, so a checkout doesn't contain them. Each slide links to its picture
by web address, such as
https://ollama.openbeagle.org/mechanical-turk/uv/assets/beaglebadge.png.
So replacing a picture on the server changes the slides at once, with no
rebuild.
The commands need Node.js, a program that runs JavaScript outside a browser.
On a computer that doesn't have it, run
crystal run tools/authoring-root.cr. It needs Crystal, the programming
language the script is written in. The script builds a private folder,
/workspace/tools, holding Node.js, the Chromium web browser for testing the
slides, and a speech transcriber, which turns a recorded voice memo of the
story into text. The script installs nothing outside that folder. It also writes a
small script, /workspace/tools/enter, that runs a command inside that
folder, for example
/workspace/tools/enter node www/workshop-v2/verify.cjs.