CIS120 Lecture Schedule
Lecture notes: Chapters 1-10
| Date | Topic | Slides | Handouts |
|---|---|---|---|
| 1/11 |
Introductions, Program Design | lec01.pdf |
First day of class |
| 1/13 |
Program Design in OCaml | lec02.pdf |
Tickets.ml |
| 1/16 |
MLK day: No class | ||
| 1/18 |
Lists and Recursion | lec03.pdf |
Gaga.ml |
| 1/20 |
Lists II | lec04.pdf |
Lists.ml |
| 1/23 |
Tuples, Datatypes and Trees | lec05.pdf
|
Trees.ml |
| 1/25 |
Binary Trees | lec06.pdf |
MoreTrees.ml |
| 1/27 |
Binary Search Trees | lec07.pdf |
Bst.ml |
| 1/30 |
Abstraction | lec08.pdf |
Note: Add period ends |
| 2/1 |
Map demo | lec09.pdf |
Map.ml |
| 2/3 |
Abstract Types and First-class Functions | lec10.pdf |
Map2.ml Majors.ml |
| 2/6 |
First-class Functions | lec11.pdf |
|
| 2/8 |
Structuring Data: Options, Unit, and (mutable!) Records | lec12.pdf |
|
| 2/10 |
Imperative Programming: Hidden State | lec13.pdf |
lec13.ml Notes: Chapter 14 |
| 2/13 |
Queues I: Mutable, linked datastructures | lec14.pdf |
lec14.ml Notes: Chapter 15 |
| 2/15 |
Preliminary Exam I | |
|
| 2/17 |
Iteration | lec15.pdf |
Notes: Chapter 15 Note: Drop period ends |
| 2/20 |
GUI I: Design Discussion, Widgets | lec16.pdf |
Notes: Chapter 16.1-16.5 |
| 2/22 |
GUI II: Widgets & Events | lec17.pdf |
gctx.ml simpleWidget.ml swdemo.ml Notes: Chapter 16.6-16.9 |
| 2/24 |
GUI III: Events, Listeners, and Applications | lec18.pdf |
lightswitch.ml Notes: Chapter 16.9-16.14 |
| 2/27 |
Transition to Java: objects, classes, interfaces | lec19.pdf |
Notes: Chapter 17 |
| 2/29 |
Transition to Java: value-oriented programming | lec20.pdf |
Notes: Chapters 17.4, 18 |
| 3/2 |
Static Methods & Programming with Arrays | lec21.pdf |
Notes: Chapters 19, 20.1 |
| 3/5 |
Spring Break | ||
| 3/7 |
Spring Break | ||
| 3/9 |
Spring Break | ||
| 3/12 |
Design Exercise: Resizable Arrays | lec22.pdf |
ResArray.java ResArrayTest.java Notes: Chapter 20 |
| 3/14 |
Encapsulation | lec23.pdf |
ResArrayFinished.java ResArrayFinishedTest.java Queue.java QueueImpl.java QueueNode.java Notes: Chapter 20 |
| 3/16 |
Queues | |
|
| 3/19 |
Subtyping and Extension | lec24.pdf |
Main1.java Main2.java Main3.java Notes: Chapter 21 |
| 3/21 |
Subtyping, Generics, and Collections | lec25.pdf |
|
| 3/23 |
Histogram Demo | |
|
| 3/26 |
Java Library Programming & Java ASM | lec27.pdf |
Histogram.java WordScanner.java |
| 3/28 |
Java ASM: Dynamic Dispatch & Overriding | lec28.pdf |
|
| 3/30 |
Preliminary Exam II | |
Note: Withdrawal period ends |
| 4/2 |
Exceptions | lec29.pdf |
|
| 4/4 |
Swing I | lec31.pdf |
DrawingCanvas.java Lightbulb.java BulbSwitch.java OnOff5.java |
| 4/6 |
Swing II: Inner Classes | lec32.pdf |
DrawingExample.zip |
| 4/9 |
Swing III | |
DrawingExample.zip |
| 4/11 |
Paint Demo I | lec33.pdf |
Paint.zip |
| 4/13 |
Paint Demo II | |
|
| 4/16 |
Design Exercise: Spreadsheets | lec34.pdf |
|
| 4/18 |
Design Exercise: Spreadsheets II | lec35.pdf |
Spreadsheet.zip |
| 4/20 |
Bonus Lecture: Consequences of Code as Data | lec30.pdf |
Quine.java |
| 4/23 |
Course Wrap Up | lec36.pdf |
|
| 4/8 |
Final Exam | |
9AM |