Description
This course surveys the history of programming languages and programming paradigms, including procedural, object-oriented, functional, declarative non-algorithmic, and scripting languages. It covers virtual machines and intermediate languages, and compares interpreters and compilers. Also covered are the topics of binding, scope, type-checking, garbage collection and security. There will be frequent programming assignments in a variety of important computer languages exemplifying each language type. Prereq: CSC 311 or consent of instructor.