Materials
Here you will find a listing of lesson materials for the course such as slides, assignments, and similar.
1. Welcome Weeks
- Activity 01: README.md Due Date: Wednesday 3 Sept 2025 (by the end of class)
- GitHub Classroom Link (Used to setup your workspace and repository for your assignment submission.)
2. Getting Started
- Installing necessary software for the course. Python, Visual Studio Code and GitHub.
- Required Reading: Guttag Chapter 1
- Lab 01: Working with the UV package manager to run Python code.
3. Crash Course I: Python
- Required Reading: Guttag Chapter 2
- Literals, Variables, Conditionals, Strings, etc.
- Lab 02: Refactoring (Restructuring) a Rock, Paper, Scissors Python game.
- Activity 02: Building a morse code translator in Python and UV
4. Crash Course II: Python
- Literals, Variables, Conditionals, Strings, etc.
- Activity 03: Coding using literals, lists and conditionals
- Lab 03: Completing smaller Python programs.
- Guest Speaker: Form
5. Chapter 2: Lists and Dictionaries
- Return to Programming Challenges of Activity 03
- README
- Note: This time only: Changed Due Date. Now set to 22nd Sept 2025, 11:30pm
- Lists and Dictionaries at Work
- PlayGround demonstrations: Demonstration
- Finish slides from last week (Check the challenges)
- HTML Slides
- Lab04: For loops and While Loops
- Activity 04: Fixing code for finding approximations
6. Chapter 3: Exhaustive Enumeration and Approximation
- Some Approximation Techniques in Python
- A Study of the General nth Root Algorithm
- Lab05: Approximations By the Taylor Series
7. Chapter 5: STRUCTURED TYPES AND MUTABILITY
8. Chapter 4: A Return to Functional Programming
- Lambda and Higher Order Functions
- Classes and Decorators Functions
- Lab06: Midterm Practice Test
9. Chapter 11: Algorithm Complexity and Big-O
- Activity 05: Algorithm Performance Analysis through Doubling Experiments
- An informal Introduction to Complexity: About Big Big-O
- Activity 06: Algorithm Performance Analysis Through Doubling Experiments
10. Chapter 11 (continued): O(1), O(logN), O(2^N)
- O(1) (Constant Time)
- O(logN) (Logarithmic Time)
- O(2^n) (Exponential Time)
- Supplement Slides: Heap Sorting (Logarithmic Time)
- The Travelling Salesman
- Activity 07: Traveling Salesman Problem and Coding
11. Chapter 6. Modules
- Modules and Imports
- Lab07: Using Modules to Do Analysis
- Activity 08: Exploring Python Modules Through Mathematical Animation! 🎬✨
11. Chapter 6. Files
- Working With Files
- HTML Slides
- Lab08: Researching Ideas for Final Project
12 Final Project
- Final Project Writing your own code
- Activity 09: Pygame Ideas for Final Project 🎯