Project Showcase

News Feed


Course Content
Topic Monday Wednesday
Lecture Material

Lectures are generally once per week, and are intended to fill the 80-minute class period. Each lecture covers a particular aspect of the Python language or ecosystem. Lectures build on each other - that is, the material gets progressively more advanced throughout the quarter. Slides are heavily animated, so both the compressed and full versions of the slide decks are uploaded.

Unfortunately, CS41 is not offered through SCPD, so the video recordings are not professionally done, and may at times be low-quality or missing entirely. Our goal is that the videos are a helpful learning resource, and hopefully they improve the CS41 experience for you!

The video recordings are only viewable to those who have an SUNet ID ( email). Requests for access by external accounts will not be approved. We will make exceptions on a case-by-case basis, especially to people who are university-affiliated. To apply for an exception, email

Topic Slides Code Video

Labs in CS41 provide a hands-on opportunity to experiment with the Python concepts presented in lectures. Although students work on these labs during an 80-minute class period, it would take much longer to fully complete a lab. Each lab comes with a number of challenge problems that will take even the experiences programmer nontrivial time. Labs are collaborative and open-ended, frequently asking you to think about how or why Python makes the decisions it does.

Each problem is chosen to reinforce a particular concept, but you are free to skip around at will. You are not expected to submit your solutions to labs, although our reference solutions will be posted afterwards. Think of labs as a chance to solidify your working knowledge of Python - after all, what better way to learn Python than to practice it?

See Lab Assignments for your lab assignment!
Week Topic Part 1 Link Part 2 Link Solutions

Assignments in CS41 are a chance to show us what you've learned in the course! As a 2-unit CR/NC course, we don't want anyone to be unduly stressed about the assignments. Grades are given on the checkmark scale, and more importantly, submitted solutions will receive style feedback from the course staff. We think assignments are an opportunity to challenge yourself to really learn the material, so enjoy! We hope you have fun completing these assignments.

# Title Handout Starter Code Released Due

These handouts represent any miscellaneous information we need to communicate with you. Usually, these handouts contain logistical instructions, but anything goes!

# Handout

These optional reading materials are posted throughout the quarter to supplement the course material for those who are very interested in Python. You will not be held responsible for any information presented only through optional readings; however, the material is fascinating and worth looking at. Currently, it's just a list of articles I find interesting - there may be more structure in the future.

# Reading Credit
The fundamentals and contemporary usage of the Python programming language. Primary focus on developing best practices in writing Python and exploring the extensible and unique parts of Python that make it such a powerful language.

Essential Links

Mid-Quarter Evaluation       Course Info       Syllabus       Piazza

Basic Info

Date / Time
Monday + Wednesday 3:00pm to 4:20pm
Gates B12
Parth (
Michael (
Course Staff
Alexander Iyabor Jr
Andrew Huang
Antonio Ferris
Joy Hsu
Lemuel Cardenas-Arriaga
Nick Negrete
Sam Kwong
Theo Culhane
CS106B/X or equivalent
Spotify Playlist
🦄 CS 41 (contribute!)

Office Hours

Fridays, 3pm-4pm in Gates B02
Tuesdays, 9:30am-10:30am in Gates B02