You must attend the lab every week.
You should complete at home any part of the lab you did not finish during the lab time. At times,
we expect that the lab has to be finished at home: The goal is to give you a guidance in how to apply
the concepts we have learned in a concrete situation, and the lab materials act as a tutorial.
Data Definitions; Loops, Accumulator style programs
Eclipse IDE. Data definitions for simple classes,
classes with containment, unions, self-reference, mutual reference.
Design recipes for classes.
Methods for classes. Designing methods
Abstract classes; World library.
Methods as Objects
Intergrity of data: constructors, privacy modifiers, exceptions.
Assignment and Stateful Classes.
Stateful Classes, Imperative Methods;
Testing the effects; Abstracting over the data type.
Designing to interfaces; ArrayList;
Reading and writing Javadocs.
Designing programs with iterators: recursion vs. iteration; ArrayList; Java loops
Using Java libraries and algorithms: Overriding toString and equals; Using JUnit;
Sorting algorithms; Priority Queue and HeapSort; Graph Algorithms
Stress tests: Sorting out Sorting.
User Interactions: Console, GUI.
Project Code Walks.