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.