CS 251: Principals of Programming Languages
Professor: Alexa VanHattum
Lecture: Monday and Thursday, 2:20 AM - 3:35 PM
Where: Science Center L043
Office hours: If you cannot make the times below, I can meet by Calendly appointment.
This course introduces the principles underlying the design, semantics, and implementation of modern programming languages in major paradigms including function-oriented, imperative, and object-oriented. The course examines: language dimensions including syntax, naming, state, data, control, types, abstraction, modularity, and extensibility; issues in the runtime representation and implementation of programming languages; and the expression and management of parallelism and concurrency. Students explore course topics via programming exercises in several languages, including the development of programming language interpreters.
Attribution & Acknowledgments
This course draws on course material from previous iterations by Carolyn Anderson, Lyn Turbak, and Ben Wood, as well as materials from CSE 341 by Anjali Pal, Zachary Tatlock, and others at the University of Washington and CS 173 by Shriram Krishnamurthi and others at Brown University. This website uses Zola and some configuration from Adrian Sampson's Advanced Programming Languages at Cornell University.