All Projects

Live Instruction · Python · K-12 · CodeWizards HQ

Teaching Python to Middle & High School Students —
CodeWizards HQ

Live virtual Python instruction for middle and high school students across international cohorts — scaffolded project-based sessions, real-time debugging, and Socratic facilitation designed to build independent problem-solving habits from the start.

The Role

Python instructor for K-12 learners

CodeWizards HQ is a coding education platform for middle and high school students — structured around live virtual sessions, project-based curriculum, and a gamified learning environment that keeps younger learners engaged across cohorts in multiple countries.

As a Python instructor, I lead live sessions for small international cohorts — students in the US, South Africa, and beyond — working through a sequenced Python curriculum that builds from variables and user input to modules, string operations, and interactive graphical applications. Sessions are 60–90 minutes, virtual, and built around a project students code live alongside instruction.

The K-12 context shapes everything: pacing, analogy selection, how errors are handled, and how much time is spent not just on the code but on the underlying mental model. The goal isn't just to get the program working — it's to build the habit of thinking like a programmer.

Python

K-12 · CodeWizards HQ

Live Virtual · International

Middle & High School Students

Project-Based · Scaffolded

Session Spotlight

Lesson 3 — Modules and Strings: The Wizard Adventure Shop

This session introduces two major Python concepts — modules and string operations — through a single cohesive project: building a Wizard Adventure Shop, an interactive program that displays items, takes user input, and calculates a total cost.

The project is scaffolded across four steps, each one introducing a new concept by creating a real need for it:

1

Add the shop title and background

Import the WizardLib module, add a background image, and position the shop title using library functions — introducing the concept of modules as pre-built tools.

2

Display how many items the user wants

Capture user input, build a receipt string using string concatenation and f-string interpolation — introducing the cleaner syntax and why it matters as programs grow.

3

Calculate the cost of each item

Create price variables, multiply by quantity, and update the receipt — introducing arithmetic operations and data type conversion from string to integer.

4

Display the total

Add a grand total calculation and display it using a multi-line f-string — completing the shop and connecting every concept introduced across the session.

Both students completed all four steps and had a working Wizard Adventure Shop by end of session.

Facilitation Approach

How the session was designed to teach

A few deliberate moves that show up throughout this session and define the instructional approach.

Socratic questioning before answers

When students hit errors, the first move was a question: "What does the error say? How do we fix it?" — guiding them toward the diagnosis rather than handing it over. Students who find the answer themselves retain it.

Multiple analogies until one lands

To explain Python modules, three analogies were tried in sequence: building a house without making the bricks, furniture assembly, and using a hammer without forging it. Different mental models work for different learners.

Scaffolded work blocks

Each step was given 5 minutes of independent work time before regrouping. Students who finished early got bonus prompts; students who hit errors shared their screen for live debugging with the group watching.

Error as a teaching moment

Both students hit the same type conversion error independently: can't multiply sequence by non-int. Rather than preventing the error, the curriculum surfaces it — and the session used it to teach int() conversion in context.

Real-world framing throughout

The Wizard Shop is framed as a basic version of an Amazon or eBay cart — a real-world anchor that makes the abstract (variables, multiplication, string output) feel like it's connected to something that actually exists.

International cohort, adapted delivery

Students in Texas and South Africa in the same session — different time zones, different contexts. Delivery pacing and check-ins accounted for connection lag, and prize restrictions for international students were noted and addressed.

Session Clip

Watch the Session

A clip from Lesson 3 — Modules and Strings: The Wizard Adventure Shop.

Curriculum Coverage

Concepts taught in Lesson 3

Lesson 3 sits at a pivotal point in the CodeWizards HQ Python sequence — the first session where students move beyond basic math and variables into using external libraries and managing data types carefully.

The hardest moment in the lesson is the type conversion error. Input functions in Python always return a string, but students try to multiply it by a number — and Python throws a type error. This is an intentional friction point in the curriculum: the error teaches the concept more durably than explaining it in advance ever could.

Both students hit this error independently in the session. Walking them through the diagnosis — reading the error message, understanding why strings can't be multiplied, and wrapping the input in int() — is where the real learning happened.

By the end of the session, both students had built a working Wizard Adventure Shop that accepted user input, calculated item costs, and displayed a formatted receipt — a complete, runnable application built from scratch in 75 minutes.

Python Modules

Importing and using WizardLib

String Concatenation

Combining strings with the + operator

F-String Interpolation

Cleaner variable insertion in strings

Data Type Conversion

str() and int() functions

User Input

Capturing and using input() values

Arithmetic Operations

Multiplication for cost calculation

Multi-line Strings

Triple-quote strings for formatted output

Reflection

What K-12 instruction adds to the practice

Teaching Python to middle and high school students is a different discipline than teaching adult career-changers — the stakes feel different, the patience required is different, and the design of analogies matters more. A 25-year-old career-changer can tolerate ambiguity and abstract framing for longer. A 13-year-old needs a concrete mental model in the first 60 seconds or you've lost them.

The CodeWizards HQ experience has sharpened two things specifically: analogy selection and error tolerance. On analogies — testing three different framings for the same concept live in a session, watching which one produces a visible "oh" moment, is fast feedback that most curriculum work never delivers. On error tolerance — building sessions where errors are expected, surfaced, and used rather than avoided has changed how I think about assessment design at every level.

Python K-12 Instruction Live Facilitation CodeWizards HQ Project-Based Learning Adaptive Teaching Socratic Method International Cohorts Error-Driven Learning Middle School High School

Interested in working together?

I'm currently available for remote instructional design and eLearning development contracts.