CSCI 334(S) Principles of Programming Languages (Q)
This course examines concepts and structures governing the design and implementation of modern programming languages. It presents an introduction to concepts of compilers and run-time representations of programming languages; features of programming languages supporting abstraction; and programming language paradigms including procedural programming, functional programming, object-oriented programming, polymorphism, and concurrency. Programs will be required in languages illustrating each of these paradigms, in particular ML and advanced object-oriented languages. Format: lecture. Evaluation will be based on weekly problem sets and programming assignments, a midterm examination and a final examination. Prerequisites: Computer Science 136. Enrollment limit: 50 (expected: 25).
Hour: TBA