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!
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?
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.
These handouts represent any miscellaneous information we need to communicate with you. Usually, these handouts contain logistical instructions, but anything goes!
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.