This course is an introduction to the theory, design, and implementation of programming languages. Topics covered in this course include formal semantics of programming languages (operational, axiomatic, denotational, and translational), type systems, higher-order functions and lambda calculus, lazy evaluations, continuations, dynamic types, monads, objects, modules, concurrency, and communication. The recorded lectures are from the School of Engineering and Applied Sciences course Computer Science 152.
Prerequisites: CSCI E-51; CSCI E-121 is recommended. Students must have good programming skills, be comfortable with recursion, basic mathematical ideas, and notations, including sets, relations, functions, and mathematical induction. (4 credits)
Register to leave a review