
The exercises will help
you to master the basic concepts for the given week. Each assignment consists of an
etude and the main part. Work out the etudes on your own before you meet with
your partner. When you meet, compare your solutions and discuss any problems you encountered. If you are
unable to complete the etudes by Sunday, ask questions in class, or see someone during their office hours.
Etudes are designed to give you a practice with the basic skills you need to understand for each week.
Keep your solutions in your portfolio, but do not hand them in. We will check them
when we check your portfolio.
Work on the main part of the assignment with your partner. Hand in
one joint program. DUE DATES:
Homework assignments must be submitted by 10:00 pm on Tuesday unless otherwise specified.
Turn in each assignment with a Java comment on the top of the assignment that specifies
the following pieces of information:
 Assignment: (number)
 Name:
 ID: (last 4 digits only)
 Name:
 ID:
Omission of this information leads to immediate loss of all credit for the homework.
Week  Assignments  Due Date 


Review HtDP: Loops, Accumulator style programs, World
 1/15  
Data definitions and class diagrams to represent classes; containment, union, mutual reference
 1/22  
Designing methods for simple classes, containment, unions.
 1/29  
Abstracting classes: lifting fields, lifting methods, creating a super class, a union.
Using libraries: The World Teachpack.
 2/5  
Complex Program; World: Refactoring
 2/8  
Data integrity; Circular Data; Exceptions; Equality of Circular Data
 2/19  
Stateful Classes, Imperative Methods; Equality.
Testing the effects; Imperative World
 2/26  
Abstracting over the data type.
 3/11  
Designing to interfaces; Exceptions; Applets.
 3/18  
Designing programs with iterators: recursion vs. iteration; ArrayList; Java loops
 3/25  
Using libraries (Maps, hash tables, trees, priority queues);
Stress tests: Sorting out Sorting; JUnit
 4/1  
Project: Graph traversals: DFS, BFS, shortest path,
minimum spanning tree  optimizing the performance, designing reusable code
 4/15  
Work on the Project. Portfolio Review
 4/15  
Project: Graph traversals: DFS, BFS, shortest path,
minimum spanning tree  optimizing the performance, designing reusable code
 4/15 
