Free / Grades 4-6, with reading support
Paper Program Studio
Can your instructions make a drawing that someone else can reproduce without guessing?
6 flexible sessions / about 225 minutes including practice / computing, math, reading and art
Suggested rhythm: two sessions a week for three weeks. Week 1: plan and trace. Week 2: choose and repeat. Week 3: test, revise and demonstrate. Pause or spread sessions out as needed; there is no deadline on this page.
Reading, watching and paper activities are free. Parents and instructors can save a collection; scheduling it for a student requires Plus or Lifetime. No upload is required.
Before you begin
Add small whole numbers, compare at least with greater than, and follow written steps in order. The first lesson reviews the basics before variables, choices and loops. An adult can read aloud or record an explanation.
Paper, not executable code. All instructions use our defined teaching notation, not a real programming language. Do not paste them into a terminal, download software or change a device. Use invented labels, not passwords, account details or personal information. A drawing tool, pointing or dictation is enough.
Materials
- 6 sheets per learner: Project journal
Print the six pages or copy the headings into a notebook. Keep earlier versions.
- 2 sheets per learner: Draft and revised badge program
Use the blank sides of clean paper. Keep the first version instead of erasing it.
- 1 per learner: Pencil
Point, dictate to an adult or use a drawing tool that works for you.
- 1 shared, optional: Ruler
A straight paper edge works. Exact drawing size is not assessed.
- 1 shared: Browser with audio or transcripts
Read the existing lesson transcripts together. Separate worksheet printing is optional.
Choose the support that fits
- More support: read one instruction at a time, point to each trace row, and use large shapes. Split the final program into a header, dots and a footer.
- More challenge: explain why testing only one input can miss a mistake. Predict what changes if the comparison loses its equal part, then test it.
- Access options: speak, draw or dictate each explanation. A partner can mark the page while the learner directs the trace. Artistic neatness, reading speed and typing speed are not criteria.
What good evidence looks like
- State the accepted input: a whole number from 0 through 4.
- Make exactly one header: square for inputs at least 2, otherwise circle.
- Make exactly the input number of separate dots in a row, then one line below.
- Predict and trace 0, 1, 2 and 4; compare the intended and actual drawings.
- Keep a draft, explain a revision and demonstrate the revised instructions privately.
These are discussion criteria, not a new automatic score. Existing lesson and worksheet records keep their own subjects. Checking off a planned task does not demonstrate mastery or add a second grade.
Session 1 / about 35 minutes
Plan a badge printer
Goal: Describe a drawing precisely enough that another person need not invent missing steps.
Preparation / about 5 minutes of adult support: Have journal 1 and a draft sheet ready. Keep that draft for later sessions. A partner is optional: the learner can trace their own instructions slowly.
Our pretend printer follows only the stated drawing instructions. A useful instruction names the shape, count and position. For example, "draw two dots beside each other below the square" is clearer than "make it look nice." Plan the drawing before tracing it. A different drawing is evidence to inspect, not a reason to blame the person following the program.
Ask which detail a reader would have to guess. Try the instruction literally, then add the missing count or position. There may be more than one correct sequence.
- Programming basics: one step at a time / about 5 minutes
- Programming Basics: Read a Tiny Program / about 8 minutes
- Draft the badge instructions / about 22 minutes
Fun fact: Computer science can be explored with paper instructions and a person following them; a powered computer is not required for every activity. Source
S3U / Paper Program Studio / Journal 1 of 6
A drawing without mind reading
Target for this first draft: one square above a left-to-right row of four separate dots, with one line below the row. Write your instructions on the draft sheet. Follow them without filling in an unstated step.
| Part | What must be specified? |
|---|---|
| Header | One square above the dots |
| Dot row | Four separate dots, left to right |
| Footer | One line below the dots |
Which instruction needed more detail? Record its old and improved wording.
Point to a matching detail in your drawing above. Which words specify it?
Session 2 / about 35 minutes
Trace a changing number
Goal: Separate a variable update from displaying its current value.
Preparation / about 5 minutes of adult support: Have journal 2 and the first draft. Use a small value table; do not rely on remembering all the updates in your head.
A variable is a name for a value. In our notation SET dots TO dots + 2 reads the old number, adds two, then replaces it. If dots was 2, it becomes 4. SHOW dots displays 4 but leaves the value unchanged. An assignment is not an equation claiming the old and new numbers are equal. Later our printer will receive a number instead of always drawing four dots.
Ask whether SET dots TO 2 and SET dots TO dots + 2 do the same thing. Trace both from an initial value of 3, on separate runs.
- Programming basics: follow a changing value / about 5 minutes
- Programming Basics: Track a Variable / about 10 minutes
- Trace the badge count / about 20 minutes
Fun fact: A displayed number and a stored value are different things. In Python, assignment names a value; a later assignment can replace that binding. Source
S3U / Paper Program Studio / Journal 2 of 6
What is stored? What was shown?
Start a fresh run with nothing stored. SET creates or replaces the named value; SHOW displays it without changing it. For a row with no display, write "none" in the last column.
| Instruction | dots after it | Displayed on this step |
|---|---|---|
| SET dots TO 1 | ||
| SET dots TO dots + 2 | ||
| SHOW dots | ||
| SET dots TO 2 |
What was displayed, and what is stored at the end? Why can those answers differ?
How would accepting an input number make your first badge program more flexible?
Session 3 / about 35 minutes
Choose one header
Goal: Use an inclusive boundary to select exactly one branch.
Preparation / about 5 minutes of adult support: Have journal 3 and the draft sheet. Read "at least 2" together before using the comparison. Keep the old fixed-square version.
The new badge rule accepts an input n that is a whole number from 0 through 4. IF n is at least 2, draw a square header; ELSE draw a circle header. END IF closes this choice. Exactly one branch runs. For n = 3 the header is a square. For n = 0 it is a circle. The condition changes the header, not the value of n.
Ask what happens at exactly 2, then at 1. What would change if the condition said greater than 2? Explain the boundary before drawing.
- Programming basics: choose a branch / about 5 minutes
- Programming Basics: Choose One Branch / about 10 minutes
- Test both badge headers / about 20 minutes
Fun fact: A choice can contain instructions that a particular run never uses. That is why one test input may not exercise both branches. Source
S3U / Paper Program Studio / Journal 3 of 6
Both sides and the boundary
Use IF n is at least 2: square; ELSE: circle. Start each run afresh. The accepted inputs are whole numbers 0 through 4; do not silently convert text or other numbers.
| Input n | At least 2? | Header |
|---|---|---|
| 0 | ||
| 1 | ||
| 2 | ||
| 4 |
Why does exactly 2 take that branch? Which input would expose a mistaken greater-than-only comparison?
Add this choice to a new version of your instructions. Which old step does it replace?
Session 4 / about 40 minutes
Repeat dots, not everything
Goal: Combine a choice and a bounded loop while keeping the footer outside the repeated body.
Preparation / about 5 minutes of adult support: Use journal 4 and a revised-program sheet. Keep the first draft. No live coding tool or download is needed.
After the header choice, REPEAT n TIMES runs the enclosed dot instruction. Each pass places one separate dot at the next place in the row, left to right. END REPEAT closes the body. DRAW one line below the row comes afterward. With n = 3 there are three dots but only one footer line. With zero repeats, no dots are drawn; the header and footer still happen.
Ask which instructions run once and which repeat. Read END IF and END REPEAT aloud to make both boundaries clear.
- Programming basics: repeat and debug / about 5 minutes
- Programming Basics: Repeat a Group of Steps / about 10 minutes
- Combine the badge program / about 25 minutes
Fun fact: Zero repetitions can leave the loop body unused while later instructions still run. Python also permits iteration over an empty range. Source
S3U / Paper Program Studio / Journal 4 of 6
One body, several runs
Use your header choice from session 3. Repeat only DRAW one next dot, n times. After END REPEAT, draw one line below the row. For zero, leave an empty dot row between the header and line. Predict the counts before tracing.
| Input n | Header | Dots / footer lines |
|---|---|---|
| 0 | ||
| 1 | ||
| 2 | ||
| 4 |
Mark the loop body in your revised program. Which drawing instructions remain outside it?
Explain why an input of zero does not produce a completely blank page.
Session 5 / about 40 minutes
Find a mistake that one test misses
Goal: Compare expected and actual results, make a specific repair and test again.
Preparation / about 8 minutes of adult support: Set out both draft versions and journal 5. A connected adult may read the instructions literally; a private self-trace is equally usable.
A test starts with an expected result from the badge rule, not from the possibly mistaken code. Here is a broken version: after the correct header choice, repeat BOTH "draw next dot" and "draw a line below" n times. At n = 1, the counts happen to look right. At n = 2, two footer lines appear instead of one. Move only the footer instruction after END REPEAT, then test the old and new cases again.
Ask for a precise comparison: "I expected one line but traced two" gives more useful feedback than "it is wrong." Record a question, not a judgment about the learner.
- Predict the broken program / about 12 minutes
- Trace, compare and ask / about 13 minutes
- Repair and retest the badge / about 15 minutes
Fun fact: A passing example is not proof that every input works. In this project, testing only 1 misses a footer that was accidentally placed inside the loop.
S3U / Paper Program Studio / Journal 5 of 6
A useful bug report
Broken version: correct header; REPEAT n TIMES {draw next dot; draw one footer line}; END REPEAT. Only the footer placement is wrong. Compare it with the target rule, then repair it.
| Input | Expected lines | Broken lines / repaired lines |
|---|---|---|
| 0 | ||
| 1 | ||
| 2 | ||
| 4 |
Which test passed even before the repair? Why was that test insufficient?
Record the exact instruction you moved and the evidence that your repair worked.
Session 6 / about 40 minutes
Demonstrate, explain and revise
Goal: Present a reproducible program, its test evidence and a reasoned revision.
Preparation / about 10 minutes of adult support: Bring all six journal pages and both program sheets. Invite a connected adult if available, or rehearse privately and save a question for later. Nobody is monitoring live.
A convincing demonstration connects a rule, a prediction, a trace and the final drawing. Keep your first draft so you can explain what changed. A decorative border is welcome, but it must not hide the header, dot count or single footer. When you receive a question, point to a step or test case. It is fine to revise and rerun instead of pretending the first draft was perfect.
Ask the learner to explain the input 2 and the input 0 without giving away the result first. Then ask which change made their instructions more precise.
- Prepare the final badge program / about 15 minutes
- Demonstrate and explain the tests / about 15 minutes
- Reflect and choose a next change / about 10 minutes
Fun fact: The same finished picture can come from different instruction sequences. A drawing alone does not reveal every step that produced it.
S3U / Paper Program Studio / Journal 6 of 6
My program and its evidence
Use your own revised badge program. Keep the input, header, dot and footer rules from this project. Explain it privately or to a connected adult; no upload, public post or recording is required.
| Evidence | Where can I point to it? |
|---|---|
| Accepted input and header choice | |
| Loop body and single footer | |
| Tests: 0, 1, 2 and 4 | |
| Old version and justified revision |
A question I asked or received, the change I made, and the test I repeated:
What would I change next, and which result would I predict before trying it?
What changed in your explanation?
Show your evidence, explain one revision, and choose a question to investigate next. You can keep everything on paper.
Optional: record actual offline learning in Learning Records. Keep reported minutes separate from website time. For an assigned pack, use your existing daily tasks; this page does not award additional completion credit.