CSC324, Fall 2017

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

Piazza.

Office hours: Thursdays 1:10–2:00, and 3:10–4:00.

Calendar

Week NotesMondayTuesdayWednesdayThursday Friday
Sep 4Sep 5Sep 6 Sep 7

Lecture : 6–8PM

Sep 8
Sep 11 Sep 12 Sep 13 Sep 14

Lecture : 6–8PM

Sep 15
Practice:
  1. mapping and applying
  2. nested list recursion

Exercise 1.

Sep 18
  • Lab. Rooms:
    • A–J : BA 3175
    • K–Q : BA 3185
    • R–Z : BA 3195
Sep 19 Sep 20 Sep 21

Lab + Lecture

Sep 22
Practice:
  1. trace a recursion
  2. design and implement a recursion

Exercise 2.

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
  • Test 1. Rooms:
    • A–D : BA 2195
    • E–S : GB 244
    • T–Z : LM 157
Oct 3 Oct 4

Lecture: Lambda Calculus Booleans and Currying, and Syntactic Abstraction.

Oct 5
  • Test 1, 6:10–7PM. Rooms:
    • A–L : BA 1190
    • M–Z : BA 1200

Lecture, 7:10–9PM.

Oct 6

Lecture: Lambda Calculus Naturals, Iteration, and Pairs.

Exercise 3.

Oct 9

Thanksgiving

Oct 10 Oct 11

Lecture: Lambda Calculus Let.

Oct 12

Lecture : 6–8PM

Oct 13

Lecture: Lambda Calculus Fibonacci

Exercise 4.

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 Class-like function, and a simple Class operation.

Oct 19

Lab + Lecture

Oct 20

Lecture: a more general Class operation, and Inner Classes.

Exercise 5, Part 1 and Part 2

Oct 23 Oct 24 Oct 25

Lecture: Control Flow A and B.

Oct 26

Lab + Lecture

Oct 27

Tracing Review

Oct 30

Test 2

Oct 31 Nov 1

Lecture: Control Flow C and D.

Nov 2

Test 2 + Lecture

Nov 3

Lecture: Backtracking Search Library and Examples.

Reading Week

Nov 6

Test 2 L0101 and L5101 solutions.

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

Exercise 7.

Nov 27

Lab part A, and B.

Nov 28 Nov 29

Lecture: Subtyping.

Nov 30

Lab + Lecture

Dec 1

Lecture: Type checking as (literal!) symbolic execution.

Assignment 3.

Dec 4

No lab/lecture

Dec 5 Dec 6

No lab/lecture

Dec 7

Make-up Monday : unused

Dec 8

No classes