The course equips the students with a solid basis of computer programming, and exposes them to major themes in computer science such as digital architectures, algorithms, complexity and more. The course uses Java as a first programming language, and emphasizes object-oriented software development
Python is one of the leading programming languages for scientific research, data science, and machine learning. The course will familiarize students with the Python scientific stack, including NumPy, SciPy, Matplotlib, and Pandas, and best practices for scientific computing. Every class will present a scientific problem, a method for solving it, and an implementation in Python. Examples will include how to model the spread of infectious diseases, find stationary points for a predator-prey equation system, identify an object in an image, calculate the extinction probability of a rare mutation, analyze results of a tennis game, and plot a map of hurricane density.
Students will present papers that address modelling and data analysis in the context of biology. We will talk about discrete- and continuous-time dynamics, both stochastic and deterministic. We will see, though the review of literature, how to apply such models to understand and study ecology, evolution, genetics, epidemiology, and behaviour.