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 |