FreeCampus Python FreeCampus Python FreeCampus Python
  • Home
  • Courses
    • All courses

    • Python Foundations
    • Intermediate Python
    • Advanced Python
    • Scientific Computing
    • Statistics
    • Data Science & Machine Learning
  • Pathways
  • FAQ

Python Foundations

  • Overview
  • Unit 0: Get Started
    • Overview
    • Meet Python Through a Tiny Program
    • Learn with Predictions and Evidence
    • Use AI While Keeping the Thinking Yours
    • Work Reliably in Colab and Jupyter
    • Build a Dependable Local Python Workspace
    • Unit Challenge
  • Unit 1: Learning to Read and Write Python Code
    • Overview
    • Values, Names, and Assignment
    • Expressions, Statements, and Execution Order
    • Python’s Words and Symbols
    • Indentation and Code Blocks
    • Writing Python Across Multiple Lines
    • Comments and Docstrings That Help
    • Reading and Fixing Syntax Errors
    • Unit Challenge
  • Unit 2: Numbers, Text, and Other Values
    • Overview
    • Values, Types, Conversion, and None
    • Integers and Everyday Arithmetic
    • Floating-Point Numbers and Precision
    • Money, Exact Ratios, and Complex Numbers
    • Strings and Unicode Text
    • Input, Output, and Clear Formatting
    • Booleans, Comparisons, and Truth
    • Dates, Times, and Durations
    • Unit Challenge
  • Unit 3: Organizing and Traversing Collections
    • Overview
    • Lists: Keeping Values in Order
    • Tuples and Unpacking Fixed Records
    • Dictionaries: Finding Values by Key
    • Sets: Uniqueness and Group Comparisons
    • Visiting Items in a Collection
    • Sorting Collections Without Losing Meaning
    • Building and Reading Nested Data
    • Unit Challenge
  • Unit 4: Making Decisions and Repeating Work
    • Overview
    • Choosing a Path with if, elif, and else
    • Combining Conditions Without Surprises
    • Turning Rules into Complete Decisions
    • Building Results with for Loops
    • Repeating Until Something Changes
    • Searching, Skipping, and Stopping Loops
    • Working Through Grids and Pairs
    • Building Collections with Comprehensions
    • Unit Challenge
  • Unit 5: Building Reusable Functions
    • Overview
    • Defining Functions and Returning Useful Results
    • Designing Clear Parameters and Calls
    • Breaking a Program into Small Functions
    • Following Names Through Function Calls
    • Passing Functions as Values
    • Solving Smaller Problems with Recursion
    • Producing Values One at a Time
    • Adding Behavior with Decorators
    • Unit Challenge
  • Unit 6: Sharing, Changing, and Copying Objects
    • Overview
    • When Names Share the Same Object
    • Changing Objects and Choosing Safe Keys
    • Copying Nested Data Without Surprises
    • Designing Functions That Control Mutation
    • Unit Challenge
  • Unit 7: Solving Problems with Algorithms
    • Overview
    • Turn a Vague Idea into Testable Examples
    • Turn a Plan into Working Python
    • Choose an Algorithm That Fits
    • Know It Works and Understand the Cost
    • Unit Challenge
  • Unit 8: Errors, Exceptions, and Debugging
    • Overview
    • Understand Failures and Read Tracebacks
    • Raise Useful Errors and Handle Expected Failures
    • Debug One Hypothesis at a Time
    • Pause, Inspect, and Shrink a Bug
    • Unit Challenge
  • Unit 9: Files, Paths, and External Data
    • Overview
    • Find, Read, and Write Files Reliably
    • Keep Text Intact Across Encodings and Newlines
    • Move Records Between CSV, JSON, YAML, and Python
    • Turn Messy Text into Trustworthy Records
    • Cross the Text–Binary Boundary Safely
    • Unit Challenge
  • Unit 10: Modules, Environments, and Python Projects
    • Overview
    • Find the Right Tool Without Memorizing Everything
    • Turn One Script into Reusable Modules
    • Design a Package People Can Rely On
    • Build a Project You Can Navigate and Share
    • Give Each Project a Clean Python Environment
    • Build and Verify an Installable Python Project
    • Unit Challenge
  • Unit 11: Object-Oriented Python and Dataclasses
    • Overview
    • Build Your First Useful Class
    • Keep Objects in Valid States
    • Use Dataclasses for Value-Like Objects
    • Choose Composition Before Inheritance
    • Model a Complete Road-Crossing Game
    • Unit Challenge
  • Unit 12: Command-Line Applications
    • Overview
    • Design a Friendly Command with argparse
    • Put Output, Errors, and Exit Status in the Right Place
    • Resolve Configuration Without Exposing Secrets
    • Write Useful Logs Without Polluting Output
    • Keep the Command Thin and the Core Reusable
    • Unit Challenge
  • Unit 13: Testing Python Programs
    • Overview
    • Write Tests That Protect Behavior
    • Run Pytest and Read the Failure
    • Turn Examples into Clear Parametrized Cases
    • Build an Isolated Test World with Fixtures
    • Control Dependencies Without Fragile Mocks
    • Test at the Smallest Boundary That Can Fail
    • Preserve Bugs and Explore General Rules
    • Unit Challenge
  • Unit 14: Code Quality and Maintainability
    • Overview
    • Write Python People Can Follow
    • Make Contracts Visible with Type Annotations
    • Read MyPy Errors and Close Type Gaps
    • Format and Lint a Project with Ruff
    • Catch Small Problems Before Commit
    • Repeat the Quality Gate in CI
    • Refactor in Small, Verified Steps
    • Unit Challenge
  • Unit 15: Documentation as Part of the Product
    • Overview
    • Design Documentation Around Reader Needs
    • Write Instructions People Can Follow
    • Document a Public Python API
    • Keep Small Examples Honest with Doctest
    • Review Documentation Like Code
    • Build a Documentation Site with Quarto
    • Publish Documentation and Keep It Trustworthy
    • Unit Challenge
