Skip to main content

Intermediate Python curriculum

How To Use This Course

This course is designed for students who already have experience of the following programming techniques:

  • Output
  • Input
  • Variables
  • Simple selection
  • Simple iteration
  • Lists
  • Basic functions

These techniques are referred to, built upon and used in the lessons and tasks. It is not essential that students have direct experience with the Python language as the syntax is fairly straightforward and simple to pick up.

If you’re not sure that your students are ready to start this course, you might want to check out our Intro To Python course instead.

Feel free to use the curriculum as is, or modify it to fit your needs. If you share these materials (as is or with modifications), please provide attribution to Replit and Andy Colley, who created the curriculum.

The Full Curriculum

The course is split into seven sub-topics. For each one there is a more in-depth .readme document to help you get started. This contains teacher notes to break down the key concepts linked to the coding skills, links to the tasks, example solutions on Replit, and the text of the tasks set. There’s also a slide deck for each week with presenter notes containing context, subject knowledge cues, possible questions to ask your students, and other useful links.

For every task, we’ve provided a hyperlink to a repl that students can work on. Share this with them and get them to fork their own version. There are also links to example solutions. There are often multiple ways of completing a task, so students may well have different code that works.

Intro Video


Click here for the master folder containing all resources.

Links to the individual sub topics are below:

  • Strings: String functions and manipulation
  • Numbers: Data types, random numbers, modulus
  • Selection: Multiple conditions using AND, OR, nesting selection
  • Iteration: Multiple boolean conditions, validation, combining selection and iteration
  • Lists: Output a range of items from a list, search a list
  • Files: Read from a file, write to a file
  • Exception Handling: Using try/catch


The tasks in this course make use of the PRIMM pedagogical approach. This model is based upon Rosenshine’s principles of instruction.

Our Awesome Creator

This course was created by Andy Colley.

Andy has been teaching age 11 - 18 computer science and ICT in Manchester, UK, since 2004. He's a Computing at School master teacher, a Lead Practitioner for teaching & learning, and mentors trainee teachers. You can find him on twitter as @MrAColley or hosting the @LearningDust edtech podcast at

If you have any feedback, questions or comments about the resources, please get in touch. We’re excited about these resources and would love to hear from you.

Was this helpful?