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:
- Install Python, run scripts and use the interactive shell and an editor.
- Work confidently with numbers, strings, booleans and
None, including formatting output. - Control program flow with conditions, pattern matching and loops.
- Choose and use the right data structure: lists, tuples, sets, dictionaries and the
collectionstypes. - Write clear, reusable functions — with flexible arguments, type hints, decorators and generators.
- Model problems with classes, inheritance, special methods, dataclasses and enums.
- Handle errors robustly and read and write text, JSON and CSV files.
- Organise code into modules and packages, manage dependencies with virtual environments, and use the standard library.
- Test code with pytest and write idiomatic, PEP 8–compliant Python.
- Build a complete data-processing program from scratch.
Course outline
| Part | Lessons | Focus |
|---|---|---|
| 1. Getting Started | 01–13 | Setup, syntax, variables, types, strings, formatting, operators, I/O |
| 2. Control Flow | 14–18 | Conditions, match, loops |
| 3. Data Structures | 19–27 | Lists, comprehensions, tuples, sets, dictionaries, unpacking, collections |
| 4. Functions | 28–35 | Arguments, scope, lambdas, recursion, type hints, decorators, generators |
| 5. Object-Oriented Python | 36–40 | Classes, inheritance, special methods, properties, dataclasses, enums |
| 6. Errors & Files | 41–45 | Exceptions, files, paths, JSON, CSV |
| 7. Modules & the Standard Library | 46–52 | Packages, pip/venv, math, dates, regex, itertools, asyncio |
| 8. Writing Good Python | 53–56 | Testing, 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
Checkpoint: turn " Hello World " into "hello-world", and print a formatted receipt with aligned columns.
Week 3 — Control flow
Checkpoint: FizzBuzz from memory, and a number-guessing game using a while loop.
Week 4 — Lists, tuples and sets
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
Checkpoint: count word frequencies in a paragraph two ways — with a plain dictionary and with Counter.
Week 6 — Functions
Checkpoint: write a @timed decorator and a generator that yields Fibonacci numbers; add type hints to both.
Week 7 — Object-oriented Python
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
Checkpoint: save your library to a JSON file and load it back, handling a missing or corrupted file gracefully.
Week 9 — The standard library
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
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.