Computer Programming I (Python)
An Introductory Python Course for Math Students
Welcome to Computer Programming I (Python). This site brings together the lecture notes, computational labs, and supporting materials for the course.
Note
Quick links:
- Use the navigation bar at the left to explore modules and lessons.
- Syllabus / program overview
Course at a Glance
- Format: 4 comprehensive modules covering fundamentals to advanced topics
- Tools: Python, NumPy, Jupyter, VS Code
- Main goal: Learn programming through practical application and problem-solving
Learning Approach
- Start from the basics and progressively build complexity
- Move from theory to practice through interactive code examples
- Compare different approaches to solving the same problem
- Apply concepts through assignments that extend lecture examples into independent investigations
Course Map
What You Will Build
Across the course you will implement and experiment with:
- Python fundamentals: variables, control flow, functions, recursion, and scope
- Data structures: lists, tuples, sets, dictionaries, and iteration patterns
- Practical algorithms: recommendation systems, traveling salesman, Parrondo’s paradox, Sudoku solver
- Numerical computing: NumPy arrays, vectorization, linear algebra, statistics
- Real-world applications: image processing, MNIST digit recognition, cryptography (RSA)
- Professional tools: IDEs, debugging, code organization, and best practices
How to Use the Material
- Read each module overview first so the learning goals and structure are clear
- Work through the lessons in order before attempting assignments
- Run every code example yourself - don’t just read them
- Complete all exercises before moving to the next topic
- Return to earlier modules when a later topic builds on previous concepts
- Use review sessions to consolidate your understanding
Where to Go Next
- Start with Module 1: Python Fundamentals
- Review the full schedule in the Syllabus