582670 Algorithms for Bioinformatics (ohtk 25.8.2011)

Principal theme Prerequisite knowledge Approaches the learning objectives Reaches the learning objectives Deepens the learning objectives
exhaustive search / branch-and-bound and motif finding some programming skills can explain what motif finding is and program an exhaustive algorithm for it learns how to use the techniques in the context (e.g. motif finding) studied at the course can apply branch-and-bound techniques to new problems in bioinformatics
greedy algorithms and genome rearrangements some mathematical thinking understands how permutation sorting is connected to genome comparison, and can simulate a greedy algorithm for sorting by reversals learns how to use the technique and approximation analysis in the context (e.g. genome rearrangements, shortest superstring) studied at the course can apply greedy algorithms and their analyses to new problems in bioinformatics
dynamic programming, sequence alignment, and sequence-based phylogeny some mathematical thinking can manually fill a dynamic programming matrix given the recurrence learns the idea of computing sequence alignments and sequence-based phylogenetic trees by dynamic programming can develop new dynamic programming algorithms for different variants of sequence alignment and analysis problems
graph algorithms and DNA sequencing some mathematical thinking can simulate one of the reductions to graph problem studied at the course learns the connections of graph algorithms to DNA sequencing (e.g. sequencing by hybridization, interval graphs, shortest superstring) can reduce new bioinformatics problems to problems on graphs
clustering and phylogeny some mathematical thinking can simulate a clustering algorithm for distance-based phylogeny learns UPGMA and neighbor joining clustering algorithms and their connection to distance-based phylogeny can prove theorems on neigbor joining analysis
Python programming some programming skills can modify a given simple Python program to do something similar learns the basics of Python in order to solve simple script-like programming exercises turns easily any algorithm pseudocode into Python code
28.08.2011 - 19:13 Jyrki Kivinen
18.02.2011 - 18:15 Veli Mäkinen