Homepage for CSC 324, Fall 2014
Principles of Programming Languages
University of Toronto Mississauga
You should check the following announcements regularly.
ANNOUNCEMENTS:
Grades for Assignment 1 are now available on UTORSubmit.
In Assignment 3, the solutions for Question 1 parts (a) and (b) should be that they do NOT unify (since p and q are different predicates).
Solutions to Assignment 3 can be picked up outside my office door (DH3090).
A previous year's version of Assignment 3 was accidentally posted on this website for a short time. So, if the questions seemed to all change suddenly, that is why. The correct version is now there.
A typo in Question 8 of Assignment 3 has been corrected.
As described in class, the final exam will cover the entire course, but will emphasize material not on the midterm. You are responsible for all material covered in class, in tutorials and on the assignments.
A copy of last year's final exam is available below.
Question 8 on Assignment 3 has been clarified.
Questions 2 and 7(c) in Assignment 3 have been clarified.
The final exam is closed book, but you will be allowed a 1-page "CHEAT SHEET" (8.5x11in, two-sided). It should contain no more than 12,000 characters. If typed, it should be in 12pt font or larger.
The final exam will follow the "I don't know" policy. That is, if you do not know the answer to a question, and you write "I don't know", you will receive 20% of the marks of that question. If you just leave a question blank with no such statement, you will get 0 marks for that question.
Your terminal session must show both the input provided by you and the output printed by the Prolog interpreter.
Assignment 3 is now complete.
Questions 4d and 4e of Assignment 3 have been modified slightly (Nov 19).
The first 8 questions of Assignment 3 are now available.
The first 5 questions of Assignment 3 are now available.
The first 4 questions of Assignment 3 are now available.
The first 2 questions of Assignment 3 are now available, below. More questions will be added shortly.
Question 5 in Assignment 2 has been clarified.
Question 3 in Assignment 2 has been clarified.
All questions have now been added to Assignment 2. Note that some questions have been renumbered.
The first six questions of Assignment 2 are now available. More questions will be added shortly.
A fourth question has been added to Assignment 2. More questions will be added shortly.
The first three questions of Assignment 2 are now available, below. More questions will be added shortly.
On the midterm, you are responsible for all material covered in class, in tutorial and on Assignment1, up to (but not including) exception handling in ML.
The midterm test will start promptly at 3:10pm and will last 50 minutes. There will be a lecture in the second hour.
The midterm test is closed book, but as described in class, you will be allowed a 1-page "CHEAT SHEET" (8.5x11in, single-sided). It should contain no more than 6,000 characters. If typed, it should be in 12pt font or larger.
As described in class, the midterm test will follow the "I don't know" policy. That is, if you do not know the answer to a question, and you write "I don't know", you will receive 20% of the marks of that question. If you just leave a question blank with no such statement, you will get 0 marks for that question.
Reminder: The MIDTERM TEST will be in class on Oct 29 (see below).
Submission instructions for Assignment 1 are now available, below.
All the questions of Assignment 1 are now available. No more questions will be added.
An oversight in Question 8 of Assignment 1 has been corrected.
Tutorial slides are now available, below.
The first eight questions of Assignment 1 are now available. More questions will be added shortly.
The first five questions of Assignment 1 are now available, below. More questions will be posted shortly.
Prerequisites: CSC207H5/270H5, 236H5/238H5, 290H5
Course information sheet
Text: Sethi, Programming Languages: Concepts and
Constructs, Addison-Wesley. This course covers material in
chapters 1, 2, 4, 8, 9, 10, 11 and 15.
Instructor:
Anthony Bonner
email: my last name [at] cs [dot] toronto [dot] edu
phone: 905-828-3813 (UTM), 416-978-7441 (St George)
office: DH-3090 (UTM), BA 5230 (St George)
office hours: Weds 5-6pm
Classes: Wednesday 3-5pm, IB 345.
Tutorials: Friday 1-2pm and 2-3pm, DH 2020.
Tutorials may introduce new material not covered in the lectures or the text.
Teaching Assistant: Shems Saleh
Tutorial slides are available here.
Midterm test:
Weds Oct 29, 3:10-4:00pm, in class. The test will start at 3:10 sharp!
Closed book.
Here is a copy of an old midterm.
There will be a 1-hour lecture after the test.
You will be allowed a 1-page "cheat sheet" (8.5x11in, single-sided). It should contain no more than 6,000 characters. If typed, it should be in 12pt font or larger.
The midterm test will follow the "I don't know" policy: if you do not know the answer to a question, and you write "I don't know", you will receive 20% of the marks of that question. If you just leave a question blank with no such statement, you will get 0 marks for that question.
Final exam:
Closed book.
Here is a copy of an old exam.
The exam will cover the entire course, but will emphasize
material not on the midterm.
You are responsible for all material covered in class, in
tutorials and on the assignments.
You will be allowed a 1-page "cheat sheet" (8.5x11in, two-sided). It should contain no more than 12,000 characters. If typed, it should be in 12pt font or larger.
The exam will follow the "I don't know" policy: if you do not know the answer to a question, and you write "I don't know", you will receive 20% of the marks of that question. If you just leave a question blank with no such statement, you will get 0 marks for that question.
Assignments:
Assignments should be submitted electronically at the UTORSubmit website.
Assignment 1 -- No more questions will be added.
Submission instructions are available here.
Assignment 2 -- No more questions will be added.
Submission instructions are available here.
Assignment 3 -- No more questions will be added.
Submission instructions are available here.
Prolog lecture slides:
Introduction
Unification
Reasoning
Function terms
Quicksort
Queues
Additional lecture slides:
higher-order programming (Scheme)
software verification (Scheme)
context free grammars:
slides 1 and slides 2
Links to programming languages used in this course:
PLT Scheme (now called Racket)
Standard ML of New Jersey --
Downloads
SWI-Prolog
How to use the programming languages:
using PLT Scheme
using Racket
using ML
references in ML
using SWI-Prolog
Additional references:
Ullman, Elements of ML programming, Prentice-Hall. Recommended
Paulson, ML for the Working Programmer, Cambridge University Press.
Dybvig, The Scheme Programming Language, Prentice-Hall.
Friedman, Scheme and the Art of Programming, MIT Press and McGraw-Hill.
Clocksin and Mellish, Programming in Prolog, Springer Verlag.
Bratko, Prolog Programming for Artificial Intelligence, Addison-Wesley. Recommended
Plagiarism and Cheating:
The academic regulations of the University are outlined in the
Code of Behaviour on Academic Matters.
Advice on academic offences