CSCC24 2024 Summer

Instructor: Albert Lai, albertyc.lai@utoronto.ca

Course information: link to course information page. (Marking scheme, course policy, academic integrity policy and advice.)

Office hours:
Tuesday 14:00-15:30 extensible, CS Help Centre
There are extra office hours for assignments, midterm test, final exam.

More required websites to check:
Quercus: announcements, solutions, discussion forum.
MarkUs: submitting and returning assignments.
Crowdmark: returning tests.

Required reading is listed in the lecture table below.

Reference reading: These are manuals and rule books—you won't be reading them from cover to cover, but you can look them up for usage, details, rules, and resolving “arguments with friends”:

Software: Please visit the CSCC24 software page.

Labs, Assignments, Term Test, Final Exam

lab "12" "11" week 10 week 9 week 8 week 7 week 6 week 5 week 4 week 3 week 2
due Aug 7 Aug 2 Jul 19 Jul 12 Jul 5 Jun 28 Jun 14 Jun 7 May 31 May 24 May 17

Item Due date & notes
Assignment 4 August 7 11:59PM
Assignment 3 July 28 11:59PM
Assignment 2 July 9 11:59PM
Assignment 1 June 10 11:59PM
Midterm Test Monday June 24 5PM IC220
1 hour 30 minutes
1 aid sheet
Scope: Weeks 1-5 + Lab Week 6

Lectures, Reading

Date Lecture Code Reading
May 9 Overview Article Why Functional Programming Matters by John Hughes
or lecture Why Functional Programming Matters by John Hughes and Mary Sheeran
(They are not easy. It's OK to be a bit lost for now.)

For Week 2 Lab:
Reading Simple Haskell
Haskell Wikibook sections from Getting Set Up to Type Basics
Haskell basics code
May 16 Haskell types part 1 code Reading Simple Haskell
Haskell Wikibook
C9 Lectures: Functional Programming Fundamentals (Youtube videos)

In case you want more:
Happy Learn Haskell
Yet Another Haskell Tutorial
Learn You a Haskell for Great Good!
A Gentle Introduction to Haskell

Styte guide: Style guide

Exercises:
AFP Assignments
99 Haskell problems

May 24 Lazy evaluation code
May 30 Haskell types part 2 code
Jun 6 Folds
Partial-order theory of recursion
code
Jun 13 Syntax Wikipedia article: context-free grammar
Parsing definitions
examples
Jun 27 Parsing
Jul 4 Type inference
Jul 11 Type inference
Parametricity
Jul 25 Parametricity
Semantics I
code
Aug 1 Semantics II code