The table specifies the topics we will cover in each week. Make sure to read the relevant sections of the text
for a given week. Read as much as possible before you
come to class and lab.
There is no specific text for the second half of the course. You will learn a lot from reading Java documentation and
from the lab materials. At this point you have to take responsibility for your own learning.
The week starts on Wednesday and ends on Tuesday.
|Week||Topic of the Week||Details||Dates|
|Classes of Data||
Data definitions: class, union, containment, inheritance;
Constructors, class diagrams; Examples of data.
||1/5, 6, 10|
|Methods for Simple Class Hierarchies||
Self-referential data; Methods for simple classes, classes with containment; Design recipe for class definitions.
|Methods for Class Hierarchies||
Methods for union of classes and classes that represent self-referential data; Design recipe for methods.
||1/19, 20, 24|
|Methods and Equality||
Methods for complex data; Equality of self-referential data
||1/26, 27, 31|
|Abstracting through Object||
Lists of Objects; Classes to represent Java program
||2/2, 3, 7|
Abstracting with Object, Interfaces, and Function Objects
||2/9, 10, 14|
Function Objects; Scheme Loops in Java
||2/16, 17, 21|
Design recipe for methods with accumulator; Circlularly referential data
||2/23, 24, 3/7|
Abstracting traversals: Iterators; Exceptions; Direct access structures
||3/9, 10, 14|
|Understanding and Conquering Complexity||
Algorithm complexity; Visitor pattern
||3/16, 17, 21|
|Value Based Data Structures||
Maps, hash tables, trees
||3/23, 24, 28|
|Data Structures and Algorithms: Java Collections||
Priority Queues; Java Collections Hierarchy
||3/29, 31, 4/1|
GUI Interactions, Web Interactions
||4/6, 7, 11, 13|