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
ProfessorJ; Data definitions for simple classes,
classes with containment, unions, self-reference, mutual reference.
Design recipes for classes. Methods for classes.
Designing methods, Using libraries: The World teachpack;
Eclipse; Intergrity of data: constructors, privacy modifiers, exceptions.
Data integrity; Exceptions; Equality of Data; Methods as Objects
Circular Data; Methods for Circular Data;
Assignment and changes in the World.
Stateful Classes, Imperative Methods; Equality.
Testing the effects; Abstracting over the data type.
Designing to interfaces.
Reading and writing Javadocs.
Abstracting over the behavior; Traversals, Visitors, Function objects;
Designing programs with iterators: recursion vs. iteration; ArrayList; Java loops
Using Java libraries and algorithms: Overriding toString and equals; Using JUnit
No lab - Thanksgiving
User Interactions: Console, GUI.