The course
Python Essentials
Every section is open — start at the beginning, or jump to whatever you want to learn. Pick one to dive in.
Module 1
Getting Started
Set the foundations: what programming and Python actually are, and how to get Python running on your own computer.
- Section 17 lessons
Introduction to Programming
Before a single line of Python, the basics that everything else rests on: what a program actually is, why we invented programming languages, and how your code becomes something a computer can run. Every idea here is animated — watch it happen.
Open section→ - Section 26 lessons
Introduction to Python
Now meet the language itself. Where Python came from, what makes it a joy to use, who its rivals are, and where you'll find it running in the real world — the story before the syntax.
Open section→ - Section 34 lessons
Downloading and Installing Python
Time to get Python running on your own machine. Download and install it, learn the different ways to run your code, write your very first program, and — just as importantly — break it and fix it.
Open section→
Module 2
Python data types, variables, operators, and basic I/O operations
The working core of Python: write and run real programs, get comfortable with print(), then move on to variables, data types, operators, and reading input.
- Section 19 lessons
Basics
Where it gets hands-on: your first real programs, then a thorough tour of print() — the function you'll lean on to see what your code is doing.
Open section→ - Section 26 lessons
Python literals
The raw values you write straight into your code — numbers, text, and true/false — and the type Python gives each one.
Open section→ - Section 34 lessons
Operators
Your data-manipulation tools. The symbols that combine values into expressions — arithmetic and beyond — and the rules that decide what happens first.
Open section→ - Section 48 lessons
Variables
Give your data a name so you can store it, reuse it, and change it. Named boxes that hold a value — the memory your programs run on.
Open section→ - Section 52 lessons
Comments
Notes for humans that Python ignores. Why and when to leave them, how to write them, and how to switch lines of code off without deleting them.
Open section→ - Section 66 lessons
Interaction with the user
Until now your programs only spoke. Now they listen: read what the user types with input(), and turn that text into numbers you can compute with.
Open section→ - Section 74 lessons
Working with strings
Text is everywhere in real programs. Go beyond writing a string: reach inside it by index and slice, reshape it with built-in methods, and build new text cleanly with f-strings.
Open section→
Module 3
Boolean values, conditional execution, loops, lists and list processing, logical and bitwise operations
Until now your code has run straight through, top to bottom. Now it gains a will of its own — making decisions, repeating work, and handling whole collections of data.
- Section 17 lessons
Making decisions in Python
Teach your code to choose. Ask yes/no questions with comparison operators, and run different code depending on the answer.
Open section→ - Section 26 lessons
Loops in Python
The heart of the language's name: code that repeats. while and for loops, the range() function, and the break and continue controls that steer them.
Open section→ - Section 36 lessons
Logic and bit operations
Combine conditions with and, or and not — then drop a level to the bits themselves, with the bitwise operators and shifts that work on individual 0s and 1s.
Open section→ - Section 47 lessons
Lists and list processing
Hold many values under one name, in order. Index them, change them, grow and shrink them — the collection that loops were made to process.
Open section→ - Section 52 lessons
Sorting lists: bubble sort
Put a list in order. Watch the classic bubble sort algorithm work step by step — then meet the one-line way Python does it for you.
Open section→ - Section 65 lessons
Operations on lists
The surprising truth about how lists are stored — why copying a name doesn't copy the list — and the everyday tools that follow from it: powerful slices, negative indices, and the in operator.
Open section→ - Section 73 lessons
Lists in advanced applications
Lists can hold other lists — and that one idea unlocks grids, boards, and tables. Nest them to build two-dimensional arrays and beyond, with comprehensions to create them in a single line.
Open section→
Module 4
Functions, tuples, dictionaries, exceptions, and data processing
Your code has been one long script. Now you give it structure: package logic into reusable functions, store data in tuples and dictionaries, and handle the unexpected with exceptions.
- Section 14 lessons
Functions
The single most important tool for taming complexity: a named, reusable block of code. Learn why functions exist, how breaking a problem into them keeps it manageable, where they come from, and how to write your own.
Open section→ - Section 25 lessons
How functions communicate with their environment
Functions get useful when you can feed them data. Meet parameters and arguments — the slots a function declares and the values you pass in — and the two ways to pass them: by position and by name.
Open section→ - Section 34 lessons
Function return
If parameters are how data goes in, return is how it comes back out. Learn the difference between a function's effect and its result, meet the None value, see how lists travel in and out — then build five real functions.
Open section→ - Section 43 lessons
Scopes in Python
Where does a variable live, and who can see it? Meet local and global scope, the global keyword that crosses between them, and exactly what happens to the values you hand a function.
Open section→ - Section 55 lessons
Creating multi-parameter functions
Everything you've learned about functions, put to work on real problems. Build functions that take several inputs — BMI, triangles, factorials, Fibonacci — and finish with recursion, a function that calls itself.
Open section→ - Section 66 lessons
Tuples and dictionaries
Two more collections, each with a superpower lists don't have. Tuples are fixed and safe; dictionaries look things up by name instead of position. Meet mutability, then both types — and watch them team up.
Open section→ - Section 76 lessons
Exceptions
Real programs meet bad data and broken assumptions. Instead of letting them crash, you catch errors as they happen with try and except — then learn to test for and hunt down the bugs you write yourself.
Open section→
More modules coming soon.