Computer Science

Data Structures and Algorithms

Data Structures and Algorithms
Fundamental data structures and algorithms of computer science; basic algorithm analysis; recursion; sorting and searching; lists, stacks, queues, trees, hashing; object-oriented data abstraction.
 Hours3.0 Credit, 3.0 Lecture, 0.0 Lab
 PrerequisitesC S 142
 NoteStudents are allowed 1 repeat of each C S undergraduate course (all 100-, 200-, 300- or 400-level courses). This includes all students who received any grade including those who withdraw (receive a "W" grade) from a C S course. Students must wait 1 semester/term before being allowed to take a course they have failed twice. Petitions for exceptions to the policy can be completed at
 TaughtFall, Winter, Spring, Summer odd years
 ProgramsContaining C S 235
Course Outcomes: 

Data Computing Fundamentals

Use the fundamental data types of computing (lists, stacks, queues, priority queues, sets, maps, trees, etc.).

Implementing Fundamental Data Types

Understand the major techniques for implementing the fundamental data types (linked lists, binary search trees, hashing, heaps, etc.) and implement several of them.

Select Data Structures

Properly use and select data structures from language-provided data-structure libraries.


Apply basic algorithm analysis.


Understand how recursion works and write programs using recursion to solve problems.

Usage of Algorithms

Make informed decisions about which sorting and searching algorithms to use in specific circumstances.

Program Writing

Write programs that require ~500 lines of code.