From print("Hello, World!") to full-stack deployment — one module at a time.
101 modules · 11 milestone projects · Zero assumed knowledge · One clear path from zero to deploy.
- Who Is This For
- What Makes Stack.Python Different
- Learning Path (11 Phases)
- Milestone Projects
- By the Numbers
- Module Format
- Quickstart
- How to Use This Repo
- Scripts & Tooling
- CI/CD
- Project Structure
- Contributing
- License
| Audience | Description | |
|---|---|---|
| 🧑🎓 | Complete beginners | No programming background assumed or required |
| 🚀 | Self-learners | Structured, linear curriculum you can follow on your own |
| 📚 | Bootcamp students | Supplemental reference to fill in knowledge gaps |
| 👨🏫 | Instructors | Fork-ready curriculum you can teach from or adapt |
| 🔄 | Career switchers | Learn modern Python with real-world applied projects |
| # | Feature | Detail |
|---|---|---|
| 1 | 🔢 101 strictly linear modules (000–100) | No branching, no "choose your own adventure" confusion. Every module depends only on what came before. |
| 2 | 🛠️ Applied from day one | Concepts are taught, then immediately used to build something tangible. Milestone projects appear roughly every 10 modules — you never go more than a few lessons without building. |
| 3 | 📦 Full content, not stubs | Every module includes a complete lesson, runnable Jupyter notebook, practice exercises, worked solutions, and a quiz — all generated and ready to use. |
| 4 | 🧠 Pedagogically intentional | Code style conventions (PEP 8, Google-style docstrings, type hints) are introduced progressively. No forward references. Visual diagrams and ASCII art explain structural concepts. |
| 5 | 🐍 Python 3.12+ | Uses modern Python features: f-strings, union typing syntax, match statements, dataclasses, and more. |
| Phase | Modules | Topics Covered | Milestone Project |
|---|---|---|---|
| 0. Orientation | 000–001 | Python history & philosophy, environment setup | — |
| 1. Fundamentals | 002–010 | Print, variables, types, type conversion, I/O, operators, strings, string formatting, numbers | 🧮 Calculator CLI |
| 2. Control Flow & Data | 011–020 | Booleans, conditionals, while/for loops, nested loops, lists, list comprehensions | ✅ To-Do List CLI |
| 3. Data Structures | 021–030 | Tuples, sets, dicts, collections (itertools, zip, enumerate), unpacking, shallow/deep copy | 📇 Contact Book |
| 4. Functions | 031–040 | Function arguments, scope (LEGB), lambdas, recursion, higher-order functions, decorators, generators, iterators | 🏰 Text Adventure |
| 5. OOP | 041–050 | Classes, attributes, methods, inheritance, polymorphism, dunder methods, abstract base classes | 📚 Library System |
| 6. Advanced OOP & Errors | 051–060 | Composition, class/static methods, properties, dataclasses, enums, operator overloading, error handling, custom exceptions, file I/O, CSV | 💰 Expense Tracker |
| 7. Modules, Stdlib & Testing | 061–070 | JSON, context managers, modules/packages, venv/pip, stdlib (os, sys, datetime, random), regex, dates/times, logging | 📊 Log File Analyzer |
| 8. Data, Web & APIs | 071–080 | Functional patterns, comprehensions deep dive, type hints (mypy), unittest, pytest & TDD, requests (APIs), BeautifulSoup (scraping), pandas | 🌤️ Weather Dashboard |
| 9. Databases & Web Apps | 081–090 | matplotlib, SQLite, SQL, SQLAlchemy, Flask, FastAPI, Jinja2, automation (shutil) | 🏦 Finance DB App + 🤖 Automation Bot |
| 10. Concurrency & Internals | 091–098 | Threading, multiprocessing, asyncio, memory management/GC, metaclasses, ML intro (numpy, scikit-learn), packaging, profiling | — |
| 11. Capstone | 099–100 | Full-stack application (FastAPI + SQLAlchemy + Jinja2), career next steps | 🚀 Full-Stack App |
| Module | Project | Concepts Applied |
|---|---|---|
| 010 | Command-Line Calculator | Variables, I/O, operators, type conversion, conditionals |
| 020 | To-Do List CLI | Lists, loops, functions, menu-driven UI |
| 030 | Contact Book | Dictionaries, nested data, search/CRUD operations |
| 040 | Text Adventure Game | Functions, dict-based world map, game loop, state management |
| 050 | Library Management System | OOP, inheritance, class design, polymorphism |
| 060 | Expense Tracker | CSV persistence, error handling, file I/O, OOP design |
| 070 | Log File Analyzer | Regex, sys.argv, file parsing, summary statistics |
| 080 | Weather Dashboard | requests (REST API), JSON parsing, API keys |
| 085 | Finance Database App | SQLAlchemy, SQLite, CRUD, data aggregation |
| 090 | Automation Bot / Mini API | FastAPI, file automation, scheduling |
| 099 | Capstone: Full-Stack Application | FastAPI, SQLAlchemy, Jinja2, Pydantic, logging, deployment |
📂 What's inside each project?
Each project includes: - A `README.md` with numbered requirements and stretch goals - `starter_code.py` with TODO markers to guide implementation - A complete reference `solution/` directory with a full implementation
101 modules · 11 milestone projects · 11 learning phases · 500+ exercises · 500+ quiz questions · 0 assumed knowledge
From print("Hello, World!") → Full-stack FastAPI + SQLAlchemy + Jinja2
Every module (000–100) follows a consistent structure:
| File | Purpose |
|---|---|
README.md |
Full lesson — prerequisites, learning objectives, concept explanation (with analogies, diagrams, code examples), common pitfalls, hands-on walkthrough, key takeaways, further reading, next module link |
notebook.ipynb |
Runnable Jupyter notebook mirroring the lesson — markdown explanations and executable code cells |
exercises.md |
4–6 exercises per module, ordered Warm-up → Core → Challenge → Stretch, with starter signatures and expected output |
solutions.md / solutions.py |
Clearly labeled worked solutions for all exercises |
quiz.md |
5–8 questions — multiple-choice, "what does this output?", short answer, debugging — answer key under ## Answers |
project/ (milestones only) |
Project brief, starter code, and full reference solution |
| Modules | Convention |
|---|---|
| 002–030 | Basic PEP 8 conventions |
| 031+ | Google-style docstrings on all functions |
| 073+ | Type hints on all code (enforced with mypy conventions) |
| Tool | Version | Links |
|---|---|---|
| 🐍 Python | 3.12+ | Download · Setup Guide |
| 🔧 Git | Any recent version | Download |
| 📝 VS Code (recommended) | Latest stable | Download |
git clone https://github.com/your-org/Stack.Python.git && cd Stack.Python && python3 -m venv venv && source venv/bin/activate && pip install -r requirements.txtmacOS / Linux
# 1. Clone the repository
git clone https://github.com/your-org/Stack.Python.git
cd Stack.Python
# 2. Create and activate a virtual environment
python3.12 -m venv venv
source venv/bin/activate
# 3. Install dependencies
pip install --upgrade pip
pip install -r requirements.txt
# 4. Start learning!
open modules/module-000-introduction-to-python/README.mdWindows (Command Prompt)
git clone https://github.com/your-org/Stack.Python.git
cd Stack.Python
python -m venv venv
venv\Scripts\activate
pip install --upgrade pip
pip install -r requirements.txtWindows (PowerShell)
git clone https://github.com/your-org/Stack.Python.git
cd Stack.Python
python -m venv venv
.\venv\Scripts\Activate.ps1
pip install --upgrade pip
pip install -r requirements.txtpython -c "import jupyter, pytest, requests, pandas; print('All dependencies installed! ✅')"- 🔢 Go in order. Each module assumes all prior knowledge. Skipping ahead will leave you lost.
- 📖 Read the lesson first. Start with
README.md— it contains the full explanation. - 💻 Run the notebook. Open
notebook.ipynband execute every cell. Experiment by changing values. - ✏️ Do the exercises. Open
exercises.mdand attempt every problem before looking at solutions. - ✅ Check your work. Compare with
solutions.md(orsolutions.pyfor milestone modules). - 📝 Take the quiz.
quiz.mdreinforces key concepts. Cover the answer key at the bottom. - 🏗️ Build the projects. For milestone modules, the
project/folder contains a real-world build. - 📈 Track your progress. Run
python scripts/check_progress.py --completed 0 1 2 ...to see your completion status.
- Fork the repository and adapt any module to your teaching style
- Use modules as-is for a semester-long course (roughly 1 module per day)
- Assign milestone projects as midterms or final projects
- Run
python scripts/run_all_notebooks.pyto verify all notebooks execute correctly
- Code along. Typing the examples yourself (rather than copy-pasting) builds muscle memory
- Break things. Modify code examples to see what happens. Errors are learning opportunities
- Use the quizzes. Each quiz is designed to reveal gaps in understanding — don't skip them
- Compare solutions. Your solution doesn't need to match exactly, but understand why approaches differ
- Revisit modules. If you're stuck on a later concept, the problem is often in a prerequisite module
| Script | Purpose | Usage |
|---|---|---|
scripts/new_module.py |
Scaffold a new module folder from the standard template | python scripts/new_module.py --number 42 --title "My Module" --phase "My Phase" |
scripts/check_progress.py |
CLI progress tracker — shows completed/total modules by phase | python scripts/check_progress.py --completed 0 1 2 3 |
scripts/run_all_notebooks.py |
Dev utility — executes all notebooks via papermill | python scripts/run_all_notebooks.py |
# Run notebooks in parallel
python scripts/run_all_notebooks.py --parallel
# Run a specific range
python scripts/run_all_notebooks.py --start 0 --end 10This repository includes GitHub Actions workflows to maintain quality:
| Workflow | Trigger | Purpose |
|---|---|---|
| notebook-check.yml | Every push / PR | Executes all notebooks headlessly via papermill |
| link-check.yml | Every push / PR | Validates all internal markdown links resolve correctly |
Stack.Python/
├── README.md # You are here 👋
├── LICENSE # MIT — free to use, modify, distribute
├── CONTRIBUTING.md # Contribution guidelines
├── CURRICULUM.md # Full linked TOC (all 101 modules)
├── SETUP.md # Environment setup (Win/macOS/Linux)
├── requirements.txt # 17 base dependencies
├── pyproject.toml # Black, ruff, mypy config
├── .gitignore
├── .github/workflows/
│ ├── notebook-check.yml
│ └── link-check.yml
├── scripts/
│ ├── new_module.py
│ ├── check_progress.py
│ └── run_all_notebooks.py
├── assets/
│ ├── images/ # Repository banner and graphics
│ └── diagrams/ # Visual diagrams for lessons
└── modules/
├── module-000-introduction-to-python/
├── module-001-setting-up-your-environment/
├── ...
└── module-100-where-to-go-next/
We welcome contributions! See CONTRIBUTING.md for full guidelines.
Quick summary:
- 🐛 Issues: Report bugs, content errors, or suggestions via GitHub Issues
- 🔀 PRs: Fork, create a feature branch, make changes, run quality checks (
black . && ruff check .), submit a PR - 📏 Content: All code must be valid Python 3.12+, follow PEP 8, use Google-style docstrings (modules 031+), and include type hints (modules 073+)
- 🚫 No forward references: Never introduce a concept in module N that won't be taught until module N+X
MIT — see LICENSE. Free to use, modify, and distribute for teaching, learning, or commercial purposes.
🐍 Stack.Python — Your zero-to-hero journey into Python.
Built with ❤️ for learners everywhere.
