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