From exponentially large numbers of possible sequences, protein design seeks to identify the properties of those that fold to predetermined structures and have targeted structural and functional properties. The interactions that confer structure and function involve intermolecular forces and large numbers of interacting amino acids. As a result, the identification of sequences can be subtle and complex. Sophisticated methods for characterizing sequences consistent with a particular structure have been developed, assisting the design of novel proteins. Developments in such computational protein design are discussed, along with recent accomplishments, ranging from the redesign of existing proteins to the design of new functionalities and nonbiological applications.