Python Engineer from Scratch
A practical Python course for learners aged 12+: from first programs to files, OOP, APIs, tests, and a final portfolio project.
Course Curriculum
What Programming Is and Why Learn Python
10 tasks
Installing Python and VS Code: preparing the workspace
10 tasks
First Program: `print("Hello, World!")`
8 tasks
Comments: explaining code to yourself
8 tasks
Variables: Storing Values
10 tasks
Numbers: int and float - whole and decimal values
10 tasks
Strings: str - working with text
13 tasks
Boolean Values: `True` and `False`
10 tasks
`input()`: The Program Listens to the User
10 tasks
Type Conversion: `int()`, `str()`, `float()`
10 tasks
Module Final Project: Personal Business Card
10 tasks
Comparison Operators: `==`, `!=`, `<`, `>`, `<=`, `>=`
10 tasks
`if`: First Branch
10 tasks
`else`: Alternative Path
10 tasks
`elif`: Multiple Conditions
10 tasks
Nested Conditions: A Check Inside a Check
10 tasks
The Logical Operator `and`
10 tasks
The Logical Operator `or`
10 tasks
The `not` Logical Operator
10 tasks
One-line `if`: a Short Form
10 tasks
Module Final Project: Smart Quiz
10 tasks
`while`: Repeat While a Condition Is True
10 tasks
Infinite Loops and `break`: When to Stop
10 tasks
`continue`: skip an iteration
10 tasks
`for`: Iterating Over a Sequence
8 tasks
`range()`: Generating Numbers
8 tasks
`range()` with a Step: `range(start, stop, step)`
9 tasks
Accumulator Pattern: total and count
8 tasks
Nested Loops: A Loop Inside a Loop
8 tasks
Loop `else`: when `break` did not happen
8 tasks
Module Final Project: Guess the Number
7 tasks
What Is a Function: Why Not Repeat Yourself
7 tasks
`def`: Declare Your Own Function
8 tasks
Parameters: Passing Data In
7 tasks
`return`: Return a Result
8 tasks
Multiple Parameters
8 tasks
Default Values: Default Parameters
8 tasks
Local Variables: Scope
7 tasks
A Function Calls a Function: Composite Programs
7 tasks
Recursion: A Function Calls Itself
8 tasks
Module Final Project: Utility Library
9 tasks
Strings: Indexes and Character Access
8 tasks
String Slices: Taking a Piece of Text
8 tasks
String Length: len()
8 tasks
Methods: upper(), lower(), capitalize()
8 tasks
Methods: strip(), lstrip(), rstrip()
9 tasks
Methods: `split()` and `join()`
8 tasks
Methods: `replace()` and `find()`
8 tasks
F-Strings: Text Formatting
8 tasks
`\n`, `\t`, and Multiline Strings
8 tasks
Module Final Project: Caesar Cipher
8 tasks
List: Create and Access by Index
8 tasks
List Methods: append() and insert()
8 tasks
List Methods: remove(), pop(), del
8 tasks
List Slices
8 tasks
Iterating Over a List: `for item in list`
6 tasks
Lists: `sorted()`, `min()`, `max()`, and `sum()`
9 tasks
Tuple: An Immutable List
8 tasks
Dictionary: Key -> Value
8 tasks
Dictionary: Add, Delete, and Change
8 tasks
Iterating Over a Dictionary: keys(), values(), items()
9 tasks
Sets: Unique Elements
8 tasks
Module Final Project: Contact Manager
8 tasks
Exceptions: What Happens When an Error Occurs
6 tasks
`try / except`: Catch an Error
7 tasks
Exception Types: ValueError and FileNotFoundError
8 tasks
`finally`: Code That Always Runs
7 tasks
Opening a File: open() and Modes r, w, a
7 tasks
Reading a File: `read()` and `readlines()`
6 tasks
Writing to a File: `write()` and `writelines()`
7 tasks
`with`: Safe File Handling
7 tasks
Module Final Project: Personal Diary
7 tasks
Object Thinking: What Classes and Objects Are
6 tasks
`class`: create your own data type
8 tasks
`__init__`: Class Constructor
7 tasks
Object Attributes: Storing State
8 tasks
Class Methods: Object Actions
9 tasks
`self`: a reference to the current object
9 tasks
Encapsulation: Hide Internal Data
7 tasks
Inheritance: Extend a Class
8 tasks
Method Overriding
8 tasks
`__str__`: Readable Object Output
8 tasks
Module Final Project: OOP - Your Choice
8 tasks