Syllabus

Lectures in Fall 2023 are Tue/Thu 10:30am-12:00pm in Gates B3. All lectures will be recorded and made available on the CS242 Canvas site. This public site will be used for this syllabus, lecture notes, policies, and handouts.

The final exam will be held on Thu 12/14 3:30pm-6:30pm in Gates B3 (the same room as the lectures). If you are unable to attend the exam, email us as soon as possible. We will hold an alternate exam in the preceding time slot.

The list of topics and dates is given below, along with the dates of assignments and exams.

Day Lecture Topic Assigned Due Reading
9/26 Tuesday 01 Course Overview
9/28 Thursday 02 Combinator Calculus Can Programming Be Liberated from the von Neumann Style?
10/3 Tuesday 03 Combinators II MapReduce
10/5 Thursday 04 Lambda Calculus HW1
10/10 Tuesday 05 Typed Lambda Calculus
10/12 Thursday 06 Polymorphic Types HW2 HW1 A Theory of Type Polymorphism in Programming
10/17 Tuesday 07 State
10/19 Thursday 08 Continuations HW3 HW2
10/24 Tuesday 09 Monads
10/26 Thursday 10 Objects HW4 HW3
10/31 Tuesday

In-Class Midterm [solution]
(previous exams: Fall 2021 [solution] , Fall 2022 [solution] )

11/3 Thursday 11 Rust
11/7 Tuesday Democracy Day
11/9 Thursday 12 Prolog HW5 HW4
11/14 Tuesday 13 Haskell
11/16 Thursday 14 Gradual Typing HW6 HW5
11/21 Tuesday Thanksgiving Break
11/23 Thursday Thanksgiving Break
11/28 Tuesday 15 Array Programming gameoflife.py
11/30 Thursday 16 TBD HW7 HW6 Formal Verification of a Realistic Compiler
seL4: Formal Verification of an OS Kernel
12/5 Tuesday 17 Program Verification via Type Theory
12/7 Thursday 18 The Lean Proof Assistant HW7
12/14 Thursday

Final Exam 3:30pm-6:30pm (in Gates B3) [solution]
(previous exams: Fall 2021 [solution] , Fall 2022 [solution] )

Additional Important Information

On-campus students and SCPD students who live within 50 miles will take exams on campus at the scheduled times. There will be no alternate exams.

Video cameras located in the back of the room will capture the instructor presentations in this course. For your convenience, you can access these recordings by logging into the course Canvas site. These recordings might be reused in other Stanford courses, viewed by other Stanford students, faculty, or staff, or used for other education and research purposes. Note that while the cameras are positioned with the intention of recording only the instructor, occasionally a part of your image or voice might be incidentally captured. If you have questions, please contact a member of the teaching team.

Stanford is committed to providing equal educational opportunities for disabled students. Disabled students are a valued and essential part of the Stanford community. We welcome you to our class. If you experience disability, please register with the Office of Accessible Education (OAE). Professional staff will evaluate your needs, support appropriate and reasonable accommodations, and prepare an Academic Accommodation Letter for faculty. To get started, or to re-initiate services, please visit oae.stanford.edu. If you already have an Academic Accommodation Letter, we invite you to share your letter with us. Academic Accommodation Letters should be shared during the first two weeks of class so we may partner with you and OAE to identify any barriers to access and inclusion that might be encountered in your experience of this course.