CS 225

CS 225 - Data Structures

Spring 2026

TitleRubricSectionCRNTypeHoursTimesDaysLocationInstructor
Supplementary proj. for CS-225CS19922561879LAB01700 - 1750 M  1310 Digital Computer Laboratory 
Data StructuresCS225AH70578LAB01700 - 1750 M  1310 Digital Computer Laboratory Brad R Solomon
Data StructuresCS225AL131208LEC41100 - 1150 M W F  AUD Foellinger Auditorium Brad R Solomon
Kendall Koe
Data StructuresCS225AL259777LEC41100 - 1150 M W F  AUD Foellinger Auditorium Brad R Solomon
Kendall Koe
Data StructuresCS225AYA31234LBD00900 - 1050 R  3031 Campus Instructional Facility Peixuan Han
Madhav Jivrajani
Data StructuresCS225AYC31222LBD01100 - 1250 R  4029 Campus Instructional Facility Ruhana N Azam
Supia Park
Data StructuresCS225AYD31225LBD01100 - 1250 R  4025 Campus Instructional Facility Charles Alyn Cooper
Saif Ur Rahman
Data StructuresCS225AYE31227LBD01300 - 1450 R  4029 Campus Instructional Facility  Shreya Gummadi
Data StructuresCS225AYF31229LBD01300 - 1450 R  4025 Campus Instructional Facility Vlas Zyrianov
Data StructuresCS225AYG31231LBD01500 - 1650 R  4029 Campus Instructional Facility Saad Alam
Data StructuresCS225AYH59778LBD01500 - 1650 R  4025 Campus Instructional Facility Vishakh Suresh Babu
Data StructuresCS225ZJ168283LBD4 -    Volodymyr Kindratenko

Official Description

Data abstractions: elementary data structures (lists, stacks, queues, and trees) and their implementation using an object-oriented programming language. Solutions to a variety of computational problems such as search on graphs and trees. Elementary analysis of algorithms. Course Information: Credit is not given toward graduation for: CS 277 if credit for CS 225 has been earned. Prerequisite: CS 126 or CS 128 or ECE 220; One of CS 173, CS 413, MATH 213, MATH 314, MATH 347, MATH 412, or MATH 413. Class Schedule Information: Students must register for one laboratory-discussion and one lecture section.

Learning Goals

Implement classic and adapted data structures and algorithms (1), (2), (6)
Navigate, organize, compile C++ projects of moderate complexity (many objects and dependencies) in Linux. (1), (2), (6)
Use basic editing and debugging tools such as GDB and Valgrind. (1), (2), (6)
Analyze the efficiency of implementation choices. (1), (2), (6)
Decompose a problem into its supporting data structures such as lists, stacks, queues, trees, etc. (1), (2), (6)
Diagnose appropriate approaches or algorithms to solve problems involving graph search, tree traversal, optimization, data organization, etc. (1), (2) , (6)

Topic List

C++ programming (compilation, classes, pointers, parameters, dynamic memory, memory management, inheritance, templates, generic programming)
Data structures - ADTS - (lists, stacks, queues, trees, dictionaries, priority queues, disjoint sets, graphs).
Data structures - implementation (linked memory, BST/AVL, B-tree, hash table, kd-tree, quad-tree, heap, union-find (up-trees), adjaceny list / arrays).
Algorithms (tree traversal, nearest neighbor, buildHeap, heapsort, BFS, DFS, MST, shortest paths)

Required, Elective, or Selected Elective

Required.

Last updated

3/10/2019