Skip to main content

Python programming, junior

A twelve-week first course in real typed code, built around turtle graphics and small games rather than exercises.

Grades
7–8
Ages
12–14
Length
12weeks
Sessions a week
2
Each session
75min
Class size
12max

What this course is

This is a Junior Tech Cadet's first properly typed language, and the course is paced for that. Every concept arrives with something visible attached to it, because a twelve-year-old who has just spent a term making sprites move does not find printing a number to a console persuasive.

The first half runs on turtle graphics, where a loop draws a shape and an error is obvious. The second half moves to text-based programs and small games, and introduces files, so that a program can remember something after it closes.

It is a slower course than the senior Python course and covers less ground. That is deliberate. The aim is a student who is genuinely comfortable, not one who has been shown everything.

Week by week

Every week ends with something that did not exist at the start of it. That is what is listed under “ends with”.

  1. Week 01

    Installing Python and running code

    Getting Python working on the student's own machine, running a first program, and reading the first error message on purpose.

    Ends with: A working Python setup and a program that greets the user by name.

  2. Week 02

    Turtle graphics and sequence

    Drawing with commands, and the fact that order matters absolutely.

    Ends with: A drawing of a house, made only of sequential commands.

  3. Week 03

    Loops

    For loops and range. Drawing polygons and spirals with them.

    Ends with: A spiral pattern that would be unreasonable to draw by hand.

  4. Week 04

    Variables and arithmetic

    Storing values, changing them, and the difference between a number and the text of a number.

    Ends with: A program that converts between currencies and units.

  5. Week 05

    Conditions

    If, elif and else, and combining conditions with and and or.

    Ends with: A quiz program that scores the user and reacts to the score.

  6. Week 06

    Functions

    Writing a function, giving it parameters, returning a value, and why repeating yourself is a problem worth solving.

    Ends with: The week 2 drawing rewritten so each shape is one function call.

  7. Week 07

    Lists

    Making a list, indexing it, looping over it, and adding to it.

    Ends with: A program that manages and reports on a list of test scores.

  8. Week 08

    Debugging on purpose

    Reading a traceback line by line, using print to narrow down where a value went wrong, and the most common beginner errors.

    Ends with: Three supplied broken programs, diagnosed and fixed with a written note of the cause.

  9. Week 09

    Randomness and a first game

    The random module, and using it to make a program behave differently each run.

    Ends with: A number guessing game with hints and a limited number of tries.

  10. Week 10

    Files

    Reading and writing a text file, so a program can remember something between runs.

    Ends with: The quiz program upgraded to save a high score table.

  11. Week 11

    Final project build

    A text adventure or a small game of the student's choosing, planned first and then built in class with the instructor moving between students.

    Ends with: A working first version of the student's own project.

  12. Week 12

    Finish, test and present

    Fixing what playtesting exposed, tidying the code, and presenting it to the group.

    Ends with: A finished, tested project with a short written explanation.

What they will be able to do

  • Write, run and debug a Python program independently
  • Use loops, conditions, functions and lists correctly
  • Read a traceback and act on it instead of guessing
  • Save and load data from a file

What they build

  • A turtle graphics drawing built from functions
  • A scored quiz with a saved high score table
  • A number guessing game
  • A text adventure or small game of the student's own design

Questions about this course