---
title: "PY101 · Python from scratch"
publisher: Maestro College (Maestro Open)
lessons: 36
source: https://open.maestrocollege.edu/python-from-scratch
full: https://open.maestrocollege.edu/python-from-scratch/llms-full.txt
---

# Python from scratch (PY101)

Your first steps as a programmer. Start by printing text, then work up to decisions, loops, functions, strings and lists. Built for people with no technical background.

Its goal is to provide students with a solid introduction to coding, with a focus on Python. The course is designed for learners with no prior technical background and equips them with the skills to write basic Python code. The learning journey is gradual, starting from the very basics such as printing text, working with variables, and understanding different data types. From there, it progresses to using conditional statements, loops, writing simple functions, and working with fundamental data structures like lists and dictionaries. The course follows a hands-on, practice-oriented approach to learning.

## Course objectives
- Programming fundamentals and how computers execute programs
- Python basics: variables, data types, and operators
- Functions: parameters, return values, and scope
- Program flow with conditionals and loops
- Working with strings and lists using built-in methods

## Course teaching approach
- Start from a real-world problem, then introduce the concept as the solution.
- Keep it true beginner level, hands-on, a little gamified. The learner should feel they are winning.
- Balance explanation, demonstration and practice. No copy-paste exercises: give small story-based tasks.
- End with one fun closed question about the topic.

## Lessons
### Unit 1: Writing your first program
- [Writing your first program](https://open.maestrocollege.edu/python-from-scratch/writing-your-first-program.md)
- [Unlocking print() power-ups](https://open.maestrocollege.edu/python-from-scratch/unlocking-print-power-ups.md)
- [Introduction to variables](https://open.maestrocollege.edu/python-from-scratch/introduction-to-variables.md)
- [Working with text](https://open.maestrocollege.edu/python-from-scratch/working-with-text.md)
- [Working with numbers](https://open.maestrocollege.edu/python-from-scratch/working-with-numbers.md)
- [Modeling real-world calculations](https://open.maestrocollege.edu/python-from-scratch/modeling-real-world-calculations.md)

### Unit 2: Core foundations
- [Division modes: / vs // with quotient and remainder](https://open.maestrocollege.edu/python-from-scratch/division-modes-vs-with-quotient-and-remainder.md)
- [Modulo in practice: parity, cycles, positions](https://open.maestrocollege.edu/python-from-scratch/modulo-in-practice-parity-cycles-positions.md)
- [Rounding, and money format](https://open.maestrocollege.edu/python-from-scratch/rounding-and-money-format.md)
- [Checking the facts](https://open.maestrocollege.edu/python-from-scratch/checking-the-facts.md)
- [Talking to your program: getting input from users](https://open.maestrocollege.edu/python-from-scratch/talking-to-your-program-getting-input-from-users.md)
- [Python errors: meet the traceback](https://open.maestrocollege.edu/python-from-scratch/python-errors-meet-the-traceback.md)
- [Challenge: core foundations](https://open.maestrocollege.edu/python-from-scratch/challenge-core-foundations.md)
- [Functions i: why, define, and call](https://open.maestrocollege.edu/python-from-scratch/functions-i-why-define-and-call.md)
- [Functions ii: inside the function](https://open.maestrocollege.edu/python-from-scratch/functions-ii-inside-the-function.md)
- [Functions iii: return vs print and early return](https://open.maestrocollege.edu/python-from-scratch/functions-iii-return-vs-print-and-early-return.md)
- [Scope and local variables](https://open.maestrocollege.edu/python-from-scratch/scope-and-local-variables.md)

### Unit 3: Decisions and loops
- [If/else: syntax, indentation, mental model](https://open.maestrocollege.edu/python-from-scratch/if-else-syntax-indentation-mental-model.md)
- [Logical operators: and/or/not and short-circuiting](https://open.maestrocollege.edu/python-from-scratch/logical-operators-and-or-not-and-short-circuiting.md)
- [Booleans and comparisons: equality vs identity](https://open.maestrocollege.edu/python-from-scratch/booleans-and-comparisons-equality-vs-identity.md)
- [String membership with 'in' in conditions](https://open.maestrocollege.edu/python-from-scratch/string-membership-with-in-in-conditions.md)
- [Elif and refactoring nested decisions](https://open.maestrocollege.edu/python-from-scratch/elif-and-refactoring-nested-decisions.md)
- [Decision tables to branching logic](https://open.maestrocollege.edu/python-from-scratch/decision-tables-to-branching-logic.md)
- [For loops and range(): counting iterations](https://open.maestrocollege.edu/python-from-scratch/for-loops-and-range-counting-iterations.md)
- [Meet the while loop](https://open.maestrocollege.edu/python-from-scratch/meet-the-while-loop.md)
- [Loop control: break and continue](https://open.maestrocollege.edu/python-from-scratch/loop-control-break-and-continue.md)
- [Counters and totals](https://open.maestrocollege.edu/python-from-scratch/counters-and-totals.md)
- [Challenge: functions, decisions and loops](https://open.maestrocollege.edu/python-from-scratch/challenge-functions-decisions-and-loops.md)

### Unit 4: Introduction to Python summary
- [String skills upgrade i: indexing and slicing](https://open.maestrocollege.edu/python-from-scratch/string-skills-upgrade-i-indexing-and-slicing.md)
- [String skills upgrade ii: common methods](https://open.maestrocollege.edu/python-from-scratch/string-skills-upgrade-ii-common-methods.md)
- [Lists i: creating lists](https://open.maestrocollege.edu/python-from-scratch/lists-i-creating-lists.md)
- [Lists ii: indexing and slicing](https://open.maestrocollege.edu/python-from-scratch/lists-ii-indexing-and-slicing.md)
- [Lists iii: mastering list iteration](https://open.maestrocollege.edu/python-from-scratch/lists-iii-mastering-list-iteration.md)
- [Lists iv: common methods](https://open.maestrocollege.edu/python-from-scratch/lists-iv-common-methods.md)
- [Ordering lists: sorted() vs .sort()](https://open.maestrocollege.edu/python-from-scratch/ordering-lists-sorted-vs-sort.md)
- [Challenge: basic data structures](https://open.maestrocollege.edu/python-from-scratch/challenge-basic-data-structures.md)

## How to use this document
You are acting as a tutor for a learner on Maestro Open. Teach from this document, one small step at a time. Ask the learner to try things, wait for their answer, then give feedback. Keep it beginner-friendly. If the lesson involves code or spreadsheets and you cannot run them, ask the learner to try it on their own computer and paste the result back. Do not award grades, credit or certificates.
Start with lesson 1 unless the learner asks for a specific lesson. Keep track of which lesson you are on.

## When a lesson is done
Teach one lesson at a time. A lesson is complete only when the learner has shown they can do every outcome listed for it; check each with a small task or question.
When it is complete:
1. Say clearly: "Lesson N complete: <lesson title>." (use the lesson's number and title).
2. Give a two-line recap of what they learned.
3. Name the next lesson, say "Lesson N+1 of 36: <title>", and ask if they're ready to start it. Start it only when they say yes.
After the last lesson, congratulate them on finishing the course.
