BioGeometry Courses at Duke
CPS 260: Algorithms in Computational Biology  (Fall 2003; Agarwal; Duke)
  This course, cross-listed as BGT 204 in the Bioinformatics and Genome Technology PhD program administered by Center for Bioinformatics and Computational Biology, is intended to provide a systematic introduction to the algorithmic techniques behind the most commonly used tools in computational biology. While the course surveys a wide range of methods and tools in the field, the primary emphasis is on understanding and analyzing the algorithms behind these tools.

Topics covered include basic techniques in design and analysis of algorithms, dynamic programming, string matching, probabilistic techniques, hidden Markov models, geometric algorithms, and data mining. These topics are exposed in the context of applications of sequence alignment, genome sequence assembly, gene finding, gene expression and regulation, protein structure prediction, protein dynamics.
CPS 296: Bio-Geometric Modeling (Fall 2002; Edelsbrunner; Duke)
  This is a one semester graduate seminar course that teaches geometric methods used in the simulation and analysis of biomolecular systems and processes. Sample questions are the representation of protein structures, the docking of proteins, and the measuring of surface area and volume. While the course focuses on relatively recently developed combinatorial methods, the broader goal is the synthesis with classical numerical methods to form the concrete (continuous/discrete) foundations for a broad computational approach to understand life on a molecular level.

The course synthesizes concepts from algorithms, geometry and topology and includes the following main topics: I. Biomolecules; II. Geometric Models; III. Surface Meshing; IV. Connectivity; V. Shape Features; VI. Density Maps; VII. Match and Fit; VIII. Measures; IX. Derivatives.

The course material has been distilled into a set of notes that are available on the web. The notes form the basis of a future textbook on the topic.
CPS 296.2: Shape Analysis (Spring 2004; Agarwal; Duke)
  The course is intended to provide a systematic introduction to the modeling and algorithmic techniques behind the geometric and statistical analysis of 3D shapes that arise in many applications including molecular biology, computer graphics, and computer aided design. The primary emphasis is on recent algorithms developed for representing, analyzing, comparing, classifying, and indexing 3D shapes.

The topics covered include: I. Shape representation: basic representation methods, shape simplification, hierarchical methods, deformable shapes; II. Shape descriptors: histograms, harmonic maps, distance distribution, medial axis, topology based methods; III. Statistical shape analysis: Shape space, coordinate systems, procrustes distances and their generalizations, deformations; IV. Shape matching and registration: Combinatorial methods, geometric hashing, ICP and its variants, graph matching, entropy based methods; V. Shape classification and clustering: Geometric clustering, graph based methods, spectral methods, decision trees, support vector machines; VI. Shape indexing: Indexing multidimensional data, proximity search, search engines.
BioGeometry Courses at UNC Chapel Hill
COMP 006: Folding: From Paper to Proteins (Fall 2002; Snoeyink; UNC)
  This course, one of several First Year Seminar courses in Computer Science, is held every other year. First Year Seminar courses at UNC are designed to engage first year students in active learning, and to expose them to current research, with a focus on research methodologies as well as results.

We cover four areas of folding (paper, polyhedra, linkages, and proteins), looking both at the results in the individual areas, and at how they relate. These reflect Dr. Snoeyink’s research interest in computational geometry, an area of computer science that uses geometric techniques to solve computational problems in other fields. Although the course does not teach programming, we try to teach thought processes that lead to solving such problems.

This course is designed to appeal to a wide variety of students with different backgrounds and abilities. We use diverse teaching methods, ranging from student driven discussions to lecture style teaching. In the origami unit, for example, students folded various objects (including animals and modular polyhedra), then unfolded some to observe the crease patterns formed. We attended the Southeast Origami Festival in Charlotte, NC, and some of the students taught the others what they learned. Students wrote reports on either the festival, or on an origami math research paper. We related paper folding to physics by discussing why paper airplanes fly, students designed their own airplanes. In the protein unit, we explored various interesting proteins (i.e. silk, wool and hemoglobin). See photos
COMP 290-079: Applied Optimization in Computational Biology (Fall 2003; Snoeyink; UNC)
  This is a one credit seminar/working lab that uses case studies in specific biological problems of interest to the class members to motivate algorithmic methods (e.g. dynamic programming), software engineering (e.g., code factoring and tuning), and languages and tools (e.g., Perl, MATLAB, debuggers, profilers).

