CS163 introduces data abstraction with formal specification, and elementary algorithm analysis. Basic concepts of data and its representation inside a computer are included. Data structures emphasized include linear, linked, and orthogonal lists, tree structures, and graphs. Data structures are implemented as data abstractions. Sorting and searching strategies are covered along with overall data management.
To acquaint students with structures used in C++ for the storage and manipulation of data. The concept of data abstraction and the problem of building implementations of abstract data types are emphasized. Both static and dynamic implementations of major structures are presented and the advantages and disadvantages of each are discussed. Structures include lists of several types, stacks, queues, trees, binary trees, B-trees and graphs. Recursion and key transformation (hashing) are examined. Students are encouraged to examine algorithms and to make judgments about the practical and social application of these algorithm concepts to large scale programming projects; the course stresses the importance of quantitative methods in designing software.