Syllabus & Study Plan

What the Python course covers, what you'll be able to do by the end, and a suggested ten-week schedule with a checkpoint each week. Go at your own pace — working through in order matters more than finishing fast.

Who this course is for

Complete beginners to programming, people who use Python occasionally and want a solid foundation, and developers coming from other languages. No previous experience is assumed.

Learning outcomes

By the end of the course you will be able to:

  1. Install Python, run scripts and use the interactive shell and an editor.
  2. Work confidently with numbers, strings, booleans and None, including formatting output.
  3. Control program flow with conditions, pattern matching and loops.
  4. Choose and use the right data structure: lists, tuples, sets, dictionaries and the collections types.
  5. Write clear, reusable functions — with flexible arguments, type hints, decorators and generators.
  6. Model problems with classes, inheritance, special methods, dataclasses and enums.
  7. Handle errors robustly and read and write text, JSON and CSV files.
  8. Organise code into modules and packages, manage dependencies with virtual environments, and use the standard library.
  9. Test code with pytest and write idiomatic, PEP 8–compliant Python.
  10. Build a complete data-processing program from scratch.

Course outline

PartLessonsFocus
1. Getting Started01–13Setup, syntax, variables, types, strings, formatting, operators, I/O
2. Control Flow14–18Conditions, match, loops
3. Data Structures19–27Lists, comprehensions, tuples, sets, dictionaries, unpacking, collections
4. Functions28–35Arguments, scope, lambdas, recursion, type hints, decorators, generators
5. Object-Oriented Python36–40Classes, inheritance, special methods, properties, dataclasses, enums
6. Errors & Files41–45Exceptions, files, paths, JSON, CSV
7. Modules & the Standard Library46–52Packages, pip/venv, math, dates, regex, itertools, asyncio
8. Writing Good Python53–56Testing, style, recent versions, final project

Ten-week study plan

Plan on three to five hours a week, including time spent experimenting in the editors.

Week 1 — First steps

Lessons 01–07. Install Python and an editor; run a script from the terminal.

Checkpoint: write a script that converts a list of temperatures from Celsius to Fahrenheit and prints them neatly.

Week 2 — Text and logic

Lessons 08–13.

Checkpoint: turn " Hello World " into "hello-world", and print a formatted receipt with aligned columns.

Week 3 — Control flow

Lessons 14–18.

Checkpoint: FizzBuzz from memory, and a number-guessing game using a while loop.

Week 4 — Lists, tuples and sets

Lessons 19–23.

Checkpoint: given a list of names with duplicates, produce a sorted list of unique names using a set and a comprehension.

Week 5 — Dictionaries and collections

Lessons 24–27.

Checkpoint: count word frequencies in a paragraph two ways — with a plain dictionary and with Counter.

Week 6 — Functions

Lessons 28–35.

Checkpoint: write a @timed decorator and a generator that yields Fibonacci numbers; add type hints to both.

Week 7 — Object-oriented Python

Lessons 36–40.

Checkpoint: model a library with Book (a dataclass), Member and a Library class that lends books, using an enum for loan status.

Week 8 — Errors and files

Lessons 41–45.

Checkpoint: save your library to a JSON file and load it back, handling a missing or corrupted file gracefully.

Week 9 — The standard library

Lessons 46–52.

Checkpoint: split your library project into modules inside a virtual environment, and add a function that lists overdue loans using datetime.

Week 10 — Professional habits and the final project

Lessons 53–56.

Final project: complete the sales report and at least three of its challenges, with pytest tests for the parsing and summary functions. Then take the quiz and aim for 25 out of 30 or better.

Faster tracks

  • Three-week intensive (about 15 hours a week): Parts 1–3, then 4–6, then 7–8.
  • Coming from another language? Skim Part 1, then focus on lessons 10, 15, 21, 26, 29–31, 34–35, 38 and 40, where Python's idioms differ most.
  • Heading for data science? Prioritise lessons 19–27, 31, 45, 48 and 51, then continue with NumPy and pandas.