BIOL 548E: Computer Programming for Biologists

Fall 2025 (Instructor: Darren Irwin)

This is a 1-credit graduate module, with class meetings at 1:00-2:30pm on Tuesdays and Thursdays from Nov. 4th to Dec. 4th. (The one exception is that there is no class on Nov. 11th.)

For students in the course, Canvas will be the main course website (rather than this one). We will be mostly learning from my tutorials at this website:
https://darreni.github.io/JuliaProgrammingForBiologists/

Course description

Virtually all biologists these days use computers to do complex data analyses, but we usually rely on programs written by others. Learning to write our own programs can bring great power and provide much insight—enabling us to conduct simulations of biological processes, conduct statistical tests for unusual situations, and design novel data visualizations. This 1-credit course is designed for biologists who want to learn the fundamentals of how to write computer programs and then apply that knowledge in the context of biological research. We will learn using a relatively new language, Julia, that is designed for high-performance (fast and memory efficient) scientific computing. The core concepts can be applied to any programming language, and there will be some reference to R and Python. Students will come away from the course with the fundamental knowledge needed to write programs to conduct and visualize their own simulations of biological processes. There will be some focus on data analysis as well. We will also learn about approaches to make our code available to others, as a tool for teaching, collaboration, and contributing to wise decision-making.

The course will be designed for beginners to programming, but students with any level of prior coding knowledge are welcome (we can learn from each other :). Biologists from any sub-discipline are welcome. Students will need a laptop during class sessions, as much of the course will be based on live coding exercises. Evaluation will be based on attendance / participation during course meetings and the learning demonstrated by a simulation programming project chosen by each student.