Programming Languages

Download as PDF

Course Description

This course explores foundational models of computation, such as the lambda calculus and other small calculi,  and the incorporation of basic advances in PL theory into modern programming languages such as Haskell and Rust.  Topics include type systems (polymorphism, algebraic data types, static vs. dynamic), control flow (exceptions, continuations), concurrency/parallelism, metaprogramming, verification, and the semantic gap between computational models and modern hardware. The study of programming languages is equal parts systems and theory, looking at how a rigorous understanding of the semantics of computation enables formal reasoning about the behavior and properties of complex real-world systems.  Prerequisites: 103, 110.

Grading Basis

ROP - Letter or Credit/No Credit

Min

3

Max

4

Course Repeatable for Degree Credit?

No

Course Component

Lecture

Enrollment Optional?

No

Does this course satisfy the University Language Requirement?

No

Programs

CS242 is a completion requirement for:
  • (from the following course set: )
  • (from the following course set: )
  • (from the following course set: )