Courses taught at Carnegie Mellon University:
Algorithms classes:
- Fall 2022: 02-[46]14 String Algorithms
- Fall 2020: 15-351 Algorithms and Advanced Data Structures (with Jian Ma)
- Spring 2020: 02-414, String Algorithms
- Fall 2018: 15-451, Algorithms (with Danny Sleator)
- Fall 2017: 15-451, Algorithms (with Danny Sleator)
- Fall 2016: 15-451, Algorithms (with Danny Sleator)
- Fall 2015: 15-351, Algorithms and Advanced Data Structures
- Fall 2014: 15-351, Algorithms and Advanced Data Structures
- Spring 2014: 02-713, Algorithms & Data Structures for Scientists
- Fall 2013: 02-714, String Algorithms
- Spring 2013: 02-713, Algorithms & Data Structures for Scientists
Programming classes:
- Fall 2021: 02-601, Programming for Scientists
- Fall 2015: 02-201, Programming for Scientists
- Fall 2014: 02-201, Programming for Scientists
Other classes:
- Spring 2019: 02-251, Great Ideas in Computational Biology (with Phillip Compeau)
- Spring 2018: 02-701, Journal Club
- Spring 2017: 02-701, Journal Club
- Spring 2013: 03-713, Bioinformatics Data Integration Practicum
Courses taught at University of Maryland, College Park:
Unfortunately, most of these links no longer work.
- Fall 2011: CMSC 858S/701, Computational Genomics
- Fall 2011: CMSC 423, Bioinformatics
- Spring 2011: CMSC 858M, Computational Evolutionary Dynamics
- Fall 2010: CMSC 423, Bioinformatics
- Fall 2009: CMSC 858L, Networks Algorithms for Biology
- Fall 2009: CMSC 451, Design & Analysis of Computer Algorithms
- Spring 2009: CMSC 858L, Graphs and Networks in Computational Biology
- Fall 2008: CMSC 451, Design & Analysis of Computer Algorithms
- Spring 2008: CMSC 420, Data Structures
- Fall 2007: CMSC 858L, Graphs and Networks in Computational Biology
Lectures
All slides by Carl Kingsford unless noted. Often the material for a lecture was derived from some source material that is cited in each PDF file.
Bioinformatics Lectures
Introduction to Computers and Biology
Exact String Search
- Z-Algorithm
- Knuth-Morris-Pratt and Boyer-Moore (a)
- Seminumerical String Matching
- Multiple Pattern Search (a)
Dynamic Programming & Sequence Alignment
- Introduction to Dynamic Programming (b)
- More Dynamic Programming Examples: Subset Sum & Knapsack (b)
- Global Sequence Alignment
- Local Sequence Alignment
- General & Affine Gap Penalties [examples]
- Multiple Sequence Alignment
- Linear-space Sequence Alignment (a)
- “4 Russian’s Speedup” (a)
Genome Sequencing & Assembly
- DNA (Sanger) Sequencing & Lander-Waterman Statistics
- Introduction to Graphs (b)
- Genome Assembly Paradigms
- Comparing Whole Genomes with MUMmer
Data Structures for String Queries
- Introduction to Trees (b)
- (Optimal) Binary Search Trees (b)
- Suffix Tries & Trees [paper]
- Suffix Arrays (including Skew Algorithm) [examples]
- Applications of suffix trees
- Burrows-Wheeler Transform [examples, paper]
- Wavelet Trees (a)
Structural Biology
Pattern Discovery
- Motif Finding with Gibbs Sampling [paper]
- Bacterial Gene Finding
- Hidden Markov Models and Eukaryotic Gene Finding [examples]
- Profile Hidden Markov Models
Phylogenetics
Clustering Biological Networks
- Yeast 2-hybrid
- Other Interaction Experiments
- Function Prediction
- Network Modularity (a)
- Clustering via Minimum Spanning Trees
- Kernighan-Lin Graph Partitioning & Clustering via Distances (a)
- MCL and Other Graph Clustering (MCODE, RNSC) (a)
Aligning Biological Networks
- PathBLAST (a)
- Alignment via Color Coding (a)
- IsoRank (a)
Random Models of Network Evolution
- Models of Network Evolution (a)
- Attack vs. Failure Response (a)
- Network Motifs & Symmetry Breaking (a)
Computer Science Background Lectures
Basic Data Structures
Other Data Structures
Interval & Spatial Data Structures
- Quadtrees (PR, MX, Point)
- kd-Trees
- Searching in kd-Trees
- Range Trees
- Interval Trees
- Finding Closest Pair of Points
Programming Languages
Network Flow Algorithms
- Network Flows
- Bipartite Matching
- Edge-disjoint paths
- Flows with Demands, etc.
- Shortest paths with negative weights