CSC 324 -- Principles of Programming Languages
Section L5101
Fall 2007
Index of this document
Contact information
|
L5101 |
| Instructor: |
Gerald Penn |
| Lectures: |
R 7-9, BA 1170 |
| Office: |
PT 396B |
| Telephone: |
(416)978-7390 |
| Office Hours: |
M 6-7, W 5-6, or by appointment |
| Email: |
gpenn@cdf.utoronto.ca |
Email with MIME-encoded or HTML message bodies will not be read nor
responded to.
Back to the index
Tutorials
All tutorials are held R 6-7 in BA 1240 (room subject to change). There
will be no tutorial on 13 September.
A bulletin
board has also been created for the class, which will be monitored
by the TAs.
Back to the index
Course outline
- (2 weeks) Formal Specification of Programming Languages
- (4 weeks) Functional Programming: ML
- (3 weeks) Logic Programming: Prolog
- (3 weeks) Design Principles for Programming Languages
- (1 week) Review
As the textbook, we will be using Concepts
of Programming Languages, John
Mitchell, Cambridge, 2003.
Also recommended is Jeffrey
Ullman's Elements
of ML Programming: ML97 Edition, Prentice Hall, 1998.
We will be using SML of New Jersey,
and
SWI Prolog.
Back to the index
Calendar of important course-related events
| Date |
Event |
| Thu, 13 September |
First lecture |
| Thu, 20 September! |
First tutorial |
| Sun, 23 September |
Last day to add course |
| Thu, 4 October |
Assignment 1 due |
| Thu, 18 October |
Assignment 2 due |
| Thu, 25 October |
Midterm (8-9 pm) |
| Sun, 4 November |
Last day to drop course |
| Thu, 8 November |
Assignment 3 due |
| Thu, 6 December |
Assignment 4 due |
| Thu, 6 December |
Last lecture |
| 10-21 December |
Final Exam period |
Back to the index
Evaluation and related policies
There will be four homeworks, one midterm, and a final exam. The
relative
weights of these components towards the final mark are shown in the
table
below:
| Homework |
40% |
| Midterm |
15% |
| Final |
45% |
Important note on final: You must pass the final to
pass
the course. In other words, if you receive below a 50%
(after
curve) on the final exam, you automatically fail the course, regardless
of your performance on homeworks and the midterms.
Important note on homeworks: Homeworks will be distributed
electronically,
and collected either in tutorial or by appointment with the TA
for
the homework in question. They will also be returned in
tutorial.
Lateness Policy: No late homeworks will be accepted without a
signed medical certificate. With a signed medical certificate, a
late outstanding assignment may be ``cancelled'' at the instructor's
discretion,
in which case the marks for that piece of work will be distributed over
the other marked work for the course in weighted proportion to the
other
work's contribution to the course grade. A missed midterm will be
cancelled, but again only with a signed medical certificate.
Silent policy: The TA is not obliged to answer
questions
posed less than 24 hours before any assignment is due, and is not
obliged to answer questions already answered on the newsgroup at any
time.
Students are encouraged to use the bulletin board for the course to
pose
their questions.
Remarking: Homeworks or exams written in pencil or erasable
ink
will not be remarked. A request for remarking should be directed
to the tutor who marked the assignment. The tutor is only
required
to remark once - if you still believe your solution is correct, you may
appeal to the instructor.
Policy on collaboration: Collaboration on homeworks and
copying
from others' homeworks are strictly prohibited - you are permitted to
speak
only with your tutors and the instructor about the homework. If
challenged
by either a tutor or the instructor, you must be able to reproduce and
explain any solution you submit in an oral exam. Failure to
observe
this policy is an academic offense, carrying a penalty ranging from a
zero
on the homework to suspension from the university.
Back to the index
Announcements
In this space, you will find announcements related to the course.
Please
check this space at least weekly.
- 6 December: MATERIAL COVERED IN LECTURE 12: compilers, call stacks, activation trees, structured programming, modularity.
- 29 November: MATERIAL COVERED IN LECTURE 11: cut, shallow cut, levels of programming languages.
- 22 November: MATERIAL COVERED IN LECTURE 10: meta-logical
predicates, recursion and the order of clauses in Prolog, backtracking,
negation-as-failure, dynamic predicates.
- 15 November: MATERIAL COVERED IN LECTURE 9: unification,
anonymous variables, arithmetic predicates, non-monotonicity.
- 8 November: MATERIAL COVERED IN LECTURE 8: complex formulae in
Prolog, programs vs. queries, Horn clauses.
- 1 November: MATERIAL COVERED IN LECTURE 7: infix operator
declarations, introduction to Prolog.
- 18 October: MATERIAL COVERED IN LECTURE 6: auxiliary functions,
exceptions and exception handling, scope.
- 12 October: MATERIAL COVERED IN LECTURE 5:
patterns, benefits
of typing, record types, type synonyms, function polymorphism,
type
definitions, variant types.
- 4 October: MATERIAL COVERED IN LECTURE 4: printing as a
side
effect,
statement sequences, the map and app functions, local variables,
message
passing in functional programming languages, special kinds of recursive
programs.
- 27 September: MATERIAL COVERED IN LECTURE 3: predicates, values
and
evaluation,
pure functional programming, lambda terms, higher-order functions, side
effects and references.
- 20 September: MATERIAL COVERED IN LECTURE 2: context-free
languages,
typing
and basic data types of the ML programming language.
- 13 September: MATERIAL COVERED IN LECTURE 1: introduction,
properties
of good programming languages, context-free grammars, derivability.
- 6 September : Please note that the first tutorial is on
Thursday,
20 September (before the second lecture).
- 6 September: PREREQUISITES. To take this course you must (1)
have
successfully completed CSC 207/270 and CSC 236/238/240 or (2)
have
the permission of the instructor. You must also either
have
a CGPA of at least 3.0 or be enrolled in a CSC subject POSt. Note that
the University's automatic registration system does not check for
prerequisites:
even if you have registered into the course, you will not receive
credit
for it unless you had satisfied the prerequisite by the time you
registered. Transfer students and students awaiting rulings on
cases of
academic
misconduct should take special note of this.
Back to the index
Handouts
In this space you will find on-line postscript versions of course
handouts,
including homeworks and solutions (posted after the due date).
To view these handouts you will need access to a PDF viewer. If your
machine does not have the required software, you can allegedly
download
it for free.
Back to the index
Old exams
Some old midterm and final exams for this course (with no solutions).
Back to the index
Gerald Penn, 7
December,
2007
This web-page was adapted from the web-page for another course,
created by Vassos
Hadzilacos.