CSE332: Data Abstractions, Summer 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 10:50-11:50 EEB 026
Section: Thursday 10:50-11:50 EEB 037
To reach the entire course staff, email cse332-staff followed by @ and then cs.washington.edu
Instructor: Tyler Robison, trobison followed by @ and then cs.washington.edu,
Office hours: Wednesday 2:00-3:00 & by appointment, Room: CSE 212
TA: Sandra Fan, sbfan followed by @ and then cs.washington.edu
Office hours: Thursday 12:00-1:00, Room: CSE 206
Lecture Slides & Notes
Approximate schedule for this quarter.
Lectures:
- June 21st: Introduction; Stacks & Queues: pptx pdf
- June 21st: Math review; Algorithm analysis: pptx pdf xlsx
- June 23rd: Algorithm analysis: pptx pdf xlsx
- June 25th: Priority Queues: pptx pdf
- June 25th, June 28th: Binary Heaps, continued: pptx pdf
- June 28th: Dictionaries & Binary Search Trees: pptx pdf
- June 30th: AVL Trees: pptx pdf
- July 2nd: Memory Hierarchy: pptx pdf
- July 2nd: B-Trees: pptx pdf
- July 2nd-July 7th: B-Trees, continued: pptx pdf
- July 9th-July 12th: Hashing: pptx pdf
- July 14th: Intro to Sorting: pptx pdf
- July 16th: Comparison Sorting: pptx pdf
- July 21st: Beyond Comparison Sorting: pptx pdf
- July 23rd: Introduction to Graphs: pptx pdf
- July 26th: Topological Sort: pptx pdf
- July 26th, July 28th: Shortest Paths: pptx pdf
- July 28th: Minimum Spanning Trees: pptx pdf
- July 30th: Introduction to Multithreading & ForkJoin Parallelism: pptx pdf
- August 2nd: Analysis of ForkJoin Parallel Programs: pptx pdf
- August 4th, August 6th: Parallel Prefix & Parallel Sorting: pptx pdf
- August 6th: Shared Memory Concurrency and Mutual Exclusion: pptx pdf
- August 9th: Programming with Locks and Critical Sections: pptx pdf
- August 9th: Readers/writer Locks and Condition Variables: pptx pdf
- August 11th, August 13th: Deadlocks and Additional Concurrency Issues: pptx pdf
- August 13th: Amortized Analysis: pptx pdf
- August 16th: A Few Words on NP (not on final): pptx pdf
- August 18th: Course Wrap-up: pptx pdf
Notes:
- Notes on Generic Arrays in Java
- Notes on ForkJoin Framework
- Dan Grossman's excellent notes on parallelism and concurrency
- The notes are, as of yet, incomplete, but Dan will be updating them and adding to them over the course of time
- These notes are in draft form, and Dan said he'd be happy to get your feedback on them; you can find his contact information here
Projects
Dropbox for course project submissions
Section Materials
- Week 1 - June 24
- Week 2 - July 1
- Week 3 - July 8
- Week 4 - July 15
- Week 5 - July 22
- Week 6 - July 29
- Week 7 - August 5
- Week 8 - August 12
- Week 9 - August 19
Written Homeworks
Exams
Course Information and Policies
- Give Anonymous Feedback: Thoughts & suggestions welcome
- Course Gradebook
- Message Board: Ask questions and discuss
- Course mailing list: cse332a_su10 at u.washington.edu
- Textbooks
- The course's primary 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
- An optional book for the course is Core Java(TM), Volume I--Fundamentals 8th Edition, Cay S.
Horstmann and Gary Cornell, Prentice Hall: 2007, ISBN: 0-132-35476-4, and is useful as a Java programming reference.
- Course Policies