►
CMSC 132A:
Systematic Program Design II
Syllabus
Texts
Schedule
Exams
Lectures
Labs
Assignments
Piazza
Grades Server
Submit Server
Acknowledgments
▼
Lectures
Lecture 1:
The Essence of Objects
Lecture 2:
Unions of Objects
Lecture 3:
Cancelled
Lecture 4:
Classes of Objects:
Data Definitions
Lecture 5:
Classes of Objects:
Interface Definitions
Lecture 6:
Interface Design:
Independent and Extensible
Lecture 7:
Parametric Interface Definitions and Methods
Lecture 8:
Introducing Java:
Syntax and Semantics
Lecture 9:
Union, Interfaces, and Lists in Java
Lecture 10:
Testing in Java
Lecture 11:
Parametric Interfaces in Java
Lecture 12:
Computations on Many Structural Arguments:
Double Dispatch
Lecture 13:
Parameterized Types and Double Dispatch; Abstracting Values
Lecture 14:
Abstracting Computation with Function Objects
Lecture 15:
Function Objects & Parameterized Types; Anonymous Classes & Lambda
Lecture 16:
The Fundamental List Abstraction:
Fold
Lecture 17:
University Closed:
Wind
Lecture 18:
Midterm Review
Lecture 19:
Properties of Equality:
Reflexive, Symmetric, Transitive, and Total
Lecture 20:
Structural Equality with Double Dispatch; Abstracting and Overridding
Lecture 21:
More Double Dispatch
Lecture 22:
Optional, Maps, Sets, and Lifting Default Code to Abstract Classes
Lecture 23:
The Visitor Pattern
Lecture 24:
Implementing Visitors; Bank Accounts
Lecture 25:
Imperatives:
Implicit Communication via Side-
Effects
Lecture 26:
Aside:
List Exercises
Lecture 27:
Imperatives:
Cyclic Data
Lecture 28:
Imperatives:
Methods over Cylic Data
Lecture 29:
BSTs, Maps, The Law of Hash
Code, and Comparable vs Comparators
Lecture 30:
Random access and Array
Lists
Lecture 31:
Implementing Hash Tables
Lecture 32:
Resizing Hash Tables
Lecture 33:
Simple Iterators
Lecture 34:
List Iterators and Iterator Combinators
Lecture 35:
List Iterators and Iterator Combinators
Lecture 36:
Zippers
Lecture 37:
Naive Tree Iterators
Lecture 38:
Efficient Pre-
Order Tree Iterators
Lecture 39:
Drills
Lecture 40:
Drill Solutions
Lecture 41:
Wrap-
up
6.12
← prev
up
next →
Lecture 14:
Abstracting Computation with Function Objects
Video
.
TBD.
← prev
up
next →