• CS41 happy code

    the python programming language

    • Overview
    • Lecture
    • Labs
    • Assignments
    • Resources
    • Course Info

    News Feed

    Schedule

    Course Content
    Topic Tuesday Thursday
    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!

    Topic Slides Video
    Labs!

    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?

    Week Topic Handout Solutions
    Assignments

    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
    Handouts

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

    # Handout
    Readings

    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

    Course Info       Syllabus       Piazza

    Basic Info

    application
    apply here
    date / time
    tuesday + thursday 4:30 to 5:50
    location
    380-380d
    instructor
    sam (sredmond@stanford.edu)
    course staff
    ...
    prereqs
    CS106B/X or equivalent
    enrollment codes
    here

    Office Hours

    sam's
    by appointment
  • CS41 happy code

    the python programming language

    learn more apply now