Ch. 1 | Sequence Alignment | |

9/08 | Course introduction | Slides |

9/13 | Edit graphs, principle of optimality, introduction to the alignment algorithm | Slides, Notes, Board |

9/15 | Global alignment algorithm, scoring function, dynamic programming table | Notes, Board |

9/20 | Runtime of global alignment, local alignment algorithm | Notes, Board |

9/22 | Runtime of local alignment, gapped alignment | Notes, Board |

9/27 | Global alignment with linear vs. affine gaps | Notes, Board |

9/29 | Dijkstra's algorithm, example of affine gap alignment | Notes, Board, Example |

10/04 | Markov chains, sequence homology, protein alignment, information theory | Notes |

10/06 | Guest lecture by Professor Neil Sarkar | Slides |

Ch. 2 | Combinatorial Pattern Matching | |

10/11 | Deterministic finite automata for pattern matching | Notes, Board |

10/13 | The failure function | Notes, Board |

10/18 | Computing the failure function | Notes, Board |

10/20 | Regular expressions and deterministic finite automata | Notes, Board |

10/25 | More on regular expressions | |

10/27 | Exam | |

11/01 | Introduction to suffix trees and the notion of preprocessing | Notes |

11/03 | Constructing suffix trees, space and time analysis of suffix trees | Notes |

11/08 | Linear space suffix trees, introduction to phylogeny | Notes, Slides |

Ch. 3 | Phylogenetic Trees | |

11/10 | The UPGMA algorithm | Notes, Reading |

11/15 | The neighbor joining algorithm, phylogenetic footprinting | Notes, Slides |

Ch. 4 | Hidden Markov Models (HMMs) | |

11/17 | Review of Markov chains, introduction to HMMs | Notes, Reading |

11/22 | HMMs as generative models, the evaluation problem, the forward algorithm | Notes |

11/29 | The forward algorithm for evaluation, the Viterbi algorithm for decoding | Notes |

Ch. 5 | Genome Assembly | |

12/01 | Introduction to the genome assembly problem | Notes, Slides |

12/06 | De Bruijn graphs, the Idury-Waterman algorithim | Notes |