Course summary

CS 242 explores models of computation, both old, like functional programming with the lambda calculus (circa 1930), and new, like memory-safe systems programming with Rust (circa 2010). The study of programming languages is equal parts systems and theory, looking at how a rigorous understanding of the syntax, structure, and semantics of computation enables formal reasoning about the behavior and properties of complex real-world systems. In light of today’s Cambrian explosion of new programming languages, this course also seeks to provide a conceptual clarity on how to compare and contrast the multitude of programming languages, models, and paradigms in the modern programming landscape. See the schedule below for full topic list. Prerequisites: 103, 110.

Previous iterations of this course: Fall 2018, Fall 2017.

For more on this course’s design, read my SNAPL’19 paper:
“From Theory to Systems: A Grounded Approach to Programming Language Education”

Course info

Instructors

Will Crichton

Course assistants

Calendar

Schedule

Lectures Assignments Readings
Week 1: September 23
Lecture 1.1 (Mon):
Lecture 1.2 (Wed):

Assignment 1 out

Week 2: September 30
Lecture 2.1 (Mon):
Lecture 2.2 (Wed):

Assignment 1 due, Assignment 2 out

Week 3: October 7
Lecture 3.1 (Mon):
Lecture 3.2 (Wed):

Assignment 2 due, Assignment 3 out

Week 4: October 14
Lecture 4.1 (Mon):
Lecture 4.2 (Wed):

Assignment 3 due, Assignment 4 out

Week 5: October 21
Lecture 5.1 (Mon):
Lecture 5.2 (Wed):

Assignment 4 due, Assignment 5 out

Week 6: October 28
Lecture 6.1 (Mon):
Lecture 6.2 (Wed):

Assignment 5 due, Assignment 6 out

Week 7: November 4
Lecture 7.1 (Mon):
Lecture 7.2 (Wed):

Assignment 6 due, Assignment 7 out

Week 8: November 11
Lecture 8.1 (Mon):
Lecture 8.2 (Wed):

Assignment 7 due, Assignment 8 out

November 18
No class for Thanksgiving!
Week 9: November 25
Lecture 9.1 (Mon):
Lecture 9.2 (Wed):

Assignment 8 due, final released

Week 10: December 2
Lecture 10.1 (Mon):
Lecture 10.2 (Wed):
Week 11: December 9
Friday, December 13: Final due at 6:30pm