Introduction to programming languages and paradigms, the components that comprise them, and the principles of language design, all through the analysis and comparison of a variety of languages (e.g., Pascal, Ada, C++, PROLOG, ML). Will involve programming in most languages studied.
This course is intended to broaden students' experience beyond traditional
imperative programming and provide a framework for understanding what makes a programming language useful. The students learn about the basic components of programming languages and how they have evolved over time. In practice, this material will help students pick the right language for the problem, or, if a particular language must be used, adopting an appropriate programming paradigm within the language.
Programming assignments that expose the importance and synergy of key features and convey the essential qualities of programming paradigms studied.
CSE 12, CSE 100 or Math 176, CSE 105 or Math 166. Please see Prerequisites Page.
Normally, two sections per year. Fall and Winter.
Formerly CSE 173