Standard letter grades
Total contact hours
CS 162 and MTH 231.
Covers general-purpose data structures and algorithms, software engineering of these structures, and the application of these engineering concepts to real world problems. Topics covered include managing complexity, complexity analysis, stacks, queues, lists, trees, heaps, hash tables, sets, maps, and graphs.
Course learning outcomes
1. Describe the properties, interfaces, and behaviors of basic abstract data types, such as collection, stack, and queue.
2. Read an algorithm or program code segment that contains iterative constructs and analyze the asymptotic time complexity of the algorithm or code segment.
3. State the asymptotic time complexity of the fundamental operations associated with a variety of data structures, such as vector, linked list, tree, and heap.
4. Recall the space utilization of common data structures in terms of the long-term storage needed to maintain the structure, as well as the short-term memory requirements of fundamental operations, such as sorting.
5. Design and implement general-purpose, reusable data structures that implement one or more abstractions.
6. Compare and contrast the operation of common data structures (such as linear structures, priority queues, tree structures, hash tables, maps, and graphs) in terms of time complexity, space utilization, and the abstract data types they implement.