This course focuses primarily on the implementation of various important algorithms and data structures. It contains some theory, but the theory content is minimized in favor of a more rigorous treatment of implementation techniques. The course covers classic topics such as lists, trees, hash tables, graphs, sorting, and string matching. Other topics such as encryption, data compression, and image processing are covered as time allows.
3 hours of lecture per week