Subject: Computer Science
Credit units: 3
Offered: Either Term 1 or Term 2
Weekly hours: 3 Lecture hours and 1 Tutorial hours
College: Arts and Science
Department: Computer Science


A comparative study of programming languages and paradigms. Introduction to functional programming languages, such as Haskell; topics include: recursion, higher-order functions, polymorphic types, lazy evaluation. Introduction to logic programming languages, such as Prolog; topics include: unification, backtracking, resolution, non-determinism. An introduction to interpreters, parsers, program transformations, and semantic models.

Prerequisite(s): CMPT 214, 260, and 270.
Note: One of CMPT 215 or CME 331 recommended.

Upcoming class offerings

For full details about upcoming courses, refer to the class search tool or, if you are a current student, the registration channel in PAWS.


Examples of current or recently-offered class syllabus material can be found on the Open CourseWare website.

The syllabus is a public document that provides detail about a class, such as the schedule of activities, learning outcomes, and weighting of assignments and examinations. Please note that the examples provided in Open CourseWare do not represent a complete set of current or previous syllabus material. Rather, they are presented solely for the purpose of indicating what may be required for a given class.

For more information about syllabi, visit the Academic Courses Policy.