🧠 Teaching Approach

Logic first, code second. Every project starts with a flowchart, builds with blocks, and graduates to text code when the student is ready.

Core Principles

The thinking behind how we teach in Computer Club.

🧠 Logic Before Syntax

If you can draw the logic in a flowchart, you can implement it in any language. We focus on computational thinking — sequence, selection, iteration, decomposition — before writing a single line of code.

📄 Concept First, Build Later

Every project starts with understanding what we're trying to do and why, before how. Students sketch the system, identify inputs and outputs, and map the logic before touching hardware.

👪 Scaffold & Differentiate

Not every student is at the same level. The scaffolding ladder lets students enter at the right point: some will work in blocks all term, others will transition to text code quickly. Both are valid.

🔄 Baton Pass as Assessment

The real test of understanding is teaching someone else. When a group hands over a strand, their flowcharts, project cards, and walkthroughs demonstrate genuine comprehension.

⚠️ Fail Forward

Hardware doesn't always work. Sensors give odd readings. Wires come loose. This is the point — debugging a real system teaches more than a perfect tutorial ever could.

🌐 Real-World Context

Every project solves a real problem: monitoring air quality, powering a device with solar energy, watering plants automatically. The learning is a byproduct of building something that matters.

The Scaffolding Ladder

Every project follows this progression. Students move up at their own pace.

All Students

🔢 Flowchart the Logic

Before any technology, draw the logic. What are the inputs? What decisions are made? What are the outputs? Use standard flowchart symbols: oval (start/end), rectangle (process), diamond (decision), parallelogram (input/output). This can be on paper, whiteboard, or a digital tool.


Example: "If temperature > 25°C, turn fan ON, else turn fan OFF"

KS3 / Entry Point

🧩 Build with Blocks (mBlock)

Translate the flowchart into block-based code using mBlock. Each flowchart shape maps to a block type: process → action block, decision → if/else block, loop → repeat block. Students see their logic come to life without worrying about semicolons, brackets, or spelling.


Why mBlock: Supports ESP32 & Micro:bit. Built-in Wi-Fi and MQTT blocks. Scratch-based, so students already know the interface. Generates real Python/C code from blocks.

KS4 Transition

👁 Read the Generated Code

mBlock shows the text code alongside the blocks. Students compare: "my if/else block became if temp > 25: in Python." This is a reading exercise, not a writing exercise. Annotate the generated code: what does each line do? Which flowchart box does it match?

KS4 Confident

✏️ Modify the Text Code

Make small changes directly in the text code: change a threshold value, add a new elif condition, adjust a delay. The blocks and code stay in sync in mBlock, so students can see the effect of their text edits reflected in the block view. Builds confidence incrementally.

Stretch / Independent

💻 Write MicroPython from Scratch

Using Thonny IDE or VS Code, students write MicroPython directly for the ESP32. They still start with a flowchart, but the implementation is fully text-based. At this stage the flowchart is a design tool, not a crutch — just like a professional engineer's design document.

Programming Tools

Two custom-built tools that match the scaffolding ladder.

🔬 FlowCode — Tier 1 (Logic)

Design programs visually using computational thinking concepts: variables, input, output, selection, iteration, procedures, and functions.

  • Drag-and-drop node-based design canvas
  • Three output tabs: Pseudocode, Python, MicroPython
  • MicroPython tab generates code ready to paste into Thonny
  • Copy button for quick transfer to IDE
  • Variable helpers and operator tooltips for beginners
  • No hardware knowledge needed — pure logic

Open FlowCode →

⚙ ArduinoFlow — Tier 2 (Hardware)

Map logic onto real hardware: GPIO pins, sensors, motors, serial communication. Generates Arduino C code for flashing to devices.

  • Board selector: Arduino Uno, Nano, Mega, ESP32
  • Hardware blocks: pinMode, digitalRead/Write, analogRead/Write, servo, tone
  • Control flow: if/else, for loops, while loops, functions
  • Live pin diagram showing which pins are in use
  • Built-in tutorial system for self-guided learning
  • Generates real .ino code ready for Arduino IDE

Open ArduinoFlow →

📈 The Two-Tier Workflow

