Skip to main content
UW
Computer Science & Engineering
4 credits

UW CSE 373: Data Structures and Algorithms

CSE 373 is UW's data structures and algorithms course for non-majors and students outside the standard CSE admission track, covering lists, stacks, queues, trees, hashing, graphs, sorting, and asymptotic analysis. It cannot be taken for credit by students who have already completed CSE 332.

Fennie is independent and not affiliated with University of Washington. This is an unofficial study guide.

What makes it hard

The conceptual load (balancing trees, hash collision strategies, graph traversals, and Big-O analysis) arrives fast, and many students take 373 without the dense theory background CSE majors get from 311. Asymptotic analysis trips people up most: exams want you to derive and justify runtimes, not just recite them, and the implementation projects assume comfort writing substantial code.

What you'll cover

  • Asymptotic (Big-O) analysis
  • Lists, stacks, and queues
  • Trees and balanced search trees
  • Hash tables and collision resolution
  • Graphs and traversals
  • Sorting algorithms

The CSE 373 study guide

How to study for UW CSE 373, step by step.

  1. 1

    Make Big-O reasoning a daily habit

    Asymptotic analysis is the most-tested and most-missed skill in CSE 373. For every structure and operation, practice arguing why a runtime holds rather than memorizing a table. Exams want the justification.

  2. 2

    Implement each structure, don't just read it

    Build a small version of each tree, hash table, and graph yourself. The projects and exams assume you can produce structure code, and reading provided implementations doesn't build that ability.

  3. 3

    Trace graph algorithms by hand

    Walk BFS, DFS, and shortest-path algorithms through small graphs on paper, tracking the queue or stack at each step. Hand-tracing is how the algorithms move from memorized to understood.

  4. 4

    Start projects early and debug deliberately

    The implementation projects are substantial. Beginning early gives you room to understand bugs instead of patching them blindly, which is also how the concepts cement before exams.

Today's CSE 373 plan

Sample
65 min

What a Fennie Daily Plan looks like for CSE 373. Yours is built from your syllabus and adapts every day to your deadlines and progress.

  • Review: Lists, stacks, and queuesReview · 25 min

    Work back through the CSE 373 material on lists, stacks, and queues. In the app, Fennie builds this from your own notes and syllabus.

  • Practice: Trees and balanced search treesPractice · 20 min

    Targeted problems on trees and balanced search trees, the kind CSE 373 actually tests.

  • Quick quiz: Hash tables and collision resolutionQuiz · 10 min

    Five generated questions to expose weak spots on hash tables and collision resolution before the exam does.

  • Preview: Graphs and traversalsPreview · 10 min

    A first pass over graphs and traversals so the next session starts from familiar ground.

Get my real CSE 373 plan free

First plan free, no card required. Fennie is independent and unaffiliated with your school.

FAQ

Is CSE 373 hard?

It's demanding for a non-majors course. The topic pace is quick and asymptotic analysis is conceptually slippery. Students who practice deriving runtimes and implementing structures themselves handle it well.

What's the difference between CSE 373 and CSE 332?

CSE 332 is the data structures course for CSE majors and adds parallelism and concurrency; CSE 373 covers the core structures and algorithms for non-majors. You can't take 373 for credit if you've already completed 332.

How do I study for CSE 373 exams?

Focus on Big-O reasoning you can justify, hand-trace graph algorithms on small inputs, and implement each structure at least once rather than relying on provided code.

More UW courses