CS210 - Data Structures and Algorithms¶
CS210 introduces classical data structures and algorithms with emphasis on performance through asymptotic analysis and complexity classes. The course covers lists, stacks, queues, heaps, trees, graphs, searching, sorting, traversal, hashing, and implementation of data structures and algorithms in modern programming languages.
Course project
I created and documented a CS210 linked-list implementation and runtime analysis project for this course. You can view the portfolio entry and open the project here: Project portfolio · Project site · Repository
Course Information¶
| Item | Details |
|---|---|
| Course code | CS210 |
| Course title | Data Structures and Algorithms |
| Credits/contact hours | 3 credits and 4 contact hours: lectures 3, tutorials 1 |
| Prerequisite | CS102 Programming II |
| Main textbook | Goodrich and Tamassia, Data Structures and Algorithms in Java, 6th ed. |
| Course role | Required core course for CS, IS, and SE programs |
Course Learning Outcomes¶
By the end of CS210, students should be able to:
- Demonstrate knowledge of fundamental data structures and related algorithms, including lists, stacks, queues, trees, heaps, and graphs.
- Explain hash functions and hash tables for faster data storage and access.
- Analyze runtime for operations on data structures and related algorithms.
- Write programs that apply data structures and algorithms.
- Collaborate in designing and implementing efficient, sustainable data structures and algorithms.
Course Content¶
-
Linked Objects and Data Structures
Object references, linked structures, and the foundations of dynamic data representation.
-
Linked Lists
Singly linked lists, doubly linked lists, circular linked lists, traversal, insertion, and deletion.
-
Algorithm Analysis
Iterative and recursive algorithm analysis, asymptotic reasoning, and complexity comparison.
-
Sorting Algorithms
Selection sort, insertion sort, merge sort, and quick sort.
-
Stacks and Queues
Basic linear structures, LIFO/FIFO behavior, operations, and applications.
-
Binary Trees and Binary Search Trees
Tree terminology, traversal, search, insertion, deletion, and BST behavior.
-
AVL Trees
Self-balancing search trees, height balance, and rotations.
-
Heaps and Priority Queues
Heap structure, priority queue operations, heap insertion/removal, and heap-based applications.
-
Hashing
Hash functions, hash tables, chaining, probing, and collision handling.
-
Directed and Undirected Graphs
Graph representation, traversal, and basic graph-processing ideas.
Assessments¶
| Assessment | Weight |
|---|---|
| Midterm exam | 20% |
| Two quizzes | 20% |
| Projects | 15% |
| Attendance and participation | 5% |
| Final exam | 40% |
Current Site Coverage¶
| Syllabus topic | Current site material | Status |
|---|---|---|
| Linked objects and linked lists | Lists and circular linked-list slides | Covered |
| Algorithm analysis | Algorithm analysis slides and topic notes | Covered |
| Sorting algorithms | Elementary sorting, merge sort, and quick sort materials | Covered |
| Stacks and queues | Topic notes and slides | Covered |
| Binary trees and BSTs | Trees and BST materials | Covered |
| AVL trees | Topic notes and slides | Covered |
| Heaps and priority queues | Heaps and priority queue slides | Covered |
| Hashing | Hash tables materials | Covered |
| Directed and undirected graphs | Graph slides | Covered |
Study Path¶
- Start with linked objects and linked lists.
- Study algorithm analysis before comparing implementations.
- Move through sorting, stacks, queues, trees, BSTs, AVL trees, and heaps.
- Finish with hashing and graph concepts.
- Use the cheat sheets and exam practice after solving implementation traces by hand.
Source
This overview was updated from the CS210 course syllabus and the current files in the CS210 section of this site.