Abstract data types and their implementations as data structures. Efficient of algorithms employing these data structures; asymptotic analyses. Dictionaries: balanced search trees, hashing. Priority queues: heaps. Disjoint sets with union, find. Graph algorithms: shortest path, minimum spanning tree, topological sort, search. Sorting. Not available for credit for students who have completed CSE 373. Prerequisite: CSE 321.
This course will be about data structures, which are key to all efficient and effective programs one writes in practice. We will try to develop a clear theoretical understanding of the importance, strengths and weaknesses of various data structures such as stacks, graphs and dictionaries. There will also be a significant focus on implementations of these ideas to solve some interesting problems. The programming language used will be Java.
NOTE: The textbook was incorrectly listed as "Data Structures and Algorithms in C++" by Weiss. We will instead be using the JAVA version of this book. The University Bookstore has been notified of this.
Student learning goals
General method of instruction
Class assignments and grading