Provides an introduction to data structures, algorithms, and software engineering techniques using the C++ or Java language. Presents the development of large programs including definition, implementation, analysis, use, and reuse of abstract data types and associated algorithms. Reviews and elaborates arrays, lists, queues, stacks, sets, trees, priority queues, heaps, tables, hashing, balanced trees, graphs, recursion, searching, and sorting. May be offered in a distance-learning format. C-ID: COMP 132