Skip to main content Link Menu Expand (external link) Document Search Copy Copied

CS 360: Programming Languages

Spring 2023


  • Instructor: Phillip Kirlin
  • Office hours: Mon & Tue 3:30-5, Wed 10-11, Thu 11-12. Also available by appointment and over Slack.
  • Canvas page: Use for grades, online assignment submissions, and assignment solutions.
  • Syllabus and additional policies.
  • New midterm date: Tue, March 7, in class.
  • Final exam date: Mon, May 1, 5:30pm.



Thu, Jan 12
Introduction to class and to Racket
Slides Code
Tue, Jan 17
Functions, pairs, lists
Slides Code
Thu, Jan 19
Lists, box-and-pointer diagrams
Slides Code
Tue, Jan 24
Racket practice
Slides Starter code
Project Project 1 (due Thu, Feb 2)
Thu, Jan 26
Local bindings
Slides Code
Tue, Jan 31
Class canceled, ice
Thu, Feb 2
Class canceled, ice
Tue, Feb 7
Tail recursion
Slides Code
Thu, Feb 9
First class functions I
Slides Code
Tue, Feb 14
First class functions II
Slides Code
Thu, Feb 16
Project Project 2 (due Thu, Mar 1)
Tue, Feb 21
More practice and foldr
Thu, Feb 23
Lexical scope I
Slides Code
Tue, Feb 28
Lexical scope II
Slides Code
Thu, Mar 2
Function closure idioms
Slides Code
Tue, Mar 7
Midterm exam
Thu, Mar 9
Designing a stack ADT, mutation
Slides Code
Tue, Mar 14
Spring break
Thu, Mar 16
Spring break
Tue, Mar 21
Delayed evaluation, streams
Slides Code
Project Project 3 (due Thu, Mar 30)
Thu, Mar 23
Slides Code
Tue, Mar 28
More streams
Thu, Mar 30
Interpreters I
Slides Code
Project Project 4 (due Thu, Apr 13)
Tue, Apr 4
Interpreters II
Slides Code
Thu, Apr 6
Easter break
Tue, Apr 11
Finish interpreters, start threading
Thu, Apr 13
Project Project 5 (due Wed, May 3)
Tue, Apr 18
(See slides above)
Thu, Apr 20
(See slides above)
Tue, Apr 25
Event-driven programming: Click the rectangle lab
Slides Code
Thu, Apr 27
Victory lap