Computational Biology

Learn and apply a breadth of skills to tackle intriguing problems like RNA folding and genome reconstruction.

What is Life?

DNA Fingerprints

How Big is a Genome?

Protein Origami

Information and Order

Dogmatic Structures

DNA Composition

Programming Gene Expression

Universal Translator


Reading our own Blueprints

DNA Forensics



How to Fold a Molecule

Finding Palindromes

RNA Folding

Nussinov Algorithm

Folding with Information

RNA World

Folding with Randomness

Course description

This course was written in collaboration with quantitative biologists and biophysicists from leading research groups at Caltech and Duke. Computational biology merges the algorithmic thinking of the computer scientist with the problem solving approach of physics to address the problems of biology. Since the year 2000, an ocean of sequencing data has emerged that allows us to ask new questions. Here we'll develop intuition for a selection of foundational problems in computational biology like genome reconstruction, sequence alignment, and building phylogenetic trees to look at evolutionary relationships. We also address certain physicochemical problems of molecular biology like RNA folding.

Topics covered

  • Algorithms (Python)
  • Ancestry
  • Data Analysis (Python)
  • DNA Sequencing
  • Forensics
  • Genetics
  • Genotyping
  • Molecular Biology
  • Mutual Information
  • Nussinov Algorithm
  • Protein Folding
  • RNA Folding

Prerequisites and next steps

You should have a basic understanding of programming with Python and knowledge of fundamental programming structures, including functions and loops. A working knowledge of thermodynamics would help but is not necessary.


  • Introduction to Algorithms
  • Programming with Python