CS 125. Algorithms and Complexity

    An accelerated introduction to theoretical computer science for students with strong mathematical preparation, to be taken in place of both Computer Science 121 and 124. Algorithm design methods, including graph algorithms, approximation algorithms, and randomized algorithms. Models of computation, computability theory, and computational complexity, including the P vs. NP question.

    CS 127. Computational Geometry (Spring 2005)

    Basic techniques, data structures, combinatorics, and algorithms for solving geometric problems. Examples are convex hulls, Voronoi diagrams, point set, and polygon triangulation. Range search, linear programming, and point location. Some theoretical and programming exercises.

    CS 222. Algorithms at The End of the Wire (Fall 2012)

    Covers topics related to algorithms for big data, especially related to networks. Themes include compression, cryptography, coding, and information retrieval related to the World Wide Web. Requires a major final project.

    CS 228. Computational Learning Theory (Spring 2014)

    Possibilities of and limitations to performing learning by computational agents. Topics include computational models, polynomial time learnability, learning from examples and learning from queries to oracles. Applications to Boolean functions, automata and geometric functions.