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: FunJava. 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 IDE - Standard Java; Intergrity of data: constructors, privacy modifiers, exceptions, equality. Abstract classes. World.
Data integrity; Exceptions; Equality of Data; Methods as Objects. Traversals.
Stack vs. Queue; Set vs. Bag; Linked List, Doubly-linked list.
Mutation, tests for mutation. ArrayList: simple swap, manipulation.
Loops, selection and insertion sort.
Heapsort. Arrays. Stress Tests.
String processing. Eliza. Java Collections Framework, Javadocs.
Using Java libraries and algorithms: Overriding toString and equals; Using JUnit
User Interactions: Console, GUI.
Universe games: client-server communications.
Project Code Walks.