CIS 120: Programming Languages and Techniques I
Fall 2019

CIS120 Schedule

Lecture screencasts can be found at the (PennKey protected) course Canvas site: Section 001 is here, and Section 002 is here. (If you don't see any recordings, try clicking the "Class Recordings" tab on the left-hand side. If you still don't see them, try a different browser -- we've had good luck with Chrome).
DateTopicSlidesCodeReading
8/26
8/28Introductions, Program Designlec01.pdfassert.ml
tickets.ml
Syllabus
Chapter 1
Codio set up
8/30Value-Oriented Programminglec02.pdfChapter 2
OCaml style guide
9/2No Class: Labor Day
9/4Lists and Recursionlec03.pdfChapter 3
9/6Lists, Tuples, Nested Patternslec04.pdfpatterns.mlChapters 4 and 5
9/9Datatypes and Treeslec05.pdftree.ml
treeExamples.ml
ppTree.ml
Chapters 5 and 6
9/10HW01  (Finger Exercises) due
9/11Trees and Binary Searchlec06.pdftree.ml
treeExamples.ml
Chapters and 7
9/13BST Insert & Deletelec07.pdfbst.mlChapters 7 and 8
9/16Generics and Higher-order Functionslec08.pdffuns.mlChapters 8 and 9
9/17HW02  (Computing Human Evolution) due
9/18Higher-order Functions: Transform and Foldlec09.pdftransform.mlChapter 10
9/20Abstract Types: Setslec10.pdfhof.ml
sets.ml
Chapter 10
9/23Abstract Types: Sets & Finite Mapslec11.pdfsets.ml
finiteMap.ml
Chapter 10
9/24HW03  (Sets, Abstraction, and Higher-Order Functions) due
9/25Finite Maps / Options, Unit, Commandslec12.pdffiniteMap.mlChapters 11, 12, 13
9/27Midterm I
19sp: blank | solution
18fa: blank | solution
18sp: blank | solution
17fa: blank | solution
17sp: blank | solution
actual
blank | solution
9/30Records, Mutability, Abstract Stack Machinelec13.pdfmutable.mlChapter 14, 15
10/2ASM Continued, Reference Equalitylec14.pdfChapter 16
10/4Mutable Queueslec15.pdfq.mlChapter 16
10/7Iteration and Tail Recursionlec16.pdfq2.mlChapter 16
10/8HW04  (Mutable Queues) due
10/9Closures and Objects / Typechecking Revisitedlec17.pdfChapter 17
10/11No Class: Fall Break
10/14GUI Design: Gctx and Widgetslec18.pdfChapter 18
10/16GUI Design: Widgets and Layoutlec19.pdfgctx.ml
simpleWidget.ml
swdemo.ml
Chapter 18
10/18GUI Design: Widgets and Eventslec20.pdfnotifierdemo.ml
onoff-start.ml
onoff-finished.ml
Chapter 18
10/21Transition to Javalec21.pdfChapters 19 and 20
10/22HW05  (GUI Library and Paint) due
10/23Java Basics: Classes, Interfaceslec22.pdfChapters 19 and 20
10/25Java Static Methods and Arrayslec23.pdfArrayExamples.java
ArrayExamplesTest.java
Chapter 21
10/28Java Arrays: ResArray Demolec24.pdfResArray.java
ResArrayTest.java
Chapter 22
10/30Java ASM, Subtypinglec25.pdfShapes.zipChapter 23 and 24
11/1Dynamic Dispatch / Java ASMlec26.pdfChapter 24
11/4Generic Types and Collectionslec27.pdfPoint.java
TreeSetExample.java
Chapter 25
11/5HW06  (Pennstagram) due
11/6Overriding, Equalitylec28.pdfChapter 26
11/8Midterm II
19sp: blank | solution
18fa: blank | solution
18sp: blank | solution
17fa: blank | solution
17sp: blank | solution
actual
blank | solution
11/11Equality, Enums, Iterationlec29.pdfChapter 25 and 26
11/13Exceptionslec30.pdfExceptionExamples.java
Exceptions.java
Chapter 27
11/15I/Olec31.pdfImage.java
mandrill.pgm
Histogram.java
WordScanner.java
WordScannerTest.java
problem.txt
Chapter 28
11/18Histogram Demolec32.pdfHistogram.java
WordScanner.java
WordScannerTest.java
problem.txt
Chapter 28
11/19HW07  (PennPals) due
11/20Swing I: Drawinglec33.pdfDrawingCanvas.java
DrawingCanvasMain.java
Chapter 29
11/21HW09  Game Checkpoint due
11/22Swing II: Event Handling, Inner Classes, and Layoutlec34.pdfOnOff.java
LayoutDemo.java
Chapter 30
11/25Swing III: MoD, Adapaterslec35.pdf
11/26HW08  (TwitterBot) due
11/27Bonus Lecture: Code is Datalec36.pdfQuine.javaChapter 31
11/29No Class: Thanksgiving Break
12/2Class canceled: Power Outage in Leidy Labs
12/4Swing IV: Reimplementing Paint / Design Patternslec37.pdfpaint.zip
12/6Advanced Java: Concurrency, Hashing, Lambdas, Memory Managementlec38.pdfMultiThreaded.java
HashExample.java
HashTest.java
manmem.c
GCTest.java
PaintF.java
Streams.java
12/9Semester Recaplec39.pdf
12/9HW09  (Make Your Own Game) due
12/11No Class: Reading Days
12/13No Class: Reading Days
12/16No Class: Final Exams
12/17Final Exam 6:00-8:00PM
19sp: blank | solution
18fa: blank | solution
18sp: blank | solution
17fa: blank | solution
17sp: blank | solution
actual
blank | solution