CS50's Introduction to Programming with Python
A comprehensive introduction to Python programming, covering functions, variables, control flow, exceptions, libraries, unit testing, file I/O, and object-oriented programming.
Beginner-friendly Python instruction covering programming fundamentals, data structures, files, web data, and databases.
Created by Dr. Charles Severance (Dr. Chuck), Python for Everybody (PY4E) is an approachable, gently paced alternative or companion to CS50P. It emphasizes core data structures—strings, lists, dictionaries, and tuples—alongside practical data parsing, file processing, and structured storage.
Course status is tracked independently from roadmap topic checkboxes so you can mark external courses without altering your topic mastery percentage.
Phase 0 Additional Learning for Modules 0.1 & 0.2
All video lessons, interactive textbook chapters, slides, and sample code are freely available on py4e.com under Creative Commons licensing.
Status: Verified (2026-11-09)
Review these foundations before starting so you get the most out of this material:
In Phase 0: Programming Foundations
Use Lessons 1–11 if you want extra practice with Python strings, dictionaries, tuples, and file parsing at a gentler pace.
Core syntax, data structures, object-oriented abstractions, functional generators, and testing discipline in modern Python.
How Python represents objects in memory, reference semantics, mutability pitfalls, and algorithmic complexity.
A comprehensive introduction to Python programming, covering functions, variables, control flow, exceptions, libraries, unit testing, file I/O, and object-oriented programming.
Learn numerical arrays, broadcasting, vectorized computation, matrix operations, and scientific Python fundamentals.
Learn to load, inspect, filter, clean, and manipulate structured datasets.