There are 7-8 programming projects required for the course, typically assigned as follows:
Review of Java, definition of an elementary ADT (e.g. polar coordinate, polynomial, etc.) [2 weeks]
Program using doubly-linked linked lists built from scratch (e.g. storage of song information for MP3 player, grocery list, etc.) [2 weeks]
Program using stacks (e.g. parser for XML), use of Stack ADT from Java API. [1.5 weeks]
Program using queues (e.g. simulation of simple discrete system such as an intersection with a traffic light), definition of a subclass of Vector for queues to illustrate inheritance. [1.5 weeks]
Program using binary trees and recursion (e.g. Hoffman codes, data storage using a binary search tree, etc.). [2 weeks]
Program using hash table to illustrate collision handling and load factor. [1 week]
Simple program in C to learn about pointers and memory management. [1 week]
More substantial program in C to implement a graph or balanced tree and perform traversals on it. [2 weeks] |