When teachers ask me what to do first in CSP Python, they usually aren’t asking for a philosophy. They’re asking for something practical they can use tomorrow.

This is my two-week starter plan for a beginner-heavy CSP class. It’s designed to:

  • build classroom routines for coding (without chaos)
  • get students successful fast (without fake “copy/paste success”)
  • normalize debugging early (without students feeling dumb)
  • create momentum so the rest of the year is smoother

If you’re on a block schedule, treat each “day” as a chunk and combine two days per block.

Week 1: Confidence + Foundations

Day 1: What is CSP Python (and what it is NOT)

  • Goal: Set expectations and reduce beginner anxiety.
  • Do: Explain that coding is testing, not memorizing. Show a tiny program run (print statements).
  • Student task: Identify inputs/outputs in real systems (quick worksheet or discussion).
  • Exit ticket: “What do you think programmers do most: type, test, or debug?”

Day 2: The coding workspace + running code

  • Goal: Students can run code reliably without technical derailments.
  • Do: Teach how to run code, re-run, and read output. Model “change one thing, test.”
  • Student task: Run a starter program and make 5 small edits (text changes, numbers, order).
  • Exit ticket: “What did you change and what happened?”

Day 3: Variables (the “label maker” concept)

  • Goal: Students understand variables as labels that store values.
  • Do: Predict → run → explain cycle (repeat several times).
  • Student task: Fill-in-the-blank variable practice + short challenge: change values to match a target output.
  • Teacher move: Celebrate “good predictions,” not just correct answers.

Day 4: Input and output (basic interaction)

  • Goal: Students can collect input and produce formatted output.
  • Do: Show string concatenation / f-strings (whichever your course uses).
  • Student task: Build a “mini interview” program (name, favorite snack, etc.).
  • Exit ticket: “What’s the difference between a variable and input?”

Day 5: Debugging Day 1 (make mistakes on purpose)

  • Goal: Students learn: errors are information, not judgment.
  • Do: Read a simple error message together. Teach: line number + what it expected.
  • Student task: “Fix the code” mini set (3–6 short bugs).
  • Win: Students leave Week 1 believing “I can fix things.”

Week 2: Skill-building + Independence

Day 6: Data types (without drowning in vocabulary)

  • Goal: Students know the difference between strings and numbers and why it matters.
  • Do: Show common confusion: "5" vs 5. Predict output before running.
  • Student task: Sort examples into string/int/float + quick edits to fix type issues.

Day 7: Math in Python (simple, useful, confidence-friendly)

  • Goal: Students can do basic calculations and store results.
  • Student task: Make a tip calculator or “total cost” calculator (guided).
  • Teacher move: Require students to write 1 sentence explaining the formula in words.

Day 8: Conditionals (introduce decision-making gently)

  • Goal: Students can write a basic if statement and explain it.
  • Do: Truth statements → if/else as “choose a path.”
  • Student task: Simple “if this, then that” scenarios + 1 guided coding challenge.

Day 9: More conditionals + common logic mistakes

  • Goal: Reduce the most common beginner errors (indentation, == vs =, logic order).
  • Student task: Fix-the-logic set + short build: “can you ride?” height/age checks.
  • Exit ticket: “What is the #1 thing that breaks if statements?”

Day 10: Mini-checkpoint + small project

  • Goal: Students prove independence in a low-stakes way.
  • Option A: Short quiz + corrections.
  • Option B: “Choose-your-own mini program” with 3 required features (variables, input/output, if/else).
  • Teacher move: Let students personalize, but keep the required features tight.

Why this plan works

  • Fast wins: Students succeed early, which reduces fear.
  • Predict → Run → Explain: Creates real thinking instead of copying.
  • Debug early: Stops the “I’m bad at coding” story before it starts.
  • Low-stakes independence: Students learn to try before asking.

Quick adjustments (if your class is different)

If your students are very advanced

Combine Days 2–4, add stretch challenges, and increase the mini-project complexity on Day 10.

If your students are true beginners

Slow down Days 6–9, and add an extra practice day after conditionals before the mini-checkpoint.

Want Unit 1 Resources That Match This Plan?

If you want classroom-ready Unit 1 lessons, practice, and checks that align with this two-week start, you can find my CSP Python Unit 1 resources here.