CSE logo University of Washington Department of Computer Science & Engineering
 CSE 373 - Syllabus
  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.

Textbook

The 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.

Acknowledgements

In 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.


CSE logo 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]