General Info

CPSC 449: Principles of Programming Languages - General Information


Jörg Denzinger
Email: Phone: (403) 220-5574
Office: ICT 752 Office hours: TuTh 14:00 - 15:00 or by appointment
Lectures: L01: MoWeFr 11:00 - 11:50 in ENE 239


January 19, 2018:     Some additional information about the assignments:
Your systems should read their input from file and also write to a file. So, if your system is called mysystem, the input file is myinput and the file for the output is myoutput, the command for running your system should be:

       mysystem myinput myoutput

Your system should also be able to handle any additional blanks at the end of a line in the input file and also any additional empty lines between lines.
Finally, here is a minimalistic example of an input file.
January 17, 2018:     Due to several requests, here is the contact information for the TAs:
Tutorial 1: Eric Eidelberg (
Tutorial 2: Daniel Satanove (
Tutorials 3 and 4: Si Zhang (
November 3, 2017:     All links should work now.
March 6, 2017:     Course web site started. Only this page is available.

Description of the course

According to Calendar:
Examination of the basic principles of the major programming language paradigms. Focus on declarative paradigms such as functional and logic programming. Data types, control expressions, loops, types of references, lazy evaluation, different interpretation principles, information hiding.

(CPSC 319 or CPSC 331) and (PHIL 279 or PHIL 377)


The labs will be aimed at deepening your understanding of the concepts presented in the lectures and in answering questions that you did not immediately have while the material was presented in the lectures.

The labs will start in the second week of the semester and participation in the first lab is required since you will form the teams that will do the assignments in this lab! This especially means that all members of a team have to be in the same lab (we allow students to change labs before the teams are formed).

to an explanation of the assessment of the students taking the course.

Last Change: 19/1/2018