|
CSE Home | About Us | Search | Contact Info |
Course Description
In this course, we will explore several fundamental algorithms and data structures in computer science. You will implement some algorithms in Java (preferred) or C++. Some of the data structures we will encounter include linked lists, stacks, queues, trees, heaps, hash tables, and graphs. We will study and analyze algorithms for searching, traversing trees, hashing, manipulating priority queues, sorting, finding shortest paths in graphs, and much more.
The basic idea of this course is to help you understand many of the fundamental data structures of computer science. With an appreciation for data structures and algorithms and practical experience in implementing them you can be a much more effective designer, developer, or customer for new applications. Elegant algorithms are also a nice counterpoint to the crufty code and weird features we encounter in daily work.
TextbookThe textbook for this course is Data Structures and Algorithm Analysis in Java, by Mark Allen Weiss, 1999, Addison-Wesley. Errata. The Java source code for examples in the textbook is available.
If you prefer C++, an alternative is Data Structures and Algorithm Analysis in C++, also by Mark Allen Weiss. See the errata or example source code.
We'll be covering material from chapters 1-9. Specific topics include:
The programming language for this class is simple pseudocode. Pseudocode is not a specific language, but a notation to specify well algorithms so that they can be effectively be translated to actual code. pseudocode manual
AcknowledgementsIn preparing the lecture notes for this class, I have (with permission) drawn extensively from the lectures presented by Jean-Loup Baer who taught this class in Winter 2003, Richard Ladner who taught this class in Autumn 2002, Raj Rao who taught this class Spring 2001 and Doug Johnson who taught the class in Spring 2002 and who started this collection of slides (some of whose contents come recursively from the last time I taught it!).
Computer Science & Engineering University of Washington Box 352350 Seattle, WA 98195-2350 (206) 543-1695 voice, (206) 543-2969 FAX [comments to webmaster] |