Syllabus

Lectures in Fall 2021 are MW 9:45-11:15 in Skilling Auditorium. 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 tentative list of topics and dates is given below; the subjects of lectures might change as we go along. The dates of assignments and exams are very unlikely to change.

DateLectureTopicAssignedDueReading
9/20 Monday 1 Course Overview
9/22 Wednesday 2 Combinator CalculusCan programming be liberated from the von Neumann style?
9/27 Monday 3 Practical Combinator Languages MapReduce
9/29 Wednesday 4 Lambda CalculusHW1
10/4 Monday 5 Typed Lambda Calculus
10/6 Wednesday 6 Polymorphic Types HW2HW1 A theory of type polymorphism in programming
10/11 Monday7 Continuations Continuation-passing, closure-passing style
10/13 Wednesday 8 Object CalculusHW3HW2 A Theory of Primitive Objects: Untyped and First-Order Systems
10/18 Monday9 Pi Calculus A calculus of mobile processes, I
10/20 Wednesday 10 Type StateHW3
10/25 Monday In-Class Midterm
10/27 Wednesday 11 StateHW4
11/1 Monday 12 Program Verification via Type Theory Formal Verification of a Realistic Compiler
seL4: Formal Verification of an OS Kernel
11/3 Wednesday 13 Gradual TypesHW5 HW4 Gradual Typing for Functional Languages
11/8 Monday14 Loop Invariants From invariant checking to invariant inference using randomized search
11/10 Wednesday 15 Set Constraints Project HW5
11/15 Monday16Monads
11/17 Wednesday 17 Program Synthesis
11/22 Monday Thanksgiving Break
11/24 Wednesday Thanksgiving Break
11/29 Monday18 Parallelism
12/1 Wednesday 19 Clean-Up and Wrap-Up Project
12/8 WednesdayFinal Exam 3:30pm-6:30pm

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.