CSC324H Programming Languages

Fall 2009 -- Information

Homepage

Course Policies

Grading scheme

Lecture notes

Tutorial notes

Fun Reading (Opt.)

Grading scheme

There will be five assignments (6%+8%*4), two term tests (10% each), and a final examination (42%). Notice that if you receive below 33.33% (after all adjustments) on a final exam, you will automatically fail the course, regardless of your performance during the term. Please check the course website for the exact assignment due dates and quiz dates.

[Home|Back to the index]

Lecture Notes

  1. Week 1 (Sept. 10) Lecture 1 (Introduction), read Mitchell, Chapter 1,2, 4.4
  2. Week 2 (Sept. 17) Lecture 2 (Formal Language Specification), read Mitchell, Chapter 4.1
  3. Week 3 (Sept. 24) Lecture 3 (Scheme), read Mitchell, Chapter 3 and Dybvig, Chapter 2
  4. Week 4 (Oct. 1)Lecture 4 (pre) (Note that this is a version with some places empty and need you to fill in during classes, a complete version will be available after the class. This is a new attempt to try to make you more involved in the class.)
              Lecture 4 (Scheme, complete) and the Scheme examples we gave in class.
  5. Week 5 (Oct. 8)Lecture 5 (Scheme, complete) and the Scheme examples we gave in class. Dybvig, Chapter 3.2, 4, 5.1-5.4, 6
  6. Week 6 (Oct. 15)Lecture 6 (Formal proofs and lambda calculus, complete), read Mitchell, Chapter 4.2.
              Something fun (optional): Lambda calculus as a game.
              Supplementary materials for lecture 6:
              (1) some Scheme examples we gave in class: simple input and output, simple graphics, and abnormal objects -- image.
              (2) a different order of reduction for the example on Page 30 in the slides (confluence).
  7. Week 7 (Oct. 22)Lecture 7 (Scheme macros, complete) and the Scheme examples we gave in class. Please read Dybvig Chapter 8.1 and 8.2 (8.3 and 8.4 optional)
  8. Week 8 (Oct. 29) Lecture 8 (Prolog I, pre-class), and Lecture 8 (complete), Please also read Mitchell Chapter 15.1, 15.2, 15.3, 15.4 (excluding lists).
  9. Week 9 (Nov. 5) Lecture 9 (Prolog II, 4 slides per page) and Lecture 9 (Prolog II, 2 slides per page).
  10. Week 10 (Nov. 12) Break
  11. Week 11 (Nov. 19) Lecture 10 (Prolog III-- not, cut,I/O, 4 slides per page) and Lecture 10 (Prolog III, 2 slides per page). Please also read Mitchell Chapter 15.
  12. Week 12 (Nov. 26) Lecture 11 (Programming design, 4 slides per page) and read Sebesta, Chapter 5, Chapter 9.1-9.6 (copies of the reading will be distributed in class or pick up later from the instructor's office).
  13. Week 13 (Dec. 3) Lecture 12 (Progrmming design, 4 slides per page) and Lecture 12 (pre-class, 2 slides per page).

[Home|Back to the index]

Tutorial Notes

  1. Week 2 (Sept. 17) Tutorial 1
  2. Week 3 (Sept. 24) Tutorial 2
  3. Week 4 (Oct. 1) Tutorial 3
  4. Week 5 (Oct. 8) Term test 1
  5. Week 6 (Oct. 15) Tutorial 4
  6. Week 7 (Oct. 22) Tutorial 5
  7. Week 8 (Oct. 29) Tutorial 6
  8. Week 9 (Nov. 5) Term test 2
  9. Week 10 (Nov. 12) Break.
  10. Week 11 (Nov. 19) Tutorial 7
  11. Week 12 (Nov. 26) Tutorial 8
  12. Week 13 (Dec. 3) Example in Tutorial 9, trees for example 1 and 2, tree for example 3 and tree for example 4 and and an old exam question example

[Home|Back to the index]

Fun Reading (Optional)

A tutorial on the universality and expressiveness of fold by Graham Hutton.
Lambda calculus as a game
Lisp Retrospective (essay) by Peter Norvig
Tutorial on Good Lisp Programming by Peter Norvig
Lisp as an Alternative to Java by Peter Norvig
JScheme: Scheme in Java (free software) by Peter Norvig
Why Functional Programming Matters by John Hughes
C++? A Critique of C++ by Ian Joyner
The Case Against C by P.J. Moylan
A Comparative Overview of C#
The Essence of Algol by John C. Reynolds
A Critique of Java by Harold Thimbleby
The Development of the C Language by Dennis Ritchie
Why Pascal is Not My Favorite Programming Language? by Brian Kernighan
Can Programming Be Liberated from the von Neumann Style? by John Backus
Teaching the Fatal Disease by Richard C. Holt

[Home|Back to the index]

Course Policies

Email Policy:

The email subject should start with “[CSC324]”. Questions regarding the course materials, assignments, tests, etc. should be posed on the bulletin board. Questions will generally be answered within one business day. Questions about assignments should be formulated in a way without revealing your solutions. Questions and concerns regarding your personal matters should be directed to the instructor.

Silent policy:

A silent policy takes effect 24 hours before a lab is due. This means that no question about the lab will be answered whether it is asked on the bulletin board, by email, or in person.

Re-mark request:

Fill in a remark request form. Hand in the form and the lab/test to the TA who marked the lab/test or to the instructor (at lecture time or scheduled office hour), who will forward it to a TA. You may not submit a remarking request later than two weeks from the date on which the assignments were returned. It's your responsibility to pick up your work as soon as possible. Mark can decrease if the TA finds something that was incorrectly awarded too high a mark. If you are still not satisfied after getting back your remarked assignment (or after having a meeting with the marker), contact your instructor to discuss your situation.

Lateness, illness, emergencies:

We will be using a system of grace days for late assignments. In the beginning of the term you have 3 grace days. An assignment submitted within 24 hours after its deadline uses up one grace day. No late assignments will be accepted after both grace days are used, unless because of special situtaions (please check out the policies below). In addition, according to the UofT policy, no assignments can be accepted after the last day of classes. In case of illness or other exceptional circumstances, proper documentation (e.g. a medical certificate in case of illness) must be provided. Note that in case of illness a simple note from your family doctor is not sufficient: your doctor must complete the University of Toronto medical certificate. In this case a missed homework or a missed test may be canceled at the discretion of the instructor; marks for a missed homework/quiz will be distributed evenly over the other marked homeworks/tests. If you find yourself in other emergency situations, contact your instructor as soon as possible. You may still be required to hand in your assignments, but no penalty will be applied with the instructor's approval.

Additional information: For H1N1 case, university provides new policies and Official "Absence Registry" form is also accepted.
"marks for a missed homework/quiz will be distributed evenly over the other marked homeworks/tests" means that a missed homework will be distributed evenly over the other marked homeworks and a missed quiz will be distributed evenly over the other marked tests. For example, if you miss term test 1, then term test 2 will worth 15% and final will worth 47%.

Academic offenses:

All assignments should be done individually. You may discuss ideas and approaches to solving problems posed on assignments with other students. However, you are not permitted to take any notes during these discussions, nor are you permitted to consult other students' solutions. Searching for a solution on the Internet is a violation of this policy. Sharing work with other students is a violation of this policy. 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 a lab or a test to suspension from the university. Please read the document on Plagiarism and how to avoid it. If you are uncertain about what constitutes plagiarism, talk to your instructor, or get help from the Undergraduate Office. There are serious consequences to plagiarism. See the document for an explanation of the process for dealing with an offense.

[Home|Back to the index]

Yilan Gu ©2009, University of Toronto