Welcome to our Fall 2017 offering of Principles of Programming Languages.
Contact
Instructor: Gary Baumgartner.
Email: gfb@cs.toronto.edu.
Office: BA 4232.
Marking Scheme
7 Exercises: 7 x 1.5% = 10.5%. Done individually.
2 Tests: 2 x 10% = 20%.
3 Assignments: 3 x 10% = 30%. You may work with one other student in the course.
Exam: 40%. You must receive at least 40% on the exam (after any adjustment) to pass the course.
Exercise and Assignment Due Dates
Exercises: Saturday at Noon at the end of the week.
You have four grace day tokens, to use on the exercises and/or assignments, but with at most two tokens used for any particular exercise or assignment.
Exercise and Assignment Submission
On MarkUs.
Lab
Labs are in BA3175/85/95: room assignments TBA.
The evening labs are 6–7PM.
Tests
The tests are in rooms TBA.
Evening tests are 6–7PM.
Discussion Board and Office Hours
Office hours: Thursdays 1:10–2:00, and 3:10–4:00.
Calendar
Week Notes  Monday  Tuesday  Wednesday  Thursday  Friday 
Sep 4  Sep 5  Sep 6  Sep 7 Lecture : 6–8PM 
Sep 8


Sep 11

Sep 12  Sep 13

Sep 14 Lecture : 6–8PM 
Sep 15


Practice:  Sep 18

Sep 19  Sep 20

Sep 21 Lab + Lecture 
Sep 22

Practice:  Sep 25  Sep 26  Sep 27 Lecture: Anonymous functions, Symbols, and Quotation. 
Sep 28 Lab + Lecture 
Sep 29 Lecture: HTML Tags, Quasiquotation and Pattern Matching. 
Oct 2

Oct 3  Oct 4 Lecture: Lambda Calculus Booleans and Currying, and Syntactic Abstraction. 
Oct 5
Lecture, 7:10–9PM. 
Oct 6  
Oct 9 Thanksgiving 
Oct 10  Oct 11 Lecture: Lambda Calculus Let. 
Oct 12 Lecture : 6–8PM 
Oct 13 Lecture: Lambda Calculus Fibonacci 

Assignment 1 parts 1 and 2, due Saturday October 28th at Noon. 
Oct 16

Oct 17  Oct 18 Lecture: Memory Model Library, Mutation and Scope, a Classlike function, and a simple Class operation. 
Oct 19 Lab + Lecture 
Oct 20 Lecture: a more general Class operation, and Inner Classes. 
Oct 23

Oct 24  Oct 25  Oct 26 Lab + Lecture 
Oct 27  
Oct 30 Test 2 
Oct 31  Nov 1  Nov 2 Test 2 + Lecture 
Nov 3  
Reading Week 
Nov 6  Nov 7  Nov 8  Nov 9  Nov 10 
Nov 13 Lab. 
Nov 14  Nov 15 Lecture: Simple Do notations for a State monad, and a Maybe monad. 
Nov 16 Lab + Lecture 
Nov 17 Lecture: Commentary on Stateless Programming. 

Assignment 2: Due Nov 29 at 6PM.
Exercise 6 : waived, everyone receives full marks. 
Nov 20 Lab. 
Nov 21  Nov 22 Lecture 
Nov 23 Lab + Lecture 
Nov 24 Lecture 
Nov 27  Nov 28  Nov 29 Lecture: Subtyping. 
Nov 30 Lab + Lecture 
Dec 1  
Dec 4 No lab/lecture 
Dec 5  Dec 6 No lab/lecture 
Dec 7 Makeup Monday : unused 
Dec 8 No classes 