Skip to content

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:

  1. Demonstrate knowledge of fundamental data structures and related algorithms, including lists, stacks, queues, trees, heaps, and graphs.
  2. Explain hash functions and hash tables for faster data storage and access.
  3. Analyze runtime for operations on data structures and related algorithms.
  4. Write programs that apply data structures and algorithms.
  5. 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

  1. Start with linked objects and linked lists.
  2. Study algorithm analysis before comparing implementations.
  3. Move through sorting, stacks, queues, trees, BSTs, AVL trees, and heaps.
  4. Finish with hashing and graph concepts.
  5. 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.