The Five Levels of
AI-Assisted Coding

Not all AI use is equal. The Five Levels framework is a vocabulary for making deliberate choices about how much of a task you hand to the AI — and how much oversight you keep.

The Five Levels overview slide — the map that runs through every module and project Module 1, L1.2 · The Five Levels of AI-Assisted Coding · Slide 2

This lecture introduces the Five Levels framework — a vocabulary for choosing the right level of AI involvement for any task. From a quick lookup (Level 1) to a fully autonomous agent run (Level 5), each level carries different trade-offs in speed, control, and risk. The core skill is not reaching for the highest level — it is matching the level to the task.

Level 1

AI as Reference

Ask. Get an answer. Apply it yourself.

You ask the AI a question. It answers it. What's the I2C address range for peripherals on an Arduino Uno? What does this linker error mean? What's the difference between SPI mode 0 and mode 3?

This maps directly onto what most people already do with search engines, except the AI synthesises and explains rather than returning links. For a maker digging into an unfamiliar datasheet, this is genuinely useful. It's also the level with the lowest ceiling — you're getting knowledge, not code.

Prompt →

What's the difference between SPI mode 0 and mode 3?

Output ↓

A clear explanation of clock polarity (CPOL) and clock phase (CPHA), with a timing diagram...

Level 2

AI for Snippets

You own the architecture. AI fills one piece.

You own the code. The AI fills in one piece of it. You're writing firmware for a sensor interface and you need a function that converts a 12-bit ADC reading to a voltage given a 3.3V reference.

You're still the architect. You decided the program structure, the data types, where this function sits. The AI handled one implementation detail. The key discipline is that you're not asking for the whole program — you're asking for a piece you can evaluate on its own terms.

Prompt →

Write a Python function that converts a 12-bit ADC value to voltage given a 3.3V reference.

Output ↓

def adc_to_voltage(adc_val: int, vref: float = 3.3) -> float: return (adc_val / 4095) * vref

Level 3

AI for Modules

Describe the interface. AI implements the class.

Covered in this course

The AI isn't filling in a snippet. It's implementing a complete, self-contained piece of your design. You need a Python class that manages a serial connection to an Arduino: opens the port, sends JSON commands, reads responses, handles timeouts, raises a clean exception if the connection drops.

You designed the interface; the AI wrote the implementation. You still need to understand the result well enough to test it and integrate it. Domain knowledge pays off here: knowing the edge cases — dropped connections, malformed responses — is what makes the specification precise enough for the AI to get it right.

Prompt →

Create a Python class SerialBridge that opens a serial port at 9600 baud, sends dict commands as JSON lines, reads JSON responses, and raises ConnectionError on timeout.

Output ↓

class SerialBridge: def __init__(self, port, baud=9600, timeout=2): ...

Level 4

AI for Complete Files

You specify. AI builds the whole thing.

Covered in this course

You provide a specification. The AI returns a working file or sub-system. A concrete example: write a single-file Python script that reads sensor data from a serial port at 9600 baud, plots three channels live, and saves to CSV when the user closes the window.

You are the architect and the reviewer. You specify what the system does; the AI codes the whole thing. The quality of the output depends almost entirely on the quality of your specification. Underspecify and you get something that technically works but doesn't fit your requirements. This is where framing becomes the bottleneck.

Prompt →

Create a single-file Python script that reads comma-separated lines (timestamp, voltage, current) from serial at 9600 baud, plots all three on a live-updating chart, and saves to CSV on close. No external dependencies beyond pyserial and matplotlib.

Output ↓

# A complete 120-line Python script ready to run

Module 1 Lecture 3 — The Core Skill: Framing a Problem for an AI Module 1, L1.3 · The Core Skill: Framing a Problem for an AI

Framing is the core skill of AI-assisted coding. This lecture introduces the four-element structure — task, context, constraints, and output format — that turns a vague request into a specification the AI can act on. A well-framed prompt reduces correction cycles; a poorly framed one produces plausible-looking output built on wrong assumptions.

Level 5

AI as Agent

Set a goal. AI reads, runs, fixes, reports.

Covered in this course

The AI doesn't just generate code. It reads your files, runs commands, observes the output, and responds to what it finds. You set a goal; the AI executes the steps. You point Claude Code at a half-built serial plotter and say: "The graph freezes when the Arduino sends malformed data. Find the issue and fix it."

Claude Code reads the source files, identifies where the parser fails on unexpected input, writes a fix, runs the script to verify it, and reports what it changed. You didn't write any of that code. You reviewed the diff and decided whether to accept it. Level 5 is the most powerful mode — and the one that requires the most from you.

Prompt →

The graph freezes when the Arduino sends malformed data. Find the issue and fix it. Run the tests after to confirm nothing regressed.

Output ↓

// Agent reads 4 files, identifies parser bug, writes fix, runs tests, returns diff

Level 5 in action — Claude Code reading files, running tests, and returning a diff Module 5, L5.4 · Building a Multi-file Project with an Agent

This lecture shows Level 5 working across a real multi-file project. Claude Code reads the codebase, runs the test suite, interprets the failures, and returns a diff — without being told which files to touch. The lecture covers how to set the goal, how to review what the agent did, and when to stop it before it goes too far.

Where you start, where you finish

Most makers enter at Level 1 or 2. By the end of this course you'll work confidently at Levels 3–4, with hands-on Level 5 experience. The projects build in a deliberate sequence.

P1 — RC Filter Analyser
Level 3–4
Built in Claude browser. No editor, no agent.
P2 — Arduino Serial Plotter
Level 4
Multi-file Python + web, Cline or Claude Code.
P3 — Datasheet Q&A Tool
Level 4–5
First agent-directed multi-step build.
P4 — Makerspace Booking System
Level 5
Full autonomous agent run across 10+ files.

The progression is deliberate. Without the lower-level experience, you can't evaluate what an agent produces. The projects give you that foundation before asking you to use it at full power.

Ready to level up?

The Five Levels framework runs through the entire course. Start at Level 1 and work your way to confident Level 5 use by the capstone.