03-512/15-507/03-712/15-871 - Computational Methods for Biological Modeling and Simulation

Computational Methods for Biological Modeling and Simulation was first taught in Spring 2004 and will be taught for the third time, with revised material, in Spring 2006. This page provides general information on the course for prospective students and others interested in the material. Students enrolled in the class should refer to the Blackboard page as the primary repository for class materials.

Administrative Information

Instructor: Russell Schwartz

Credit: 03-512/15-507 (undergraduate) 9 units; 03-712/15-871 (graduate) 12 units.

Course work: There are two versions of this class that have common lectures, an undergraduate version cross-listed as 03-512 and 15-507 and a graduate version cross-listed as 03-712 and 15-871. For both versions, course work will consist of problem sets with significant programming components and final independent or group projects. Students enrolled in 03-712/15-871 will be expected to answer extra questions on problem sets, which will generally explore deeper theoretical issues than are covered by the undergraduates. Students taking the graduate version of the class will also be expected to produce more ambitious final projects commensurate with the additional time commitment and their greater breadth of knowledge.

Prerequisites: Students should have a basic understanding of algorithms and data structures and molecular biology. The formal prerequisite is 03-510, Computational Biology, or permission of the instructor. Normally, permission will be given if the student has taken the equivalent of an introductory algorithms course and a general introductory biology course.

Course Summary

This course is designed to teach computational aspects of using modeling and simulation methods to understand biological systems, with an emphasis on practical application. The course will be divided into three general topics: models for optimization problems, simulation and sampling, and model parameter tuning. Specific model types to be covered will include graph models in evolution, string models for biological sequence data, Markov chain Monte Carlo models, hidden Markov models, and discrete-event models, as well as examples of special-purpose models important to specific sub-disciplines of biology. Algorithmic techniques to be studied will include common algorithms for graph optimization problems, mathematical programming methods, event queue data structures, key machine learning methods, commonly used heuristic methods, and methods for generating random numbers and accurately sampling from probability distributions required by or implicit in mathematical models. All of the above will be illustrated with examples from molecular, cellular, or evolutionary biology.

The overall goal of the course is to familiarize students with the computational tools available to them for designing and analyzing models of biological systems. By the end of the course, students should be familiar with a broad range of computational techniques useful in biological modeling and simulation, know how to develop models that take advantage of the available methods, and be able to analyze the expected performance of the models they use. While this course will cover too many topics to teach the theory behind each in depth, students will be sufficiently familiar with the methods covered to be able to apply them and to know where to look for further information.

Role in the Curriculum

This course is intended to be part of the core curriculum for graduate students interested in computational biology and a recommended elective for advanced undergraduates intending to pursue careers in computational biology. It will generally be taken by these students following 03-710 but can be taken before or after 03-711. The primary contribution of this course for Biological Sciences students will be to collect in one class many techniques used in biological simulation that would otherwise require taking more computer science and mathematics classes than can feasibly fit in their schedule. It is also meant to be an advanced elective for students in computer science, mathematics, or statistics who are interested in biological applications and would like to learn about the computational tools required for biological simulation work.

Computational Methods for Biological Modeling and Simulation complements Shlomo Ta'asan's modeling and simulation class, 21-366B (Topics in Applied Analysis: Modeling and Simulation of Biological Systems). Whereas 21-366B focuses primarily on mathematical analysis tools, 03-512/712 will focus primarily on tools from theoretical computer science. Biological Sciences students interested in modeling and simulation as part of their primary research activity are encouraged to take both courses.


There is no text for the class. A packet of lecture notes has been created for the class for use in place of a text. Students will also be provided with a list of optional reference readings, which are useful for those interested in greater depth on particular topics.

Tentative Topics

Last modified: October 23rd, 2005.