CIS 120: Programming Languages and Techniques I

CIS120 Lecture Schedule

Lecture notes (updated frequently)

Lecture screencasts

Date Topic Slides Code Reading
1/15
Introductions, Program Design lec01.pdf
assert.ml
tickets.ml
Syllabus
Chapter 1
Ocaml/Eclipse set up
1/17
Value-Oriented Programming lec02.pdf
Chapter 2
OCaml style guide
1/20
No Class: Martin Luther King Jr. Day
1/22
No Class: Snow emergency
1/24
Lists and Recursion lec03.pdf email.ml Chapter 3
1/27 Tuples and Lists lec04.pdf lists.ml Chapter 4
1/29 Datatypes lec05.pdf Chapter 5
1/31
Binary Trees and Binary Search Trees lec06.pdf
trees.ml
treeExamples.ml
Chapters 6 and 7
2/3
Binary Search Trees; Generics lec07.pdf
bst.ml
Add period ends
Chapters 7 and 8
2/5 Abstract types: Sets; Modules and Interfaces lec08.pdf
sets.ml
Chapter 9
2/7
Academic integrity discussion
Abstract types: Finite maps
lec09.pdf
mymap.ml
mymapTest.ml
2/10
First-class Functions lec10.pdf
majors.ml Chapter 10
2/12
Options, Unit, and Records lec11.pdf
Chapters 11, 12 and 13
2/14
Mutable State; The Abstract Stack Machine lec12.pdf
Chapters 14 and 15
2/17
The Abstract State Machine, II lec13.pdf
2/19
Queues: Mutable, linked data structures lec14.pdf
queue.ml Chapter 16
2/21
Midterm I
Drop period ends
2/24
Mutable Queues lec15.pdf
linkedQ.ml
2/26
Iteration; Objects lec16.pdf
Chapter 17
2/28
Objects and GUIs lec17.pdf Chapter 18
3/3
GUI II: Layout lec18.pdf
simpleWidget.ml
swdemo.ml
3/5
GUI III: Events lec19.pdf
eventdemo.ml
3/7
Transition to Java lec20.pdf Chapter 19
3/10
No class: Spring Break
3/19
No class: Spring Break
3/21
No class: Spring Break
3/17
Connecting OCaml to Java lec21.pdf Chapters 20 and 21
3/19
Java Arrays lec22.pdf ResArray.java
ResArrayTest.java
Chapter 22
3/21
Design Exercise: Resizable Arrays lec23.pdf ResArray.java
3/24
Java ASM; Interfaces and Subtyping lec24.pdf
Chapter 23
3/26
Immutable Lists; Inner Classes lec25.pdf
3/28
Class and Interface Extension lec26.pdf
Chapter 24
3/31
Dynamic Dispatch and the Java ASM lec27.pdf
Chapter 25
4/2
Generics, Collections and Iteration lec28.pdf
Queue.java QueueImpl.java
QNode.java QueueTest.java
Chapters 26 and 27
4/4
Midterm II
Withdraw period ends
4/7
Exceptions lec29.pdf
Chapter 28
4/9
Histogram Demo lec30.pdf
WordScanner.java
WordScannerTest.java
Chapter 29
4/11
Histogram Demo, continued lec31.pdf
Histogram.java
problem.txt
4/14
IO (and exceptions) lec32.pdf
Image.java
mandrill.pgm
4/16
Swing I: Drawing and Event Handling lec33.pdf
DrawingCanvas.java
DrawingCanvasMain.java
OnOffExample.java
Chapter 30
4/18
Swing II: Layout and GUI design lec34.pdf LayoutExample.java
Chapter 31
4/21
Swing III: Interaction and Paint Demo lec35.pdf Paint.zip
Chapter 32
4/23
Overriding and Equality lec36.pdf Point.java
ColoredPoint.java
Chapter 33 (new!)
4/25
Bonus lecture
Quine.java
4/28
TreeSets and HashSets lec37.pdf
4/30
Recap recap.pdf
5/7
Final Exam
9-11AM