Advanced Programming Language Principles
Language design and paradigms, including concepts underlying functional, logic, object-oriented and parallel paradigms. Theoretical foundations, including lambda calculus, denotational and axiomatic semantics. Proofs of program correctness. Programming projects emphasizing different aspects of language design. Prerequisite: CS 152 or instructor consent.
Normal Grade Rules