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: )