University of Oxford Logo University of OxfordSoftware Engineering - Home
On Facebook
Follow us on twitter
Linked in
Linked in
Google plus
Google plus
Stumble Upon
Stumble Upon
Algorithm Design and Complexity

This is one of the bioinformatics courses offered by the Oxford Bioinformatics Programme that can also be used as credit towards a postgraduate qualification in software engineering. You can register for this course at the Bioinformatics Programme's own website.

Course dates

No future courses planned.


The course is intended as an introduction to the some of the key algorithms used in modern bioinformatics, and to the computational complexity issues that arise in the analysis of biological data.


  • The Algorithm Design Process
  • Problems, Specifications, and Algorithms
  • Efficiency: time and space complexity, Big O notation
  • Searching in Sequences/ Comparing Sequences/ Molecular structure
  • Boyer-Moore and Knuth-Morris-Pratt algorithms, Heuristics: Blast and Fasta
  • Dynamic Programming, Statistical Alignment, Hidden-Markov-Models
  • Multiple sequence alignment
  • Secondary structure prediction, determining structure, Predicting structure
  • Feasibility
  • Appropriate technology, Moore's Law
  • NP Problems, NP-completeness, examples


The course is aimed at researchers and others from pharmaceutical companies, biotech companies, research institues and universities who are using or developing computational tools for biological data. Elementary programming skills are assumed, and the course is designed to help you build on these by developing an understanding of design principles and efficiency issues. The course will be valuable to people with a wide range of backgrounds, including molecular biology, bioinformatics and IT, who are or will be involved with the development of bioinformatics software. A basic knowledge of the kinds of software tools currently used by biologists (e.g., BLAST) would be an advantage.