This course is the first part of a two-semester sequence examining data structures (ways of organizing data so that it can be used effectively) and algorithms (the methods that can be used to manipulate data). The use of appropriate data structures and algorithms can often dramatically reduce the computational work needed to solve a problem. Topics examined in this course will include proof techniques, run-time analysis, heaps, hash tables, sorting, searching, and divide-and-conquer algorithms. The course will provide advanced programming experience and will emphasize the use of abstraction in program design. This class is not open to students who previously took Computer Science 21.
Requisite: Computer Science 11. Spring semester. Professor L. McGeoch.
The textbook for Computer Science 20 in spring 2010 will be Introduction to Algorithms, third edition, by Cormen, Leiserson, Rivest and Stein, MIT Press, 2009. The ISBN is 978-0-262-03384-8. Please note that this is a newer edition than the text previously used in COSC 20 and 30. We will use the new edition in next fall's COSC 30, so one book will cover both classes. The price at Amazon appears to be about $59.