Back to Blog
Education8 min readJan 15, 2026

UW CSE 373 Study Guide: Master Data Structures and Algorithms Exams

M
Michael T.
CS Education Specialist
TL;DR
A complete study guide for UW CSE 373 exams with strategies for mastering data structures, algorithms, and practice techniques to boost your performance.

Data Structures and Algorithms (CSE 373) at the University of Washington is a challenging course that builds critical computer science foundations. Whether you're struggling with abstract data types or algorithm analysis, this comprehensive UW CSE 373 study guide will help you prepare effectively for midterms and finals. We'll cover key concepts, study strategies, and provide resources to help you excel in one of UW's most important CS courses.

Understanding the CSE 373 Exam Format

Before diving into study strategies, it's essential to understand what you're preparing for. CSE 373 exams typically include:

  • Algorithm analysis questions (Big-O complexity)
  • Data structure implementation details
  • Conceptual questions about abstract data types
  • Coding problems requiring you to implement or modify algorithms
  • Proof-based questions on algorithmic correctness

The official CSE 373 course website provides past exams and practice problems that are invaluable for preparation. Start by reviewing these to get familiar with the question styles and difficulty level.

Master Abstract Data Types and Implementations

A significant portion of CSE 373 exams tests your understanding of abstract data types (ADTs) and their implementations. Focus on:

  • Lists, stacks, queues, and their operations
  • Trees (binary, AVL, red-black, B-trees)
  • Hash tables and collision resolution strategies
  • Priority queues and heaps
  • Graphs and their representations

For each data structure, be able to explain:

  • Its abstract properties and operations
  • Time and space complexity of operations
  • Implementation details and tradeoffs
  • Common applications and use cases

Creating visual representations of these data structures can significantly enhance your understanding. With NoteNest's infinite canvas feature, you can draw out complex data structures and visualize operations like tree rotations or graph traversals, making abstract concepts more concrete.

Algorithm Analysis Techniques

Algorithm analysis is a cornerstone of CSE 373. Expect exam questions that ask you to:

  • Determine the time complexity of algorithms (best, average, worst case)
  • Compare efficiency of different algorithms for the same problem
  • Identify bottlenecks in algorithmic implementations
  • Understand space-time tradeoffs

Practice analyzing algorithms by:

  • Tracing through code with sample inputs
  • Counting operations systematically
  • Identifying dominant terms in complexity expressions
  • Recognizing common complexity classes (constant, logarithmic, linear, etc.)

When practicing algorithm analysis, use NoteNest's AI Stickies to create quick annotations about time complexity calculations. This allows you to capture insights in the moment and build a comprehensive reference for exam review.

Mastering Key Algorithms

CSE 373 covers several important algorithm categories that you should thoroughly understand:

  • Sorting algorithms: Insertion sort, selection sort, merge sort, quicksort, heapsort
  • Graph algorithms: BFS, DFS, Dijkstra's, Kruskal's, Prim's
  • Dynamic programming: Understanding overlapping subproblems and optimal substructure
  • Divide and conquer: Problem decomposition and solution combination
  • Greedy algorithms: Making locally optimal choices

For each algorithm, be prepared to:

  • Execute the algorithm by hand on example inputs
  • Explain why the algorithm works (correctness)
  • Analyze its time and space complexity
  • Identify situations where it performs well or poorly

Creating a centralized algorithm reference in NoteNest can be immensely helpful. Use the AI notes feature to summarize algorithm properties and complexities, then organize them in a structured way for quick review before exams.

Practice Problems and Mock Exams

Consistent practice is the key to success in CSE 373. Develop a practice routine that includes:

  • Working through previous years' exams (available on the course website)
  • Completing textbook exercises and challenge problems
  • Participating in study groups to discuss complex concepts
  • Creating your own practice problems based on lecture topics

Time yourself when solving practice problems to build exam-taking skills. Many students find it beneficial to start with untimed practice to build confidence, then gradually introduce time constraints as the exam approaches.

When working through practice problems, use NoteNest's handwriting recognition to quickly digitize your work. This allows you to maintain a searchable database of problem solutions that you can reference during final exam preparation.

Building a Comprehensive Study System

Creating a structured study system is crucial for mastering the breadth of CSE 373 material. Consider these approaches:

  • Develop concept maps connecting related algorithms and data structures
  • Create algorithm implementation templates you can quickly recall
  • Maintain a "mistakes journal" to track and learn from errors
  • Schedule regular review sessions for spaced repetition

The key to succeeding in CSE 373 is not just understanding individual concepts but seeing how they interconnect. As recommended in our UW Computer Science Study Guide: Ultimate Resource for Success, developing a holistic understanding of the material will help you tackle even the most challenging exam questions.

Building this comprehensive knowledge system becomes much easier with tools that support visual thinking. NoteNest's infinite canvas lets you map connections between algorithms and data structures, creating visual representations that reinforce your understanding of the course material.

Exam-Day Strategies

When exam day arrives, follow these strategies for optimal performance:

  • Skim the entire exam first to budget your time effectively
  • Start with questions you're confident about to build momentum
  • For algorithm analysis questions, clearly show your work
  • If stuck on a problem, move on and return later
  • When analyzing code, trace through with a simple example

Remember that partial credit is valuable in CSE 373 exams. Even if you can't fully solve a problem, demonstrate your understanding by explaining your approach and reasoning.

As outlined in our guide on how to study effectively, preparing your mind the day before an exam is just as important as long-term preparation. Get adequate rest, eat well, and review your key concept notes rather than trying to learn new material.

Conclusion: Your Path to CSE 373 Success

Mastering UW CSE 373 requires systematic preparation, consistent practice, and a deep understanding of fundamental concepts. By following this UW CSE 373 study guide, you'll be well-equipped to tackle even the most challenging exam questions.

Remember that success in algorithms courses comes from actively engaging with the material,implementing algorithms, solving problems, and connecting concepts,rather than passive reading or memorization. Build your study system, practice consistently, and approach exams with confidence.

Looking to optimize your study process for challenging courses like CSE 373? NoteNest's AI-powered note-taking tools can help you organize complex algorithms concepts, visualize data structures on an infinite canvas, and convert your notes to flashcards for effective review.

Try NoteNest today to transform how you prepare for your computer science courses and build a personal knowledge system that will serve you throughout your academic journey.

Tags
UW CSE 373AlgorithmsData StructuresComputer ScienceStudy Guide