next up previous
Next: Useful Information Up: No Title Previous: Class Schedule


The purpose of 211 is to give students a solid foundation in data structures and algorithms, plus an appreciation for good program design, especially the use of abstraction and modularity.

After completing the course, students should have gained a firm grounding in the following:

  1. C and C++ programming: functions, pointers, structures, the memory model, recursion, debugging techniques, I/O, etc.
  2. Foundations of algorithms and data structures.

  3. Principles of good programming practice.

  4. The functionality and implementation methods for standard data abstractions including: queues and stacks, trees, priority queues, dictionaries, and graphs.

  5. Several standard data structures such as: arrays, lists, trees (search trees, balanced trees), hash tables, and graph representations (adjacency lists and adjacency matrices).

  6. Standard computational problems such as sorting, searching and various graph problems.

  7. Several algorithmic methods including: divide-and-conquer, tree and graph traversal methods, greedy algorithms, and dynamic programming (memoizing).

  8. The basics of finite automata.

Kan Deng
Sat Jan 21 13:17:12 EST 1995