CIS120 Lecture Schedule
Lecture notes: Chapters 1-32
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 |
Options, Unit, and (mutable!) Records | lec12.pdf |
|
2/10 |
The Abstract Stack Machine | lec13.pdf |
|
2/13 |
Queues I: Mutable, linked datastructures | lec14.pdf |
queue.ml |
2/15 |
Preliminary Exam I | |
|
2/17 |
Queues II: Iteration | lec15.pdf |
Note: Drop period ends |
2/20 |
"Objects" and GUI I: Design Discussion | lec16.pdf |
counter.ml |
2/22 |
GUI II: Widgets | lec17.pdf |
simpleWidget.ml
simpleWidget.mli
swdemo.ml See homework 6 for Gctx module. |
2/24 |
GUI III: Events, Listeners, and Applications | lec18.pdf |
lightswitch.ml |
2/27 |
Transition to Java: objects, classes, interfaces | lec19.pdf |
|
2/29 |
Transition to Java: value-oriented programming | lec20.pdf |
|
3/2 |
Static Methods & Programming with Arrays | lec21.pdf |
ArrayExamples.java
ArrayExamplesTest.java |
3/5 |
Spring Break | ||
3/7 |
Spring Break | ||
3/9 |
Spring Break | ||
3/12 |
Design Exercise: Resizable Arrays | lec22.pdf |
ResArray.java ResArrayTest.java |
3/14 |
Java ASM and Encapsulation | lec23.pdf |
ResArrayFinished.java ResArrayTestFinished.java |
3/16 |
Subtyping and Extension | lec24.pdf |
Main1.java Main2.java Main3.java |
3/19 |
Java ASM and Dynamic Dispatch | lec25.pdf |
|
3/21 |
Encapsulation and Queues | lec26.pdf |
Queue.java QueueImpl.java QNode.java QueueTest.java |
3/23 |
Generics, Subtyping and Iteration | lec27.pdf |
|
3/26 |
Queue Iterators & Exceptions I | lec28.pdf |
QueueIterator.java revised QueueImpl.java |
3/28 |
Exceptions II | lec29.pdf |
|
3/30 |
Preliminary Exam II | |
Note: Covers up to (roughly) 3/23. Withdrawal period ends |
4/2 |
IO | lec30.pdf |
Demo files |
4/4 |
Histogram Demo | lec31.pdf |
Demo files |
4/6 |
Swing I | lec32.pdf |
DrawingExample.java OnOffExample.java |
4/9 |
Swing II: Layout and OO refactoring | lec33.pdf |
DrawingExample (before
refactoring) DrawingExample (after refactoring) Shape.java |
4/11 |
Swing III: Inner classes and more refactoring | lec34.pdf |
Five refactorings: drawing.zip |
4/13 |
Bonus Lecture: Consequences of Code as Data | bonus.pdf |
Quine.java |
4/16 |
Mouse Interaction | lec35.pdf |
Paint demo (Variants A - D) |
4/18 |
Keyboard Interaction & Spreadsheet demo | lec36.pdf |
Paint demo (all Variants) |
4/20 |
Spreadsheet demo |
Spreadsheet
(in class code) Spreadsheet (full version) |
|
4/23 |
Course Wrap Up | lec37.pdf |
|
4/8 |
Final Exam | |
9AM |