You must attend your assigned lab every week. During every lab there will be a short quiz --- to verify that you understand
that week's material.
The quiz will be graded on a pass/fail bases. If you fail the quiz, you will get no credit for the
If you fail a quiz you must see your TA to discuss the reasons for failing the quiz.
If you fail two quizzes in a row, you must see your instructor, to discuss the problems you are having.
Review HtDP; Use class diagrams to represent data definitions; Classes with containment; Set up homework submissions; Pair up.
Designing classes of data: unions, lists, trees; Design recipe for classes.
Methods for simple classes and classes with containment; Testing.
Methods for unions, self-referential data and mutually referential data; The design recipe.
Abstracting classes: lifting fieldds, lifting methods, creating a super class, a union, deriving subclasses; Using libraries: The World teachpack.
Eclipse IDE; Intergrity of data: constructors, privacy modifiers, exceptions.
Cyclical data; ADT; Reading Javadocs --- Java Collections Hierarchy.
Mutating the contents of a structure, the structure of a structure; Testing the effects; Equality; Genericity.
Algorithms for generics; Function objects, iterators; In-situ algorithms; Stress test techniques.
Converting structural recursion to iteration; Algorithms that use direct access.
Encapsulating functional behavior: Inner classes and the singleton; Using Java libraries and algorithms; Overriding toString and equals; JUnit.
User interactions: console, GUI, network.