Fundamentals of Programming Languages
This course surveys concepts, constructs, and foundations of a variety of programming languages. Main topics are lambda-calculi, type systems, data and procedural abstraction, programming paradigms (object-oriented, functional, and logic), and formal semantics (denotational, operational and axiomatic). Languages of interest include C, C++, Java, Lisp, ML, Smalltalk, and Prolog. Programming projects are designed to deepen understanding of languages. Language-specific details are covered in the recitations which are closely coordinated with the lectures.
Ph.D.:
This course fulfills one Software and Information Systems Core Course requirement.
M.S.:
This course fulfills one Software and Information Systems Core Course requirement.
Graduate standing in Computer Science and Engineering or graduate standing with equivalent background, including working knowledge of a modern high-level language, data structures, recursive programming techniques, and discrete mathematics.