Topic |
Description |
Readings (Liskov) |
Abstraction |
Decomposition and Abstraction |
1.1 |
Parameterization |
1.2 |
Specification |
1.2 |
Java Objects |
Program structures and packages |
2.1, 2.2 |
Objects and Type Checking |
2.3, 2.4 |
Dispatching and Types |
2.5, 2.6 |
Procedural Abstraction |
Specifications |
3.1, 3.2, 3.3 |
Implementing |
3.4 |
Designing |
3.5 |
Exceptions |
Exceptions in Java |
4.1, 4.2 |
Programming with Exceptions |
4.3 |
Design and Defensive Programming |
4.4, 4.5 |
Data Abstraction |
Specifications and implementation |
5.1-5.5 |
Reasoning |
5.6, 5.7 |
Designing |
5.8, 5.9 |
Iteration Abstraction |
Iterators in Java |
6.1 |
Specifications and implementation |
6.2-6.4 |
Design |
6.5-6.7 |
Type Hierarchies |
Assignment and dispatching |
7.1 |
Defining hierarchies |
7.2-7.5 |
Specifications and implementation |
7.6-7.8 |
Theoretical properties |
7.9, 7.10 |
Polymorphic Abstraction |
Defining and using |
8.1, 8.2 |
Equality and robustness |
8.3-8.6 |