There are many excellent computational biology resources now available for learning about methods that have been developed to address specific biological systems, but comparatively little attention has been paid to training aspiring computational biologists to handle new and unanticipated problems. This text is intended to fill that gap by teaching students how to reason about developing formal mathematical models of biological systems that are amenable to computational analysis. It collects in one place a selection of broadly useful models, algorithms, and theoretical analysis tools normally found scattered among many other disciplines. It thereby gives the aspiring student a bag of tricks that will serve him or her well in modeling problems drawn from numerous subfields of biology. These techniques are taught from the perspective of what the practitioner needs to know to use them effectively, supplemented with references for further reading on more advanced use of each method covered. The text, which grew out of a class taught at Carnegie Mellon University, covers models for optimization, simulation and sampling, and parameter tuning. These topics provide a general framework for learning how to formulate mathematical models of biological systems, what techniques are available to work with these models, and how to fit the models to particular systems. Their application is illustrated by many examples drawn from a variety of biological disciplines and several extended case studies that show how the methods described have been applied to real problems in biology.