This course will introduce fundamental concepts and paradigms underlying the design of modern multi-paradigm programming languages. For concreteness, we study the details of an object-oriented language (e.g. Java), and a functional language (e.g., scheme). The former is an exemplar of a language for programming-in-the-large, while the latter is an exemplar of programming-in-the-small. The overall goal is to enable comparison and evaluation of existing languages. 1he programming assignments will be coded in Java and in Scheme.
College of Engineering and Computer Science