COS 510: Programming Languages
This advanced course is for graduate students and advanced undergraduates
with a keen interest in programming language semantics and applications such as
security. The only requirement for the course is a considerable degree of mathematical
maturity including, for instance, familiarity with proof techniques such as
induction.
Topics include: Theory and design of programming languages. How languages support abstraction, modularity, concurrency through functional programming, object-oriented programming, and other mechanisms. Operational semantics of programming languages; type systems, polymorphism, and
subtyping.