The course presents intermediate to advanced descriptive as well as analytical coverage of various data structures useful in problem solving and programming. The topics include data types and performance evaluation. The specific data types discussed include lists, tables, priority queues, disjoint subsets, as well as static and dynamic dictionaries. Data structuring implementation techniques include linked lists, hashing, and trees. Run time performance using big-O and amortized analysis.

There will be several C++ programming assignments during the course; these demonstrate the data types and as well as advanced features of the programming language. Some of the assignments will be useful immediately in other course software projects.

The prerequisites include knowledge of the C++ programming language as covered in CSE 12 and familiarity with average and expected value calculations as covered in CSE 20-21.