What does it mean to say that one algorithm is "better" than another algorithm? How can we construct a network of N computers to minimize the number of direct connections while guaranteeing that a message from one computer to any other takes no more than logN hops? Is it possible to prove how much time or memory will be used by an algorithm? Analyzing and solving these kinds of questions requires an understanding of the mathematical foundations of computer science. CX 122 provides an introduction to the methods of formal reasoning and the mathematical theory essential to the discipline of computer science.
Below are some (old) links to online material for this course:
Return to the Mathematics and Computer
Science Home Page