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.

Build my CSE 373 study plan

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.

  5. 5

    Let Fennie spread the topic load

    Upload your CSE 373 syllabus and Fennie's Daily Plan gives each data structure dedicated practice before the next arrives, paced to your exams, with runtime-analysis flashcards generated from your actual course materials. Free to start.

    Start my CSE 373 plan free

How Fennie helps with CSE 373

Fennie's Daily Plans give each CSE 373 data structure dedicated practice days before the next one lands, paced to your exam dates. Chat through why an operation is O(log n) or how a graph traversal explores nodes, and drill flashcards on runtime analysis — the exam skill students most consistently underestimate.

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.

Pass CSE 373 with a plan, not a cram

Upload your CSE 373 materials and Fennie generates a Daily Plan paced to your deadline — plus chat, flashcards, and quizzes built from the actual course content.

Get started free

More UW courses