CS580 - programming for the life sciences

Announcements:

Welcome to CS580!

Description

Biology is becoming more and more a quantitative science, requiring the analysis of large amounts of data. While off-the-shelf programs are available for a large variety of computational tasks faced by practitioners in the life sciences, one sometimes needs to extract data, or manipulate the data in some way that is not provided by available software. The ability to write programs is empowering, removing a researcher’s dependence on having software that precisely matches his or her needs. Programming will be presented using python which is a simple and easy to learn programming language, with programming problems that are inspired by the types of problems encountered in analyzing biological data, e.g. sequence or gene expression data. Much of the software which is developed for the analysis of biological data is provided as Unix/Linux command-line tools. Students in the course will learn the basics of Linux and how to use such tools.

In addition to learning how to program, students will learn to think algorithmically. Many biologists use programs such as BLAST or GenScan without understanding how the underlying algorithm works. The course will present algorithms such as sorting algorithms, and algorithms for tasks such as motif finding, and will develop students’ algorithmic thinking so they can better understand the programs they use.