1. Design in FlowCode — get the logic right first. What are the inputs? What decisions? What outputs?
2. Implement in ArduinoFlow — map that logic onto real pins and hardware blocks. Which GPIO? What sensor library?
3. Deploy to device — copy the generated code into Thonny (MicroPython) or Arduino IDE (C) and flash it.

The flowchart is the constant throughout. Whether a student is at Tier 1 or Tier 2, the design always starts the same way.

Flowchart → Blocks → Code

See how the same logic flows through all three representations.

Step 1: Flowchart

START
↓
Read temperature
↓
Temp > 25°C?
YES ↓
Fan ON
NO ↓
Fan OFF
↓
Send to dashboard
↓
Wait 5 seconds
↑ Loop

Step 2: mBlock Blocks

⚑ when green flag clicked

↻ forever

set [temp] to (read DHT22)

if <temp > 25> then

set pin [GPIO5] to HIGH

else

set pin [GPIO5] to LOW

MQTT publish [temp] to [sensors/temp]

wait (5) seconds

Step 3: MicroPython

from machine import Pin
from dht import DHT22
from umqtt.simple import MQTTClient
import time

sensor = DHT22(Pin(4))
fan = Pin(5, Pin.OUT)
client = MQTTClient("esp32", "192.168.1.1")
client.connect()

while True:
    sensor.measure()
    temp = sensor.temperature()

    # Decision: flowchart diamond
    if temp > 25:
        fan.value(1)   # Fan ON
    else:
        fan.value(0)   # Fan OFF

    client.publish("sensors/temp",
                   str(temp))
    time.sleep(5)

Typical Session Structure

How a 60-minute club session flows using this approach.

Recap

Where did we get to last week? Review the flowchart and current progress.

5 min

Design

Extend the flowchart for today's goal. Discuss as a group: what inputs, decisions, outputs?

10 min

Build

Wire the hardware. Implement the flowchart in mBlock (or text code). Test and debug.

30 min

Test & Reflect

Does it match the flowchart? What works? What doesn't? Update the flowchart if the logic changed.

10 min

Record

Update your digital project card. Take photos. Note challenges and solutions.

5 min

Flowchart Standards

We use standard flowchart symbols so the diagrams are consistent across all strands and groups.

Start / End

Oval (rounded rectangle). Marks where the program begins and ends.

Process

Rectangle. An action or instruction: "Set fan to ON", "Read sensor".

Decision?

Diamond. A yes/no question: "Is temp > 25?". Two paths out.

Input / Output

Parallelogram. Data in or out: "Display temperature", "Read button".

📝 Recommended Flowchart Tools

  • Paper & pencil — fastest for initial sketches, best for group discussion around a table
  • Whiteboards — great for collaborative design, easy to modify
  • draw.io (diagrams.net) — free, browser-based, has flowchart templates, can be saved to Google Drive
  • Flowgorithm — free tool that lets you draw flowcharts and execute them step-by-step (great for debugging logic)

Mapping to the Jersey Curriculum for Computing

How the Computer Club directly supports the Jersey Curriculum — Computing across its three areas: Computer Science, Digital Literacy, and IT Skills.

Jersey Curriculum Aims — How the Club Delivers

The Jersey Curriculum aims to ensure all pupils:

Curriculum Aim How the Club Delivers
Understand and apply the fundamental principles and concepts of computer science, including abstraction, logic, algorithms and data representation Every project begins with a flowchart (abstraction & algorithms). Decision diamonds teach logic. Sensor data encoding teaches data representation.
Can analyse problems in computational terms, and have repeated practical experience of writing computer programs in order to solve such problems The flowchart-first approach is computational analysis. Students write programs every session across blocks and MicroPython, solving real physical computing problems.
Can evaluate and apply information technology, including new or unfamiliar technologies, analytically to solve problems Students work with Micro:bit, ESP32, LoRa, Node-RED, MQTT, solar power — unfamiliar technologies applied analytically to real problems.
Are responsible, competent, confident and creative users of information and communication technology The baton-pass model builds confidence and responsibility. Creative projects (vehicle design, dashboard UI, weatherproof enclosures) develop creativity. Portfolio cards evidence competence.