A graduate course. This course surveys topics in two complementary approaches to protein engineering: computational protein design and directed protein evolution. Starting from the early works, it discusses the state-of-the-art methodology for computational design and for experimental directed evolution. It discusses how structural units could be designed and how protein function could be later introduced through protein engineering. Various breakthrough works are discussed to give the students the feel of the present research in the field of protein design and evolution.