This is not a replacement for introductory courses in computer science. We assume that each student can write some sort of program, and that some students will want to learn more sophisticated techniques that apply to their particular problems, while other students will want to learn sophisticated problems that might be amenable to their particular techniques.

This course is drawing strong interest from both life sciences and computer science students.

MEDC 276 (BIOC 276): Macromolecular Modeling (Annually, Spring; Tropsha; UNC)
  This course introduces major modeling concepts as applied to the analysis, prediction, and use of protein structure. The course is divided into three sections. The first part addresses general aspects of protein structure organization (secondary and tertiary structure) and classification of proteins into structural and functional classes. It explores available methods for protein structure prediction from sequence using knowledge based homology modeling and fold recognition approaches. The second part concentrates on methodologies for molecular simulations including molecular dynamics and free energy perturbation techniques. Finally, the third part considers methods for structure-based drug discovery using molecular docking and scoring. Elements of computational geometry, i.e., Voronoi and Delaunary tessellations, are taught in the context of the first and the third sections of the class.
BioGeometry Courses at Stanford
CS 273: Algorithms for Structure and Motion Biology (Spring 2004; Batzoglou, Guibas, Latombe; Stanford)

Molecular biology is an exciting application area of computer science, because it presents new computational challenges that ultimately advance the field of CS. Proteins, for example, are long macromolecules that can be modeled as chains in three dimensions with rotational degrees of freedom, a given surface area, and kinematic properties. In that respect, computational methods from robot arm movement, computational geometry, and dynamic simulations, are relevant to the modeling of proteins. However, proteins are vastly more complicated than typical robot arms, and have a complex surface that interacts with the environment. Traditional computational methods have to be modified, or give way to new techniques that are appropriate for the novel challenges of modeling proteins.

This course covers algorithms for modeling structure and motion in biology. It is a course about exciting new algorithms that are motivated by the challenges we face in modeling macromolecules and predicting their properties in silico. We cover biology concepts as needed to present the algorithmic material in context. As this is a relatively new field, many of the methods are currently in development, and the structure of the course reflects that fact.

SSB 228: Computational Structural Biology: Protein Simulation and Structure Prediction (Winter 2001, an online course in subsequent quaters; Levitt; Stanford)

Computers now play a central role in biology, in that they provide platforms to simulate and analyse complex biological systems and processes. Nature is still far ahead of what we can do with computers: for example, while protein sequences spontaneously fold into their native structures, simulation of this process is still well beyond present computer power. The central goal of the computational structural biology course SB228 is to provide an overview of the current impact of computers on our understanding of protein structure and dynamics.

The main topics discussed during the course include: I. Principles of protein structures; II. Energetics of protein structures; III. Protein simulations; IV. Protein Structure Prediction; IV. Large scale genomics projects.

Modeling softwares, modeling web servers, as well as state-of-the-art computer experiments on solving the protein structure prediction problems, are discussed.

During winter 2001, the ten plenary lectures of SB228 were filmed, and stored on video by the Stanford Center for Professional Development. Since then, SB228 has been offered as an online course. The online version of the course consists of two parts: the recorded lectures, and the online material (handouts and assignments).

CS 468: Introduction to Computational Topology (Fall 2002; Zomorodian; Stanford)
  The emerging field of computational topology utilizes theory from topology and the power of computing to solving problems in diverse fields. Recent applications include computer graphics, computer-aided design (CAD), and structural biology. In each case, we are interested in understanding the intrinsic shape of some real or abstract space. The primary goal of the course is to present basic concepts from topology and Morse theory to enable a non-specialist to grasp and participate in current research in computational topology.
An Introduction to Bioinformatics Algorithms (Pevzner)
  This is a resource for undergraduate bioinformatics education. The site includes links to courses at UCSD and WHOI-MIT, powerpoint presentations, bioinformatics problems, sample implementations, and a list of professors who teach bioinformatics courses worldwide. It's based on the book Introduction to Bioinformatics Algorithms by Pevzner and Jones.
The Bio eBook: Technical Notes on Biocomputing by Patrice Koehl


Recommended Literature
The broad approach to problems in structural biology based on methods in algorithms, geometry, and topology is novel and requires a novel combination of skills and knowledge. We recommend introductory literature in four broad areas: