CIS 120

caml | java api | piazza |
upenn.edu | directories | portal | van pelt library
seas.upenn.edu | engineering library
dining philosophers (DP) | science & tech wing (STWING) | women in cs (WICS)
CETS Answers |

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