Prerequisite: CS 287. (Both semesters/3 credits)
An intensive introduction to object-oriented programming and advanced data structures. Topics will include such data structures as heaps, priority queues, hash tables, advanced tree structures including B+ or B* trees and graphs. The course will emphasize the relative advantages and disadvantages of various design and implementation choices, and the way these choices affect software quality. Integration of component-based methodologies into their software designs will be discussed. Instruction will be in the C++ programming language, including the C++ Standard Library.