Programming Languages


This is the homepage for Programming Languages (CS73) at Swarthmore College in the Fall 2021 semester. This site provides information regarding the course, including the lecture schedule, homework assignments, and syllabus.


This course provides a foundation in the principles of programming languages (as opposed to a study of existing languages). This foundation includes a study of program semantics and type systems and is formalized in logic and algebra. The course explores a number of general language features (including higher-order functions, objects, and concurrency), formally defines their behavior, and studies how they influence each other.

This course presumes that the student has taken CS35 (Data Structures and Algorithms). Comfort with data structures and logical thinking (developed through e.g. algorithm design or proof-writing experience) are necessary, but no specific, formal mathematical background is required. Programming work for this course will use the OCaml language, which will be introduced in the early part of the class.

Getting Started

This site should contain all of the information you need to prepare for the course.