COMP 360: Programming Languages, Fall 2017




Date Topic Required Reading Notes Assignments Out Slides
8/24 Introduction code slides
8/29 Functions, pairs, lists code slides
8/31 Lists, box-and-pointer diagrams code slides
9/5 Recursive function practice code
partial solutions
Project 1, due on Moodle 9/13, 11:59pm slides
9/7 Local bindings, benefits of no mutation code slides
9/12 Tail recursion code slides
9/14 First class functions I code slides
9/19 First class functions II code slides
9/21 Practice Project 2, due on Moodle Wed 10/4, 11:59pm
9/26 Motivation and foldr motivation slides
foldr slides
9/28 Lexical scope and environment diagrams code slides
10/3 Lexical scope and environment diagrams II code slides
10/5 Lexical vs dynamic scope, currying code slides
10/10 Closure idioms: ADTs, introduce mutation code slides
10/12 Delayed evaluation and streams code Project 3, due on Moodle Mon 10/30, 11:59pm slides
10/17 Fall break
10/19 Review for midterm
10/24 Midterm
10/26 More streams & practice slides
10/31 Stream wrapup, intro to proj4 code Project 4, due on Moodle Tue 11/14, 11:59pm slides
11/2 Introduction to Java code slides
11/7 Java collections & practice handout, lab (see previous slides)
11/9 Java exceptions & threading code Project 5, due on Moodle Tue 11/21, 5:00pm slides
11/14 Java threading II code (see previous slides)
11/16 Late binding and dynamic dispatch code slides
11/21 Interpreters I code Project 6, due on Moodle Mon 12/4, 11:59pm slides
11/23 Thanksgiving break
11/28 Interpreters II start code end code (see previous slides)
11/30 Event-driven programming code Project 7, due on Moodle Wed 12/13, 5:00pm slides
12/5 Victory lab slides