Teaching

Fall 2024, 2025, 2026
COMP2400: Foundations of Programming (Undergraduate level)
Course Description:
Unlock the power of programming and computational problem-solving across scientific, social, and human domains. Whether delving into the depths of historical archives, dissecting literary texts, or modeling intricate biological or economic systems, the ability to effectively create and use software tools is increasingly indispensable across a diverse range of professions and research domains. This class will rigorously teach the foundations of programming and computational thinking motivated by problems from a diverse range of disciplines. The course will be taught in the Python programming language and will start from the very basics with no assumption of prior experience.
Course Thesis:
Across all disciplines it is now essential to know how to effectively use and program computers. Learning to program effectively takes time and practice. Certain best practices make the difference between happy programming and constant headaches. The goal of this class is to give students the time and space to learn and practice the foundations of programming and computational thinking that, while considered vital by computer scientists, are often hurried through in other contexts. Practice problems will come from across a range of disciplines from English and history to biology and economics.
Spring 2024, 2025, 2026
ZOO5890-8: Foundations in Biological Programming (Graduate level)
Course description:
Across biological disciplines software is becoming an ubiquitous part of data generation and analysis pipelines. Especially as projects and data become more complex, the ability to conceptualize and write code that is correct, efficient, and maintainable is vital. Luckily, good software development, whether using R, python, or any other programming language, relies on only a few basic principles. The goal of this class is teaching those basic principles. Throughout the semester students will use these techniques to explore (through coding projects) a range of biological software applications such as agent-based modeling, remote sensing, and basic image processing. No prior experience with programming is expected. The class will be taught in python but assumes no prior knowledge of the language.