General Information


Course Description

A study of the organization, specification, and behavior of programming languages. The course will focus on five different programming language paradigms: imperative, object-oriented, functional, logic, and concurrent. Programming assignments using example languages from each of these paradigms will be required. Emphasis will be placed on learning Scheme, ML, and Prolog in a Unix environment. Other topics covered include language syntax, control structures, objects, and functions.

Course Objectives

  • Explain the different programming paradigms.
  • Evaluate programming problems and identify the programming paradigm and language most suited to the problem.
  • Understand the design space of programming languages.
  • Understand the programming techniques associated with language features.
  • Write programs in various languages including Scheme, ML, and Prolog.


  • Prof. Peter Yoon
  • Office: MECC 127
  • Phone: (860) 297-2461
  • Email:
  • Office Hours: TR 4:15 p.m. – 5:30 p.m. or by appointment


  • Days/Times: TR 10:50 a.m. – 12:05 p.m.
  • Location: MECC 136