CIS 120: Programming Languages and Techniques I
Fall 2015

CIS120 Lecture Schedule

Recorded lectures can be found at the (PennKey protected) CIS 120 mediasite page.
ResArray.java
ResArray.java
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
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.