CSE 373 Data Structures and Algorithms

Summer 2022

University of Washington

This course focuses on common data structures and algorithms. It integrates theoretical understanding with practical exercises, preparing students for software-related roles and industry technical interviews. Programming projects, unit testing, and source control techniques are emphasized.

Course Page

Overview

No data.

Prerequisites

CSE 143, or similar Java programming experience.

Learning objectives

In this course, you will gain a strong theoretical and conceptual understanding of common data structures and algorithms, as well as how to apply them within larger programming projects.

Specific topics we will cover include:

  • Data structures and ADTs: lists, stacks, queues, sets, dictionaries, linked lists, arrays, trees, balanced trees, AVL trees, hash tables, priority queues, binary heaps, and disjoint sets.
  • Graphs and graph algorithms: graph search, shortest path, and minimum spanning trees.
  • Algorithm analysis: asymptotic analysis, and P and NP complexity classes.
  • Sorting and divide-and-conquer.

This course is designed to have a practical component to help you gain basic familiarity with techniques used within industry. In particular, you’ll be asked to:

  • Work on programming projects and integrate your work in an existing codebase.
  • Learn how to use an industrial-strength IDE.
  • Learn techniques for checking correctness: writing unit tests with JUnit, designing and checking invariants, etc.
  • Learn how to collaborate on a single code base using source control repositories.

Finally, this course emphasizes the importance of making and justifying design decisions. Taken together, all of the above skills are chosen to set you up for success in a software-related role. In fact, this course is typically regarded as useful preparation for industry and technical interviews.

Textbooks and other notes

No data

Other courses in Data Structures and Algorithms

CS 161 Design and Analysis of Algorithms

Winter 2023

Stanford University

15-451/651 Algorithms

Spring 2022

Carnegie Mellon University

CS 166 Data Structures

Spring 2022

Stanford University

CS 61B: Data Structures

Fall 2022

UC Berkeley

Courseware availability

Lecture slides available at Calendar

Recordings available on YouTube at Calendar

Exercises available at Exercises

Covered concepts