Schedule

This schedule is tentative and likely to be revised.

Date Topic Slides Code Reading
Week 1 Lecture Videos
Wed 8/28 Introductions, Program Design lec01.pdf assert.ml  tickets.ml  
Chapter 1
Fri 8/30 Value-Oriented Programming lec02.pdf
Chapter 2
Week 2 Lecture Videos
Recitation Materials
Mon 9/2 No Class: Labor Day
Wed 9/4 Functions, Lists and Recursion lec03.pdf
Chapter 3
Fri 9/6 Lists, Tuples, Nested Patterns lec04.pdf patterns.ml  
Chapter 4
Week 3 Lecture Videos
Recitation Materials
Mon 9/9 Datatypes and Trees lec05.pdf tree.ml  treeExamples.ml  
Chapter 5
Chapter 6
Tue 9/10 HW01 (Finger Exercises) due
Wed 9/11 Trees and Binary Search lec06.pdf bst.ml  
Chapter 7
Fri 9/13 BST Insert & Delete lec07.pdf bst.ml  
Chapter 7
Chapter 8
Week 4 Lecture Videos
Recitation Materials
Mon 9/16 Generics and Higher-order Functions lec08.pdf
Chapter 8
Tue 9/17 HW02 (Computing Human Evolution) due
Wed 9/18 Higher-order Functions: Transform and Fold lec09.pdf hof.ml  
Chapter 9
Fri 9/20 Abstract Types: Sets lec10.pdf sets.ml  
Chapter 10
Week 5 Lecture Videos
Recitation Materials
Mon 9/23 Abstract Types II: Sets & Finite Maps / Typechecking lec11.pdf finiteMap.ml  
Chapter 10
Tue 9/24 HW03 (Abstraction and Modularity) due
Wed 9/25 Typechecking lec12.pdf
Fri 9/27 Midterm 1 Prior exams:
24fa:  blank  soln  
24sp:  blank  soln  
23fa:  blank  soln  
23sp:  blank  soln  
22fa:  blank  soln  
Week 6 Lecture Videos
Mon 9/30 Options / Records / Unit, Sequencing, Commands / Mutable State Aliasing lec13.pdf
Chapter 11
Chapter 12
Chapter 13
Chapter 14
Wed 10/2 Mutable Data Structures, Abstract Stack Machine / NO RECITATIONS THIS WEEK lec14.pdf
Chapter 14
Chapter 15
Fri 10/4 No Class: Fall Break
Week 7 Lecture Videos
Recitation Materials
Mon 10/7 ASM continued; Mutable Queues lec15.pdf
Chapter 16
Wed 10/9 Mutable Queues continued; Iteration and Tail Recursion lec16.pdf
Chapter 16
Fri 10/11 Iteration and Tail Recursion lec17.pdf
Chapter 16
Chapter 17
Week 8 Lecture Videos
Recitation Materials
Mon 10/14 Closures and Objects; GUI Design: Gctx and Widgets lec18.pdf gctx.ml  simpleEventLoop.ml  
Chapter 17
Chapter 18
Tue 10/15 HW04 (Mutable Queues) due
Wed 10/16 GUI Design: Widgets, Layout, and Events lec19.pdf simpleWidget.ml  simpleWidget.mli  hello.ml  fractalTree.ml  swdemo.ml  
Chapter 18
Fri 10/18 GUI Design: Events, Notifiers, and Controllers lec20.pdf notifierdemo.ml  onoff-start.ml  onoff.ml  
Chapter 18
Week 9 Lecture Videos
Recitation Materials
Mon 10/21 GUI Design: Events and Notifiers; Transition to Java lec21.pdf
Chapter 19
Chapter 20
Wed 10/23 Java Basics: Classes, Interfaces lec22.pdf
Chapter 19
Chapter 20
Thu 10/24 HW05 (GUI Library and Paint) due
Fri 10/25 Static Methods, Java Arrays lec23.pdf ArrayExamples.java  ArrayExamplesTest.java  
Chapter 21
Chapter 32
Week 10 Lecture Videos
Recitation Materials
Mon 10/28 Arrays Wrap-up / Debugger / Java ASM lec24.pdf ResArray.java  ResArrayTest.java  
Chapter 22
Chapter 23
Chapter 32
Wed 10/30 Java ASM, Dynamic Dispatch lec25.pdf Shapes.zip  
Chapter 22
Chapter 23
Thu 10/31 HW06 (Pennstagram) due
Fri 11/1 Java ASM, Dynamic Dispatch, Generic Types lec26.pdf
Chapter 23
Chapter 24
Chapter 25
Week 11 Lecture Videos
Recitation Materials
Mon 11/4 Generic Types and Collections lec27.pdf Point.java  TreeSetExample.java  Main.java  
Chapter 25
Wed 11/6 Overriding, Equality lec28.pdf
Chapter 26
Fri 11/8 Enums, Iteration lec29.pdf
Chapter 25
Week 12 Lecture Videos
Recitation Materials
Mon 11/11 Exceptions lec30.pdf ExceptionExample.java  C.java  
Chapter 27
Tue 11/12 HW07 (PennPals) due
Wed 11/13 Java I/O lec31.pdf
Chapter 28
Fri 11/15 Midterm 2 Prior exams:
24fa:  blank  soln  
24sp:  blank  soln  
23fa:  blank  soln  
23sp:  blank  soln  
22fa:  blank  soln  
Week 13 Lecture Videos
Recitation Materials
Mon 11/18 I/O: Histogram Demo lec32.pdf Histogram.java  WordScanner.java  WordScannerTest.java  
Chapter 28
Wed 11/20 Swing I: Drawing and Event Handling lec33.pdf DrawingCanvas.java  DrawingCanvasMain.java  OnOff.java  
Chapter 29
Thu 11/21 HW09 (Game Checkpoint) due
Fri 11/22 Swing II: Inner Classes and Layout lec34.pdf LayoutDemo.java  
Chapter 29
Week 14 Lecture Videos
Mon 11/25 Swing III: MoD lec35.pdf
Chapter 30
Tue 11/26 HW08 (Twitterbot) due
Wed 11/27 Bonus Lecture: Code _is_ data / NO RECITATIONS THIS WEEK lecbonus.pdf Quine.java  
Fri 11/29 No Class: Thanksgiving Break
Week 15 Lecture Videos
Recitation Materials
Mon 12/2 Swing IV: Reimplementing Paint / Advanced Java lec36.pdf paint.zip  Streams.java  
Chapter 31
Wed 12/4 MVC; Sustainability lec37.pdf
Fri 12/6 Semester Recap lec38.pdf
Week 16 Lecture Videos
Mon 12/9 Guest Lecture - Jane Street
Mon 12/9 HW09 (Make Your Own Game) due
Tue 12/17 12-2pm Final Exam Prior exams:
24fa:  blank  soln  
24sp:  blank  soln  
23fa:  blank  soln  
23sp:  blank  soln  
22fa:  blank  soln  
22sp:  blank  soln  
21fa:  blank  online  soln