Date |
Topic |
Slides |
Code |
Reading |
8/26
|
Introductions, Program Design
|
lec01.pdf
|
assert.ml
tickets.ml
|
Syllabus
Chapter 1
Ocaml/Eclipse set up
|
8/28
|
Value-Oriented Programming |
lec02.pdf
|
|
Chapter 2
OCaml style guide |
8/31
|
Lists and Recursion |
lec03.pdf
|
assert.ml
email.ml |
Chapter 3 |
9/2 |
Tuples and Lists |
lec04.pdf |
|
Chapter 4 |
9/4 |
Datatypes and Trees |
lec05.pdf |
lists.ml |
Chapter 5 |
9/7
|
No Class: Labor Day |
|
|
|
9/8
|
HW01: Finger Exercises Due |
|
|
|
9/9
|
Binary Trees |
lec06.pdf
|
trees.ml
|
Chapters 6 and 7 |
9/11
|
Binary Search Trees |
lec07.pdf
|
trees.ml
|
Chapters 7 |
9/14 |
BSTs: Delete; Generics |
lec08.pdf
|
Add period ends
|
Chapters 8 and 9 |
9/15
|
HW02 Computing Human Evolution Due |
|
|
|
9/16
|
Higher-order Functions; Transform and Fold |
lec09.pdf
|
functions.ml |
Chapter 9 |
9/18
|
Fold & Abstract Types: Sets |
lec10.pdf
|
|
Chapter 10 |
9/21
|
Abstract Types: Finite maps |
lec11.pdf
|
finiteMap.ml |
Chapters 10 |
9/23
|
Finite Maps, Partiality and Options |
lec12.pdf
|
finiteMapOptions.ml
|
Chapter 11 |
9/24
|
HW03 Sets, Abstraction, and Higher-Order Functions Due |
|
|
|
9/25
|
No Class: Papal Visit |
|
|
|
9/28
|
Unit, Commands, and Mutable Records |
lec13.pdf |
|
Chapters 12, 13, 14 |
9/30
|
The Abstract Stack Machine |
lec14.pdf |
|
Chapter 15 |
10/2
|
Midterm I |
|
Drop period ends |
|
10/5
|
Queues |
lec15.pdf
|
|
Chapter 16 |
10/7
|
(Typechking Revisited) / Iteration |
lec16.pdf |
|
|
10/9
|
No Class: Fall Break |
|
| |
10/12
|
"Iteration II / Objects" |
lec17.pdf |
|
Chapter 17 |
10/13
|
HW04: Mutable Queues Due |
|
|
|
10/14
|
GUI Design |
lec18.pdf
|
gctx.ml
eventloop.ml
simpleWidget.ml
swdemo.ml
|
Chapter 18 |
10/16
|
GUI Design: events |
lec19.pdf |
|
|
10/19
|
GUI Design: Lightbulb Demo / Transition to Java |
lec20.pdf |
lightbulbdemo.ml
|
Chapter 19 |
10/21
|
Java Basics |
lec21.pdf |
|
Chapter 20
|
10/22
|
HW05: GUI Library + Paint Program Due |
|
|
|
10/23
|
Java Arrays |
lec22.pdf |
ArrayDemo.java
ArrayDemoTest.java |
Chapter 21 |
10/26
|
Java ASM, Static vs. Dynamic methods |
lec23.pdf
|
|
ResArray.java
ResArray.java
Chapter 22 |
10/28
|
Subtypes and Extension |
lec24.pdf
|
|
Chapter 23 |
10/29
|
HW06: Pennstagram Due |
|
|
|
10/30
|
Inheritance and Dynamic Dispatch |
lec25.pdf
|
Shapes.zip |
|
11/2
|
Subtyping and the Java ASM |
lec26.pdf
|
|
Chapter 24 |
11/4
|
Generics and Collections; Iterators |
lec27.pdf
|
|
Chapter 25 |
11/6
|
Midterm II |
|
Withdraw Period Ends
|
|
11/9
|
Overriding, Equality |
lec28.pdf
|
Point.java
Main.java
|
Chapter 26 |
11/11
|
Exceptions |
lec29.pdf
|
|
Chapter 27 |
11/13
|
Exceptions / IO |
lec30.pdf
|
Exceptions.java
|
Chapter 28 |
11/16
|
IO / Histogram Demo |
lec31.pdf
|
Histogram.java
WordScanner.java
WordScannerTest.java
problem.txt
|
|
11/17
|
HW07: PennPals Due |
|
|
|
11/18
|
Histogram Demo II / Swing I: Basics |
lec32.pdf
|
Histogram.java
WordScanner.java
WordScannerTest.java
|
Chapter 29 |
11/20
|
Swing II: Working with JComponents |
lec33.pdf |
DrawingCanvas.java
DrawingCanvasMain.java
OnOff.java
|
Chapter 30 |
11/23 |
Swing III: Paint Demo |
lec34.pdf |
LayoutDemo.java
Paint.zip (all versions)
|
Chapter 31 |
11/24
|
HW08: Spellcheck Due |
|
|
|
11/25
|
Bonus lecture: Code is Data |
bonus.pdf |
Quine.java
|
|
11/27
|
No Class: Thanksgiving Break |
|
| |
11/30
|
Design Patterns |
lec35.pdf |
| Chapter 32 |
12/2
|
Hashing and Collections |
lec36.pdf
|
HashExample.java
HashTest.java
| |
12/4
|
Advanced Java Topics: Garbage Collection, Multithreaded Programs |
lec37.pdf |
MultiThreaded.java
GCTest.java
|
|
12/7
|
Recap |
lec38.pdf
|
|
|
12/8
|
HW09: Make Your Own Game Due |
|
|
|
TBD
|
Final Exam |
|
|
|
* Dates when Dr. Zdancewic will be away. Lecture covered by guest lecturer.