Course Flow at a Glance
The course follows a deliberate progression — each module builds on the one before it. Complete the modules in order for the best learning experience, or jump directly to any topic you need.Module 1: Getting Started
Set up your development environment, configure your editor, and learn to manage packages and virtual environments safely — the foundation every Python developer needs.1.1 Python Setup & Platform Guides
1.1 Python Setup & Platform Guides
- What is Python? — Dynamic typing vs. static typing, the Python interpreter and runtime engine
- Installing Python — Core installation instructions
1.2 Code Editor & Workspaces
1.2 Code Editor & Workspaces
- VS Code Introduction — Why VS Code, installing the extension bundle
- VS Code Setup — Python, Pylance, and Jupyter extensions
- VS Code Workspace — Virtual folder architecture
- Your First Python File — Writing and running your first
.pyfile - Jupyter Notebooks — Working with
.ipynbfiles inside VS Code - Ruff — Fast Python linter and formatter setup
1.3 Python Environments & Packages
1.3 Python Environments & Packages
- Virtual Environments — Creating with
python -m venv .venv, activation across Bash/zsh/PowerShell - Packages & pip — Installing packages from PyPI,
requirements.txt - Interactive Python — REPL interface and Jupyter setup
- Course Resources — Links, references, and downloads
1.4 uv — Modern Dependency Management
1.4 uv — Modern Dependency Management
- Introduction to uv — Why
uvis faster thanpip - uv Intro — Installing and getting started
- Virtual Environments with uv —
uv venvand environment management - Complete uv Setup — End-to-end project setup with
uv
Module 2: Python Basics
Lay down the core procedural and object-oriented foundations of Python — everything you need before advancing to real-world code.2.1 Core Syntax & Data Types
2.1 Core Syntax & Data Types
- Python Basics — Variables, operators, data types, strings, conditionals, and loops
- Data Structures — Lists, tuples, dictionaries, sets, and queues (
collections.deque) - Packing & Unpacking — Positional
*argsand keyword**kwargssignatures
2.2 Structural Foundations
2.2 Structural Foundations
- Functions — Defining reusable blocks, parameters, return values, and variable scope
- Modules & Packages — Custom module files and
__init__.pybindings - Classes & OOP — Blueprint class schemas, instance creation,
selfbindings, and attributes - Error & Exception Handling — Try-except-finally blocks and custom exception classes
Module 3: Advanced Python
Dive deep into language internals, functional styles, dynamic type checking, and modern Python patterns used in production AI applications.3.1 Language Internals & Patterns
3.1 Language Internals & Patterns
- Python Internals — CPython memory management, reference counting, and garbage collection
- Advanced Functions — First-class objects, closures, and decorators (
@decorator) - Comprehensions — List, dictionary, and set comprehensions, and generator expressions
- Functional Programming — Declarative vs. imperative,
map(),filter(),reduce() - Advanced OOP — Abstract Base Classes (ABC),
@abstractmethod, and dunder methods - Context Management — The
withstatement and writing custom context managers - Async Programming —
async/await, coroutines, and the event loop - Dependency Injection — Designing decoupled, testable Python applications
3.2 Modern Python Features
3.2 Modern Python Features
- Type Hints — Annotating functions and variables for better tooling and readability
- Data Classes —
@dataclassdecorator for clean, auto-generated class boilerplate - Working with Data — Text files, JSON loading/dumping, and CSV reading/writing
- Environment Variables & dotenv — Secure API key storage,
.envfiles, and.gitignore
3.3 Pydantic & Data Validation
3.3 Pydantic & Data Validation
- Introduction to Pydantic — Why data validation matters in AI applications
- Your First Model — Defining and instantiating a
BaseModel - Validation & Fields — Field constraints, default values, and validators
- Nested Models — Composing complex data structures
- Pydantic Settings — Loading configuration from environment variables
Module 4: Developing Projects
Structure production-grade Python applications, manage package paths, organise modules, and use the professional tools every development team relies on.4.1 Essential Developer Tools
4.1 Essential Developer Tools
- Tools Overview — The complete developer toolkit
- Version Control with Git — Why version control matters
- Git Fundamentals —
init,add,commit,push,pull - GitHub Setup — Creating an account and SSH keys
- Clone & Create Repositories — Starting and forking projects
- VS Code Git Integration — Source control panel, staging, and committing from the editor
4.2 Environment & Secrets Management
4.2 Environment & Secrets Management
- Environment Overview — Understanding runtime configuration
- Environment Variables — Setting and reading variables across platforms
- dotenv Files — Storing secrets safely with
.envandpython-dotenv
4.3 Project Architecture
4.3 Project Architecture
- Practical Python Overview — Structuring real applications
- Project Structure — Standard folder layouts (
src/,tests/,configs/) - Python Paths —
sys.pathboundaries and import resolution - Organising Code — Refactoring scripts into reusable, maintainable modules
- Project Handling — Managing multi-file Python applications
4.4 Weather Data Analysis Project
4.4 Weather Data Analysis Project
- Project Overview — Goals, architecture, and what you’ll build
- uv Setup — Initialising the project with
uv - Virtual Environment — Isolated dependencies for the project
- Complete Setup — Full project scaffold from scratch
- Build the Application — Fetch, analyse, and visualise weather data end-to-end
Module 5: Data Analysis
Build the mathematical and data manipulation foundations needed for Machine Learning and AI — the libraries every data scientist and AI engineer uses daily.5.1 NumPy
5.1 NumPy
- NumPy Arrays — Creating NDArrays, slicing, indexing, vectorisation, and broadcasting
5.2 Pandas
5.2 Pandas
- Pandas DataFrames — Data wrangling, handling missing values, cleaning, merging, and aggregating
5.3 Data Visualisation
5.3 Data Visualisation
- Matplotlib — Plotting lines, scatter plots, bar charts, custom axes, and subplots
- Seaborn — Statistical plots, heatmaps, joint/pair distributions, and styling
- Visualisation Guide — Comprehensive end-to-end dataset plotting pipelines
Quick Navigation
Getting Started
Set up Python, VS Code, and your first virtual environment.
Python Basics
Variables, data structures, functions, and object-oriented programming.
Advanced Python
Decorators, async, type hints, Pydantic, and Python internals.
Developing Projects
Git, project structure, environment management, and real applications.
Data Analysis
NumPy, Pandas, Matplotlib, and Seaborn for AI-ready data work.
Weather Project
The capstone project — build a complete weather analysis application.