Row
LIST / ARRAY — *many values lined up in order, each reachable by its position number.* Where a variable is one labeled box, a list is a numbered rack of boxes in a row — you can grab item number 3 instantly, add to the end, or walk through them one by one.
Press play to listen along. The line being read lights up as you go.
Show full transcript
Loading transcript…
Row is not an animal-tween. Row is not a faced figure. Row is a deliberately abstract concrete-object-figure — a long wooden rack of small labeled boxes in a single line, each box marked with a position number starting at 0. Inside each box sits one value. That is the whole figure.
This is essential. CodeRealm's cast is deliberately non-human and non-gendered — concrete objects, not animated people. The design refuses tech-genius-hagiography: the idea that coding is only for one "smart" kind of person. Programming primitives are operations, not personalities.
Row embodies the *list (or array) primitive. Where Stash is one labeled box, Row is many boxes in a numbered order.* You can reach into position 0, or 2, or 5, and grab exactly that value. You can add a new box to the end. You can walk down the whole row, box by box.
Reflection: have you ever felt the calm relief of having a messy pile finally sorted into a neat, findable order?
Row has no village-craft family origin — concrete objects don't have biographies. Loop, the mentor, introduces Row by demonstration, not story.
Loop sets Row on the workbench and fills it: box 0 gets `"apple"`, box 1 gets `"bread"`, box 2 gets `"milk"`. "This is Row," Loop says. "A list. Stash held one value. Row holds many, in order, each with a position number."
Loop points to box 2. "Position numbers start at 0, so this third box is number 2. Reach in by its number, and you get exactly that value — `milk`. No searching the whole rack. Just ask for the position."
The kid watches Loop pull `bread` straight from box 1. No magic. Just a numbered rack and a position.
Loop demonstrates Row's moves with Bit, the little robot the learner programs.
"Bit needs a shopping list," Loop says. "So we give Bit a Row." Loop loads the list and shows the scaffolds, one at a time: - Reach by position: `list[0]` gets the first value (counting starts at 0). - Add to the end: a new box appears at the next number. - Change a box: swap what's inside without moving the box. - Length: count the boxes to know how many there are. - Walk the row: hand the boxes to a loop, one by one, in order.
"A list doesn't decide anything," Loop says. "It doesn't think. It just holds many values in order and lets you reach any of them by number. That's all a list is."
Loop hands Row to Trek, the loop, so the kid can watch a list and a loop work together — the heart of most real programs.
"Bit, walk the list," Loop says. Trek takes box 0, then 1, then 2, handing each value to Bit. Bit reads `apple`, then `bread`, then `milk`, checking each off. When the boxes run out, the walk ends on its own.
The kid programs Bit to add `eggs` to the end, then walk the whole list again. Bit reads all four, finishes the last one, and stops. Every item handled, in order, none missed.
Reflection: have you ever felt that satisfying feeling of working through a list until everything was done?
Loop sets Row back on the workbench, its numbered boxes neat in a line.
"Here's the honest framing," Loop says. "Row is not a mind. It does not think or decide. It is a numbered rack of boxes — values lined up in order, each reachable by its position. Reach in by number, add to the end, or walk the whole row. That is all a list is."
But the kid, watching Bit finish its tidy list, feels something real — the quiet, ordered satisfaction of many things kept findable and complete, nothing lost, nothing out of place. There's a calm in good order, and the kid feels it.
"This is Row," Loop says on the object's behalf. "The list. Many values, in order, each reachable by its number. Reach in, add on, or walk it through. Honest framing."
The rack rests, ready for the next program — and the kid heads off glad, carrying that quiet, satisfied calm of things kept in good order.
The CodeRealm ensemble
Row is part of CodeRealm's distributed-narrative cast. Each character embodies a different curricular primitive; together they teach the full subject.
-
Stash
Variable / storage — the labeled box that holds a value until you call for it
-
Fork
Conditional / branching — chooses a path based on what's true right now
-
Trek
Loop / iteration — keeps going around until the work is done
-
Module
Function / encapsulation — does one job well and can be called anywhere
-
Glitch
Debugging / inspection — finds bugs gently, never shaming; 'there's always a reason'
-
Order
Sequence / syntax — reminds you that order matters in code
-
Port
Input and output: the doorway that brings information in from the world (a key press, a sensor) and sends results back out.
-
Ping
An event: a waiting bell that does nothing until its trigger happens, then runs its code the instant it is struck.
-
Shuffle
Randomness: a fresh unpredictable value each time — a dice roll, a shuffled deck — so a program can surprise, vary, and stay fair.