CSE332: Data Abstractions

Spring 2010

Catalog Description: Covers abstract data types and structures including dictionaries, balanced trees, hash tables, priority queues, and graphs; sorting; asymptotic analysis; fundamental graph algorithms including graph search, shortest path, and minimum spanning trees; concurrency and synchronization; and parallelism.

Lecture: MWF 2:30-3:20 EEB 037
Section AA: Thursday 1:30-2:20 EEB 042
Section AB: Thursday 2:30-3:20 EEB 042

Course Information and Policies

Policy on Collaboration and Academic Integrity
Policy on Grading
Programming Guidelines
Written-Homework Guidelines

Message Board (optional)

Give Anonymous Feedback

Course Staff

To reach the entire course staff, email cse332-staff followed by @ and then cs.washington.edu

Instructor: Dan Grossman, djg followed by @ and then cs.washington.edu,
   Office hours: Tuesday 12:30-1:30 and by appointment, CSE556 (please do come by!)
TA: Tyler Robison, trobison followed by @ and then cs.washington.edu
   Office hours: Thursday 3:30-4:30, CSE216
TA: Brent Sandona, sandona1 followed by @ and then cs.washington.edu
   Office hours: Wednesday 1:00-2:00, CSE216

Class materials

(*) NP does not belong in CSE332. It is a primary topic in CSE312. However, students taking CSE332 in Spring 2010 have all taken CSE321, which means they will not take CSE312.

Section materials

  1. April 1st
  2. April 8th
  3. April 15th
  4. April 22nd
  5. April 29th
  6. May 6th
  7. May 13th
  8. May 20th
  9. May 27th
  10. June 3rd


Turn-In Page for Projects

Written Homeworks


Exam Information
Midterm: Friday, April 30, in class   exam unsolved   exam solved
Final: Tuesday, June 8, 2:30-4:20, EEB037   exam unsolved   exam solved

Textbooks and Other Resources

The textbook is Data Structures and Algorithm Analysis in Java 2nd Edition, Mark Allen Weiss, Addison Wesley: 2007, ISBN: 0-321-37013-9.
Errors in the textbook
The textbook often provides a second explanation for material covered in class and we will likely assign some homework problems from it.

The book Core Java(TM), Volume I--Fundamentals 8th Edition, Cay S. Horstmann and Gary Cornell, Prentice Hall: 2007, ISBN: 0-132-35476-4, is recommended as a Java programming reference. Note this book is also recommended for CSE331.

Several topics in the course, particularly the entirety of parallelism and concurrency, are not covered by the textbook. Therefore, we have prepared the following supplemental notes:


Course Email List (mandatory)
Homework 0, "due" Thursday April 1, 0 points
Thoroughly read the course policies and refer back to them as necessary


Approximately 75% of CSE332 evolved from CSE326, which was taught well by many instructors over many years. CSE332 borrowed heavily from these courses for lectures, homeworks, and projects. The parallelism and concurrency parts of the course are new, developed by Dan Grossman with excellent feedback from Tyler Robison and Brent Sandona. Dan credits Guy Blelloch and Charles Leiserson for many of the ideas/topics related to teaching fork-join parallelism and doing so before concurrency. While developing the course, Dan had conversations with many helpful colleagues, notably Ruth Anderson, James Fogarty, Hal Perkins, and Larry Snyder.

Valid CSS! Valid XHTML 1.1