Advanced Computing for Biologists

Instructor: Dr. Ethan White (

Computers are becoming increasingly essential to the study of all aspects of biology and an increasingly large number of biologists spend a substantial portion of their time writing computer programs to analyze data and simulate the outcomes of biological models. However, most biologists have little formal training in software development, which means that we spend longer than necessary writing our software, it contains more bugs, and it is less useful to other scientists than it should be. This course will teach the concepts, skills, and tools needed to help you build software more productively. It will be based on the excellent Software Carpentry curriculum and will include training in advanced areas including object oriented programming, version control, automated testing, using a debugger, building and interacting with databases using SQL, and using the shell. The course will take a student-centered, active learning, approach to teaching this material. Class will typically consist of a short introductions to programming/database techniques and associated biological problems, followed by hands on computing exercises. The course will be taught using Python for computer programming and SQLite for database management. Students should have at least one prior programming course (or equivalent knowledge of programming), and understand loops (for and while), conditionals (if/then/else), functions, and arrays.