|
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 either C++ or Java. For those who know C++, you can use this course to learn more about Java by doing your projects in Java. 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.
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.
AcknowledgementsIn preparing the lecture notes for this class, I have (with permission) drawn extensively from the lectures presented by Raj Rao who taught this class Spring 2001 and Doug Johnson who taught the class in Spring 2002.
Department of Computer Science & Engineering University of Washington Box 352350 Seattle, WA 98195-2350 (206) 543-1695 voice, (206) 543-2969 FAX [comments to webmaster] |