CSE 30331 (at Notre Dame):
TTh 9:30–10:45
102 DeBartolo Hall
Dr. David Chiang
CSE 34331 (in London):
TTh 14:15–15:30
Dr. Peter Bui

Fundamental techniques in the design and analysis of non-numerical algorithms and their data structures. Elementary data structures such as lists, stacks, queues; more advanced ones such as priority queues and search trees. Design techniques such as divide-and-conquer. Sorting and searching and graph algorithms.

Prerequisite: CSE 20212, Fundamentals of Computing II.


This course is about the data structures and algorithms that are the core of computer science and the building blocks for nearly every computer program you will write. Upon successful completion of this course, you will know these data structures inside and out:

  • Inside: You will be able to analyze the performance of data structures in order to select the right one for each situation, as well as create or extend data structures to fit new situations.
  • Outside: You will be able to combine data structures to solve real world problems, employing abstractions to make them work together cleanly and safely.