CS16 introduces fundamental techniques for problem solving that are relevant to most areas of computer science, both theoretical and applied. Algorithms and data structures for sorting, searching, graph problems, and geometric problems are covered. Programming assignments conform with the object-oriented methodology introduced in CS15.

If you did not take CS15, contact the professor to explore the possibility of a special arrangement. The following background is assumed: programming experience in Java, knowledge of basic binary arithmetic and elementary properties of polynomials, logarithms, and exponentials.

CS16 meets Spring semester, Tuesdays and Thursdays 10:30-11:50 AM in MacMillan 117. It is taught by Professor David Laidlaw with the assistance of undergraduate TAs.