Schedule

This schedule is tentative and likely to be revised.

Date Topic Slides Code Reading
Wed 9/2 Introductions, Program Design lec01.pdf
overview.pdf
assert.ml
tickets.ml
Chapter 1
Fri 9/4 Value-Oriented Programming lec02.pdf
Chapter 2
Mon 9/7 No Class: Labor Day
Wed 9/9 Lists and Recursion lec03.pdf listrec.ml
Chapter 3
Fri 9/11 Lists, Tuples, Nested Patterns lec04.pdf patterns.ml
Chapter 4
Chapter 5
Mon 9/14 Datatypes and Trees lec05.pdf tree.ml
treeExamples.ml
ppTree.ml
filesystem.ml
Chapter 5
Chapter 6
Tue 9/15 HW01 (Finger Exercises) due
Wed 9/16 Trees and Binary Search lec06.pdf tree.ml
treeExamples.ml
bst.ml
Chapter 7
Fri 9/18 BST Insert & Delete lec07.pdf bst.ml
Chapter 7
Chapter 8
Mon 9/21 Generics and Higher-order Functions lec08.pdf funs.ml
Chapter 8
Tue 9/22 HW02 (Computing Human Evolution) due
Wed 9/23 Higher-order Functions: Transform and Fold lec09.pdf transform.ml
fold.ml
Chapter 9
Fri 9/25 Abstract Types: Sets lec10.pdf sets.ml
Chapter 10
Mon 9/28 Abstract Types: Sets & Finite Maps lec11.pdf sets.ml
finiteMap.ml
Chapter 10
Tue 9/29 HW03 (Abstraction and Modularity) due
Wed 9/30 Finite Maps (cont'd) / Typechecking lec12.pdf finiteMap.ml
Chapter 10
Fri 10/2 Midterm 1 Exams:
20fa:  blankappendixsolutions
20sp:  blanksoln
19fa:  blanksoln
19sp:  blanksoln
18fa:  blanksoln
Mon 10/5 Options, Unit, Commands / Records / Mutable State Aliasing lec13.pdf
lec13-part2.pdf
Chapter 11
Chapter 12
Chapter 13
Chapter 14
Wed 10/7 Mutable Data Structures, Abstract Stack Machine lec14.pdf mutable.ml
Chapter 14
Chapter 15
Fri 10/9 Mutable Queues lec15.pdf q.ml
Chapter 16
Mon 10/12 Iteration and Tail Recursion lec16.pdf q2.ml
Chapter 16
Tue 10/13 HW04 (Mutable Queues) due
Wed 10/14 Closures and Objects / NO RECITATIONS THIS WEEK lec17.pdf counter.ml
Chapter 17
Fri 10/16 No Class: Virtual Fall Break
Mon 10/19 GUI Design: Gctx and Widgets lec18.pdf Chapter 18
Wed 10/21 GUI Design: Widgets and Layout lec19.pdf gctx.ml
simpleWidget.ml
simpleEventLoop.ml
hello.ml
fractalTree.ml
swdemo.ml
Chapter 18
Fri 10/23 GUI Design: Widgets and Events lec20.pdf notifierdemo.ml
onoff-start.ml
onoff-finished.ml
Chapter 18
Mon 10/26 Transition to Java lec21.pdf Chapter 19
Chapter 20
Wed 10/28 Java Basics: Classes, Interfaces lec22.pdf Chapter 19
Chapter 20
Thu 10/29 HW05 (GUI Library and Paint) due
Fri 10/30 Java Static Methods and Arrays lec23.pdf ArrayExamples.java
ArrayExamplesTest.java
Chapter 21
Mon 11/2 Java Arrays: ResArray Demo, Java ASM lec24.pdf ResArray.java
ResArrayTest.java
Chapter 32
Chapter 22
Wed 11/4 Java ASM, Subtyping lec25.pdf Animals.zip
Shapes.zip
Chapter 22
Chapter 23
Thu 11/5 HW06 (Pennstagram) due
Fri 11/6 Java ASM, Dynamic Dispatch lec26.pdf Animals.zip
Shapes.zip
Chapter 23
Chapter 24
Mon 11/9 Generic Types and Collections lec27.pdf Shapes.zip
Point.java
TreeSetExample.java
Chapter 25
Wed 11/11 Overriding, Equality lec28.pdf Chapter 26
Fri 11/13 Midterm 2 Exams:
20fa:  blankappendixsolutions
19fa:  blanksoln
19sp:  blanksoln
18fa:  blanksoln
18sp:  blanksoln
Mon 11/16 Enums, Iteration lec29.pdf
Chapter 25
Tue 11/17 HW07 (PennPals) due
Wed 11/18 Exceptions lec30.pdf
Chapter 27
Fri 11/20 I/O lec31.pdf Image.java
mandrill.pgm
Chapter 28
Mon 11/23 I/O: Histogram Demo lec32.pdf Histogram.java
WordScanner.java
WordScannerTest.java
problem.txt
Chapter 28
Tue 11/24 HW08 (Twitterbot) due
Wed 11/25 Bonus Lecture: Code _is_ data lec33.pdf Quine.java
Fri 11/27 No Class: Thanksgiving Break
Mon 11/30 Swing I: Drawing lec34.pdf DrawingCanvas.java
DrawingCanvasMain.java
Chapter 29
Tue 12/1 HW09 (Game Checkpoint) due
Wed 12/2 Swing II: Event Handling, Inner Classes, and Layout lec35.pdf OnOff.java
LayoutDemo.java
Chapter 30
Fri 12/4 Swing III: MoD, Adapaters lec36.pdf
Mon 12/7 Swing IV: Reimplementing Paint / Design Patterns lec37.pdf paint.zip
Chapter 31
Wed 12/9 Advanced Java: Hashing, Concurrency, Lambdas, Memory Management lec38.pdf HashExample.java
HashTest.java
MultiThreaded.java
manmem.c
GCTest.java
Streams.java
PaintF.java
Thu 12/10 Semester Recap lec39.pdf
Thu 12/10 HW09 (Make Your Own Game) due
Tue 12/15 - Fri 12/18 Final Exam (see details on Piazza) Exams:
20fa:  blankappendixsolutions
20sp:  blanksoln
19fa:  blanksoln
19sp:  blanksoln
18fa:  blanksoln