FreeCampus Python

Python Foundations

Start with zero programming experience and finish able to build, test, explain, document, and maintain practical Python programs.
python-foundations beginner
Course progress 0%
  • Level: Beginner to project-ready
  • Estimated effort: 380–540 hours
  • Prerequisite: None
  • Status: Available; final project and certificate planned
TipStart here if programming is new to you

This course assumes no programming experience. Begin with the learning method, then progress through one connected sequence. Every published lesson and challenge belongs to that sequence.

0%course work recorded
0/97lessons
0/16unit challenges
113 course activities remaining Course in progress

Before you start

  • Designed for: learners with little or no programming experience.
  • You are ready when: you can use a browser and are willing to predict, run, explain, modify, quiz, and debug small examples. No mathematics prerequisite is assumed.
  • Practice setup: begin with generated Colab notebooks. Unit 0 compares notebook and local workflows before later units introduce full projects.
  • Assessment: lesson checkpoints diagnose understanding; each unit challenge asks you to integrate its ideas with assertions, hints, and debugging evidence.

What you will be able to do

  • read Python syntax and trace values, state, decisions, loops, calls, and object relationships;
  • choose representations for numbers, text, time, collections, files, and external records;
  • turn requirements into small algorithms, functions, modules, packages, and classes;
  • diagnose failures from tracebacks and controlled experiments;
  • build a reproducible Git-backed project with a CLI and layered tests;
  • improve behavior safely with typing, formatting, linting, quality gates, and refactoring; and
  • guide readers with verified README, task, explanation, API, executable-example, Quarto, and publishing documentation.

Learning sequence

Python Foundations curriculum version 21 contains 16 units and 97 cohesive lessons. Each unit begins with an Overview and ends with a challenge.

