CSCC24 2025 Summer

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

Course information: link. (Marking scheme, course policy.)

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

Required reading is listed in the lecture table below.

Reference reading: There are user manuals, library docs, and reference manuals for the compilers and languages we use. You won't be reading them from cover to cover, but you can look up particular items when necessary. Please find the links in the software page.

Software: Please visit the CSCC24 software page.

Labs, Assignments, Term Test, Final Exam

lab l07 l06 l05 l04 l03 l02
due Jun 27 Jun 13 Jun 6 May 30 May 23 May 16

Item Due date & notes
Assignment 1 June 10 11:59 PM
Test June 28 9AM, IA 2021, one aid sheet
Scope: Weeks 1–6, minus Curry
Assignment 2 July 3 11:59 PM

Lectures, Reading

Date Lecture Code Reading
May 8 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 15 Haskell types part 1 code Reading Simple Haskell
Haskell Wikibook: Haskell Basics, Elementary Haskell, Intermediate Haskell (minus Functor), Monoids, Foldable
C9 Lectures: Functional Programming Fundamentals (Youtube videos) chapters 1–7,10

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 22 Lazy evaluation code
May 29 Haskell types part 2 code
Jun 5 Folds code
Jun 12 Partial-order theory of recursion
Curry
code Curry Tutorial sections 1–4
Jun 26? Syntax Wikipedia article: context-free grammar
Parsing definitions
examples
Jul 3? Parsing
Jul 10? Type inference
Jul 17? Type inference
Parametricity
Exercises
Jul 24? Parametricity
Semantics I
code
Jul 31? Semantics II code