General Info

CPSC 449: Principles of Programming Languages - General Information


Jörg Denzinger
Email: Phone: (403) 220-5574
Office: ICT 752 Office hours: MoWe 12:00 - 13:00 or by appointment
Lectures: L01: MoWeFr 13:00 - 13:50 in SS 109


December 16, 2013     The results of the final exam can be found here.
November 16, 2013:     Here is some additional information for the PROLOG assignment:
gprolog, the PROLOG version you have to do your assignment in, allows for compilation and consequently for command-line arguments, so that we expect your systems to be compilable and then to be run as indicated in the news from September 30 below.
The file demonstrates how to read in the first command-line argument via the argument_value predicate and then outputs it twice (argument_value(2,Y) would bind the second command-line argument to Y).
You would use
   gplc -o readArg --no-top-level
to create an executable named readArg that you then can run under Unix as any other executable with appropriate command-line arguments.
September 30, 2013:     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.
September 3, 2013:     Course web site gone live.
July 15, 2013:     Course web site started.

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 (i.e. beginning January 19) 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: 16/12/2013