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 planWhat 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
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
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
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
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
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 freeMore UW courses
CSE 121 — Introduction to Computer Programming I
CSE 121 is UW's no-experience-required intro to programming in Java, the first course in the CSE 12X sequence that replaced the old CSE 142/143 in 2022. It's designed for students who have never written code, covering variables, control flow, methods, and arrays through weekly programming assignments.
CSE 122 — Introduction to Computer Programming II
CSE 122 is the second course in UW's intro programming sequence, and the usual starting point for students with AP CS A credit or prior coding experience. It covers data structures from the client perspective — lists, sets, maps, stacks, queues — plus file processing and reasoning about code complexity.
CSE 123 — Introduction to Computer Programming III
CSE 123 completes UW's intro programming sequence, shifting from using data structures to building them. Students implement linked lists and binary trees, write recursive algorithms, and design class hierarchies with inheritance and interfaces — the material that used to be the back half of CSE 143.
CSE 311 — Foundations of Computing I
CSE 311 is UW's discrete math and theory course — propositional logic, proofs, set theory, induction, regular expressions, and finite automata. It's the first course in the major where the work is writing proofs instead of writing programs, and it underpins everything from CSE 312 to algorithms.