Carnegie Mellon University

Computational Methods for Biological Modeling and Simulation

Course Number: 02-712

This is a required class for Masters in Computational Biology students and available as an elective for graduate students and advanced undergraduates.

It is intended for graduates and advanced undergraduates with either biological or computational backgrounds who are interested in developing computer models and simulations of biological systems.

Key Topics: 

The general topics covered will be:

[4 weeks] Models for optimization problems
[6 weeks] Simulation and sampling
[4 weeks] Model inference
Parameter tuning

The course will emphasize:

Practical algorithms
Algorithm design methods drawn from various disciplines of computer science and applied mathematics that are useful in biological applications

Coursework will include:

Problem sets with significant programming components
[1 week] Independent or group final projects


Semester(s): Fall
Required/Elective: Required
Units: 12
Prerequisite(s): Cross-listed with 03-712 Pre-reqs: [15-110 or 15-112] and [02-613 or 02-201]


This course has a textbook that was developed based on the class lecture notes:

Russell Schwartz. Biological Modeling and Simulation. MIT Press: Cambridge, MA, 2008.

Copies are available through the CMU Book Store and various online retailers. The References section of each chapter will recommend additional background readings. You may find these helpful if you want to know more about any of the topics we cover, but they are optional and you should not need them to complete any of the assignments. A few additional readings will be provided on Blackboard for topics not covered in the text.

There are also recorded videos of most lectures from a previous year. The quality is poor and the content will change somewhat each year, but you may find them useful. You can view them here.

Learning Objectives

  1. Learn how to formally define and reason about mathematical models of biological systems.
  2. Be familiar with a collection of commonly encountered discrete optimization problems, both tractable and intractable, and be able to reason about adapting them to related problems and solving them in practice.
  3. Be familiar with continuous optimization problems and know general techniques for solving them in constrained and unconstrained variants.
  4. Understand Markov models, how to pose them, how to analyze their mixing times, and how to use both discrete and continuous time variants.
  5. Know how to sample from a probability density.
  6. Know how to pose and numerically integrate ordinary, partial, and stochastic differential equations.
  7. Know how to pose parameter inference problems as optimization or sampling problems and be familiar with a set of general techniques for solving them.
  8. Understand basic principles behind validating models and quantifying uncertainty in those models.