Course Director: Dr. Chris Bailey-Kellogg
- Course description: This course seeks to provide broad exposure to some important computational challenges and approaches in bioinformatics: analyzing biomolecular sequences (what genes encode an organism, and how are genes related across organisms?), structures (what do the proteins corresponding to these genes look like, and what does that tell us about how they work?), and functions (what do these things do, and how do they interact with each other in doing it?). The course is application-driven, but focused on the underlying algorithms and information processing techniques, employing approaches from search, optimization, pattern recognition, and so forth. In particular, the course takes the approach of “open up the hood and tinker” or even “rebuild the engine”. Topics are motivated by important biological problems for which there generally already exist tools that one could use. But we actually dig in and learn how those tools work, implementing in Python core components, variations, etc. By analogy, rather than teaching you how to use a search engine, this course would have you implement PageRank, the fundamental algorithm that spawned Google.
- Dartmouth Coursework: CS 1 & CS 10
- CS 1 covers python and an intro to programming techniques. CS 10 covers a wide range of algorithmic approaches and data structures (e.g., trees and recursion; graphs and search; etc.). Since assignments are in python, students should be well familiar with it or a similar-enough language that they can quickly just change syntax. Equally importantly, they should be comfortable with the general algorithmic and data structure concepts covered in standard second-level CS courses like CS 10.