  We review algorithms for protein design in general. Although these algorithms
have a rich combinatorial, geometric, and mathematical structure, they are
almost never covered in computer science classes. Furthermore, many of these
algorithms admit provable guarantees of accuracy, soundness, complexity,
completeness, optimality, and approximation bounds. The algorithms represent a
delicate and beautiful balance between discrete and continuous computation and
modeling, analogous to that which is seen in robotics, computational geometry,
and other fields in computational science. Finally, computer scientists may be
unaware of the almost direct impact of these algorithms for predicting and
introducing molecular therapies that have gone in a short time from mathematics
to algorithms to software to predictions to preclinical testing to clinical
trials. Indeed, the overarching goal of these algorithms is to enable the
development of new therapeutics that might be impossible or too expensive to
discover using experimental methods. Thus the potential impact of these
algorithms on individual, community, and global health has the potential to be
quite significant.
