Skip to content

Repository files navigation

Stack.Python — A 0–100, linear, project-based Python learning sandbox for absolute beginners

Python 3.12+ MIT License Contributions Welcome 101 Modules CI Status

🐍 Stack.Python

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.



📋 Table of Contents


🎯 Who Is This For

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

✨ What Makes Stack.Python Different

# 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.

🗺️ Learning Path (11 Phases)

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

🏆 Milestone Projects

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

📊 By the Numbers

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


📦 Module Format

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

Code Style Progression

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)

🚀 Quickstart

Prerequisites

Tool Version Links
🐍 Python 3.12+ Download · Setup Guide
🔧 Git Any recent version Download
📝 VS Code (recommended) Latest stable Download

⚡ One-Line Install

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.txt

👣 Step by Step

macOS / 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.md
Windows (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.txt
Windows (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.txt

✅ Verify Installation

python -c "import jupyter, pytest, requests, pandas; print('All dependencies installed! ✅')"

📖 How to Use This Repo

For Learners

  1. 🔢 Go in order. Each module assumes all prior knowledge. Skipping ahead will leave you lost.
  2. 📖 Read the lesson first. Start with README.md — it contains the full explanation.
  3. 💻 Run the notebook. Open notebook.ipynb and execute every cell. Experiment by changing values.
  4. ✏️ Do the exercises. Open exercises.md and attempt every problem before looking at solutions.
  5. ✅ Check your work. Compare with solutions.md (or solutions.py for milestone modules).
  6. 📝 Take the quiz. quiz.md reinforces key concepts. Cover the answer key at the bottom.
  7. 🏗️ Build the projects. For milestone modules, the project/ folder contains a real-world build.
  8. 📈 Track your progress. Run python scripts/check_progress.py --completed 0 1 2 ... to see your completion status.

For Instructors

  • 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.py to verify all notebooks execute correctly

💡 Tips

  • 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

🛠️ Scripts & Tooling

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 10

🔄 CI/CD

This 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

📁 Project Structure

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/

🤝 Contributing

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

📄 License

MIT — see LICENSE. Free to use, modify, and distribute for teaching, learning, or commercial purposes.


🐍 Stack.PythonYour zero-to-hero journey into Python.
Built with ❤️ for learners everywhere.

About

ꜱᴛᴀᴄᴋ.ᴘʏᴛʜᴏɴ: ᴀ ꜰʀᴇᴇ, ᴏᴘᴇɴ-ꜱᴏᴜʀᴄᴇ, 0 → 100 ᴘʏᴛʜᴏɴ ᴄᴜʀʀɪᴄᴜʟᴜᴍ ꜰᴏʀ ᴀʙꜱᴏʟᴜᴛᴇ ʙᴇɢɪɴɴᴇʀꜱ. 101 ʟɪɴᴇᴀʀ ᴍᴏᴅᴜʟᴇꜱ, 11 ʜᴀɴᴅꜱ-ᴏɴ ᴍɪʟᴇꜱᴛᴏɴᴇ ᴘʀᴏᴊᴇᴄᴛꜱ, ᴢᴇʀᴏ ᴛᴜᴛᴏʀɪᴀʟ ʜᴇʟʟ. ᴄᴏᴠᴇʀꜱ ꜰᴜɴᴅᴀᴍᴇɴᴛᴀʟꜱ → ᴡᴇʙ ᴅᴇᴠ → ʙᴀᴄᴋᴇɴᴅ → ᴅᴀᴛᴀ → ᴀɪ/ᴍʟ. ᴇᴠᴇʀʏ ᴍᴏᴅᴜʟᴇ ɪɴᴄʟᴜᴅᴇꜱ ʟᴇꜱꜱᴏɴꜱ, ɴᴏᴛᴇʙᴏᴏᴋꜱ, ᴇxᴇʀᴄɪꜱᴇꜱ, ᴀɴᴅ Qᴜɪᴢᴢᴇꜱ. ʙᴜɪʟᴛ ᴛᴏ ᴛᴀᴋᴇ ʏᴏᴜ ꜰʀᴏᴍ ᴢᴇʀᴏ ᴛᴏ ꜱʜɪᴘᴘɪɴɢ.

Topics

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages