Course outline
From one light to a device they designed themselves.
The whole course is one idea, repeated and widened: something senses, code decides, something acts. By week 4 a student can say that sentence about their own build. Every week after swaps one part of it for something more interesting.
Everything is water
One analogy, used consistently for eight weeks. It makes even the failures predictable โ a balloon inflated backwards bursts, and so does a capacitor.
VOLTAGE is water PRESSURE CURRENT is FLOW RATE (cmยณ per second) RESISTOR is a THIN TUBE CAPACITOR is a BALLOON (fills, empties โ and bursts if reversed) DIODE is a ONE-WAY VALVE GROUND is the RESERVOIR everything returns to
Week by week
Every session ends with something that works. That's the rule the course is built around.
| Week | What they build | What they learn |
|---|---|---|
| 1 | An LED and a button, on a board they keep | What voltage, current and resistance are โ in water. Why an LED only works one way round |
| 2 | A light that fades by itself | Capacitors as balloons that fill and empty. Diodes as valves โ and what happens when you force one backwards |
| 3 | A blinking light, under software control | First Python. What a microcontroller actually is: a tap you can program |
| 4 โญ | A dial that mixes any colour | Analog in, analog out. Press the dial to switch between brightness and colour modes |
| 5 โญ | An eight-note synthesizer | Eight buttons, one octave. What sound is โ and that pitch is just switching speed |
| 6 | A light sensor and a moisture sensor | That every sensor does the same three things: read a number, decide, act |
| 7 โญ | A plant monitor that works | Building to a specification, then calibrating it against three real plants |
| 8 | Their own device, demonstrated to parents | Designing something nobody specified โ then explaining what went wrong and how they fixed it |
The code is real
Short enough to type, real enough to matter. This is the whole of week 4 โ the dial controls the brightness.
from machine import ADC, Pin, PWM
from time import sleep
dial = ADC(Pin(26))
led = PWM(Pin(15))
while True:
led.duty_u16(dial.read_u16())
sleep(0.01)
One line does the work: the number coming off the dial becomes the brightness of the light. Students who understand that line understand what every sensor in the world is doing. Week 6 is the same program with the dial swapped for a moisture probe โ which is exactly the point.
What they might build in week 8
They pick one input and one output. They're recombining what they've already wired โ not starting from nothing.
Reaction timer
How fast can you press when the light comes on?
Night light
Comes on by itself when the room gets dark.
Light-up instrument
Each note lights a different colour.
Plant alarm
Beeps when the soil dries out.
Dark detector
Sounds an alarm when someone turns the lights off.
Colour mixer
Dial through the whole spectrum on one LED.
Interested?
Courses run with a minimum of 10 students and a maximum of 12.