CIS120 Schedule
Lecture screencasts can be found at the (PennKey protected)
CIS
120 mediasite page.
Date | Topic | Slides | Code | Reading |
---|---|---|---|---|
1/13 |
Introductions, Program Design No recitations this week! |
lec01.pdf |
assert.ml tickets.ml |
Syllabus Chapter 1 Ocaml/Eclipse set up |
1/15 |
Value-Oriented Programming | lec02.pdf |
Chapter 2 OCaml style guide |
|
1/18 |
No Class: MLK Day | |||
1/20 |
Lists and Recursion | lec03.pdf |
assert.ml email.ml |
Chapter 3 |
1/22 | Tuples and Lists | lec04.pdf | Chapter 4 | |
1/25 | Nested Patterns | lec05.pdf | zip.ml | Chapter 5 |
1/26 |
HW01 Finger Exercises due | |||
1/27 |
Binary Trees | lec06.pdf |
trees.ml treeExamples.ml |
Chapters 6 and 7 |
1/29 |
Binary Search Trees | lec07.pdf |
Chapters 7 | |
2/1 | BST delete and Generics | lec08.pdf |
bst.ml Add period ends |
Chapters 8 and 9 |
2/2 |
HW02 Computing Human Evolution due | |||
2/3 |
Higher-order Functions | lec09.pdf |
transform.ml | Chapter 9 |
2/5 |
Abstract Types: Sets | lec10.pdf |
Chapter 10 | |
2/8 |
Abstract Types: Finite maps | lec11.pdf |
finiteMap.ml | Chapters 10 |
2/9 |
HW03 Sets, Abstraction, and Higher-Order Functions due | |||
2/10 |
Finite Maps, Partiality and Options | lec12.pdf |
finiteMapOptions.ml | Chapter 11 |
2/12* |
The Abstract Stack Machine | lec13.pdf |
Chapters 15 | |
2/15 |
Unit, Commands, and Mutable Records | lec14.pdf | mutable.ml | Chapters 12, 13, 14 |
2/16 |
Midterm 1 Time: 6:15-8:15PM Location by last name: A - Schwartz: MEYH B1 Shah - Z: DRLB A8 |
Practice exams: Fall 2015: blank | solution Spring 2015: blank | solution Fall 2014: blank | solution Spring 2014: blank | solution Fall 2013: blank | solution Spring 2013: blank | solution |
Actual exam: blank | solution |
|
2/17 |
Queues | lec15.pdf | Chapter 16 | |
2/19 |
Queues II | lec16.pdf |
Drop period ends | Chapter 16 |
2/22 |
Iteration and Tail Recursion | lec17.pdf |
q.ml | Chapter 16 |
2/23 |
HW04 Mutable Queues due | |||
2/24 |
Closures and "Objects" | lec18.pdf | Chapter 17 | |
2/26 |
GUI Design: drawing | lec19.pdf |
simpleWidget.mli simpleWidget.ml swdemo.ml |
Chapter 18 |
2/29 |
GUI Design: events | lec20.pdf |
onoff_layout.ml onoff_handle.ml |
Chapter 18 |
3/2 |
GUI Design: Lightbulb Demo | lec21.pdf | onoff_notifier.ml | Chapter 18 |
3/3 |
HW05 GUI Library and Paint due | |||
3/4 |
CLASS CANCELLED! | |
||
3/7 |
Spring Break! | |||
3/9 |
Spring Break! | |||
3/11 |
Spring Break! | |||
3/14 |
Connecting OCaml to Java | lec22.pdf | Chapters 19 and 20 | |
3/16 |
Java Arrays | lec23.pdf |
ArrayExamples.java ArrayExamplesTest.java |
Chapter 21 |
3/18 |
Java ASM | lec24.pdf |
Chapter 22 | |
3/21 |
Subtypes and Extension | lec25.pdf |
Shapes.zip |
Chapter 23 |
3/22 |
Midterm 2 Time: 6:15-8:15PM Location by last name: A - Schwartz: MEYH B1 Shah - Z: DRLB A8 |
Practice Exams: Fall 2015: blank | solution Spring 2015: blank | solution Fall 2014: blank | solution Spring 2014: blank | solution |
Actual exam: blank | solution |
|
3/23 |
Inheritance and Dynamic Dispatch | lec26.pdf |
Chapter 24 | |
3/25 |
Generics and Collections | lec27.pdf |
Withdraw Period Ends | Chapter 25 |
3/28* |
Guest Lecture: Yaron Minsky, Jane Street Effective OCaml |
NYT about Jane Street | ||
3/29* |
HW06 Pennstagram due | |||
3/30* |
Equality and Comparable | lec28.pdf | Chapter 26 |
|
4/1* |
Enums, Iterators | lec29.pdf |
Chapter 25 | |
4/4 |
Exceptions | lec30.pdf |
Chapter 27 | |
4/5 |
HW07 PennPals due | |||
4/6 |
IO | lec31.pdf |
Image.java mandrill.pgm |
Chapter 28 |
4/8 |
Histogram Demo | lec32.pdf |
Histogram.java WordScanner.java WordScannerTest.java problem.txt |
|
4/11 |
Swing I: Drawing and Event Handling | lec33.pdf |
DrawingCanvas.java DrawingCanvasMain.java OnOff.java |
Chapter 29 |
4/12 |
HW08 SpellCheck due | |||
4/13 |
Swing II: Layout and Inner Classes | lec34.pdf |
LayoutDemo.java
|
Chapter 30 |
4/15 | CLASS CANCELLED! | |||
4/18 |
Swing III: Game Demo | lec35.pdf | Chapter 31 | |
4/19 |
HW09 Checkpoint due | |||
4/20 |
Resizable Arrays | lec36.pdf |
ResArray.java ResArrayTest.java | Chapter 32 |
4/22 |
Encapsulation, Hashing and Collections | lec37.pdf |
HashExample.java HashTest.java | |
4/25 |
Bonus lecture: Code is Data | bonus.pdf | Quine.java | |
4/26 |
HW09 Make Your Own Game due | |||
4/27 |
Recap | lec38.pdf |
||
5/9 |
Final Exam Time: 9-11AM Location:
|
Practice Exams: Fall 2015: blank | solution Fall 2014: blank | solution Fall 2013: blank | solution Spring 2013 blank | solution Fall 2012 : blank | solution |