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: 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

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
Partial-order theory of recursion
code
Jun 12? Curry 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