CS 260 Computer Science 3: Data Structures Lecture Hours: 4 Credits: 4
Covers general-purpose data structures and algorithms, their complexity analysis, software engineering of these structures, and the application of these engineering concepts to real world problems. Includes managing complexity, complexity analysis, stacks, queues, lists, trees, heaps, hash tables, sets, maps, and graphs.
Prerequisite: Placement into WR 115 (or higher), or completion of WR 090 (or higher); and completion of CS 162 ; or consent of instructor. (All prerequisite courses must be completed with a grade of C or better.) Student Learning Outcomes:
- Explain the properties, interfaces, and behaviors of basic abstract data types, such as stacks, queues, lists, trees, heaps, hash tables, sets, maps, and graphs.
- Read an algorithm or program code segment that contains iterative constructs and analyze the asymptotic time complexity of the algorithm or code segment.
- Analyze the asymptotic time complexity of the fundamental operations associated with common data structures and their algorithms.
- State 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.
- Design and implement general purpose, reusable data structures that implement one or more abstractions.
- Compare and contrast the operation of common data structure implementations in terms of time complexity, space utilization, and the abstract data types they implement.
Statewide General Education Outcomes:
- Gather, comprehend, and communicate scientific and technical information in order to explore ideas, models, and solutions and generate further questions.
- Apply scientific and technical modes of inquiry, individually, and collaboratively, to critically evaluate existing or alternative explanations, solve problems, and make evidence-based decisions in an ethical manner.
- Assess the strengths and weaknesses of scientific studies and critically examine the influence of scientific and technical knowledge on human society and the environment.
Content Outline
- Introduction to Complexity Theory and Asymptotic Time and Space Analysis
- Linear Structures and Sorting
- Tree Structures (Binary, Multi-way, and General Trees)
- Graph Structures and Common Graph Algorithms
- Unstructured Containers (Hash Tables, Sets, Bags, Maps)
|