Unit Focus Outcome Apply it
0 Get Started Run and explain a small Python program, keep trustworthy evidence in a clean notebook, choose a suitable practice environment, diagnose common first-run problems, and use AI assistance without surrendering prediction or verification. Challenge
1 Learning to Read and Write Python Code Read a short program, trace how Python interprets it, format its structure clearly, document its decisions, and repair syntax errors systematically. Challenge
2 Numbers, Text, and Other Values Choose suitable Python values for counts, measurements, money, text, truth, missing information, and time; convert and format them deliberately; and explain important precision, parsing, and comparison boundaries. Challenge
3 Organizing and Traversing Collections Choose among lists, tuples, dictionaries, and sets from order, mutability, lookup, uniqueness, and data shape; traverse them safely; and sort or combine them without losing relationships. Challenge
4 Making Decisions and Repeating Work Turn written rules into complete, non-overlapping branches; use loops to transform, search, and traverse data; and explain how each loop progresses and stops. Challenge
5 Building Reusable Functions Design, call, compose, and trace reusable functions with clear parameters, returned results, documented contracts, and controlled side effects; pass behavior as data; and explain how recursive, lazy, closure-based, and decorated calls progress and finish. Challenge
6 Sharing, Changing, and Copying Objects Trace which names and containers share objects; distinguish equality, identity, rebinding, mutation, immutability, and hashability; choose shallow, selective, or deep copying from an explicit ownership contract; and design functions whose mutations or returned copies are deliberate and observable. Challenge
7 Solving Problems with Algorithms Turn an unclear task into explicit examples and rules; decompose it into checkable functions; select, trace, and adapt common algorithms; and defend correctness, boundary behavior, and practical time and memory costs. Challenge
8 Errors, Exceptions, and Debugging Classify syntax failures, runtime exceptions, and wrong results; read tracebacks across function calls; raise and handle only anticipated exceptions with useful context; and reproduce, inspect, isolate, repair, and verify a bug one evidence-backed hypothesis at a time. Challenge
9 Files, Paths, and External Data Locate files predictably, preserve text, translate external formats, validate records, and produce reproducible outputs with rejection evidence. Challenge
10 Modules, Environments, and Python Projects Discover reusable tools, design modules and package interfaces, version a src project, isolate dependencies, and prove a built wheel works outside its repository. Challenge
11 Object-Oriented Python and Dataclasses Choose between functions, collections, dataclasses, and stateful classes; preserve valid state; compose replaceable collaborators; and reserve inheritance for honest behavioral subtypes. Challenge
12 Command-Line Applications Design a discoverable command, keep data and diagnostics in their proper channels, resolve settings safely, and connect a thin CLI adapter to reusable Python that can be checked directly and as a real process. Challenge
13 Testing Python Programs Turn behavioral contracts into focused pytest suites, interpret failures, isolate state and dependencies, choose evidence-producing boundaries, preserve regressions, and use generated examples without confusing passing tests or coverage with proof. Challenge
14 Code Quality and Maintainability Make Python projects easier to read and safer to change with consistent code, useful types, automated local/CI checks, and small behavior-preserving refactors. Challenge
15 Documentation as Part of the Product Design, write, test, build, and publish documentation that guides real readers from first contact to successful use, explains a stable public Python API, and remains trustworthy as the code changes. Challenge

Assessment and progress

Treat each lesson as a lab: predict, run, explain, modify, quiz, and debug. A unit challenge then asks you to select and combine ideas rather than repeat a lesson example. Unit 0 concludes with a methodology and setup quiz. The other challenges are designed for 60–120 minutes and provide a public contract, progressive checks, three hint levels, and a debugging-evidence record.

The progress dashboard is private, self-reported browser storage. It does not submit work, grade artifacts, verify identity, or issue credentials.

ImportantFinal project and certificate are coming later

A Python Foundations final project and certificate are planned. Requirements, availability, and participation details will be announced soon.

Start learning

Begin with the learning method, then move through the units in order. Return to earlier evidence whenever a later task exposes a gap.

Start Unit 0 Review the full pathway

Back to top
Overview

FreeCampus Python — learn by building, explaining, and debugging.

Course content updated 26 August 2026 · Curriculum v21

  • Edit this page
  • Report an issue
  • GitHub