Modeling Biological Populations

Syllabus

Modeling Biological Populations

Course Number: AS.020.313
Schedule: Intersession 2023, Tues, Weds, Thurs 01:00 PM - 05:00 PM
Location Homewood Campus, UG Teaching Lab (UTL) 189
Office Hours: Tues, Weds, Thurs 12:00 PM - 1:00 PM, or by appointment; UTL 189

Instructors:
Andrew Bortvin abortvi2@jh.edu
Sara Carioscia Saracarioscia@jhu.edu

Course Description

Population biologists study the dynamics of how populations behave and change, but these processes are often too complex for direct observation. Computational tools are therefore essential to the study of biological populations, as they allow for study across time scales far beyond what can be observed. Students will be introduced to computational biology, using the fundamentals of coding in the Python programming language. We will apply this code in developing simulations of biological populations, including invasive species and cancerous tumors. Students will enact and observe the effects of various parameters (e.g., mutation, environmental pressure, behavior, random chance) on their populations. We will also explore how these models can be applied in other fields, and how biology makes use of models from fields including linguistics and economics. Upon completing the course, students will be prepared to independently continue learning more advanced programming concepts. Prior programming experience is not required. Students from all departments and at all levels (including first-year undergraduates) are welcome.

Class Structure

Class Organization
Each class will be divided between lectures covering biological principles, live coding where we teach programming in Python, and in-class completion of assignments. For live coding, we will offer two sections, one of which focuses more on coding fundamentals and syntax, and one which moves at a faster pace and covers more biological implementation for students comfortable with programming.

As this is a longer class, we will take breaks between sections. Feel free to bring snacks or drinks.

Assignments
Each day, we will reserve time to work on in-class assignments, which will primarily focus on implementation of population models in Python and conceptual questions regarding the theory behind population biology. Each assignment will consist of a series of basic and advanced exercises. We expect all students to complete the basic exercises, which will focus on the models we explicitly discuss in class. Advanced exercises are optional and will allow students to extend the models we cover in class. We encourage all students to try advanced exercises, as they will contain many of the most exciting biological concepts that we will cover.

For this course, we will be using Google Colab both for live coding during class as well as completing exercises/assignments during and after class. To submit assignments, you can email the instructors a link to your notebook. If you have previous coding experience and are more comfortable using a local Python installation, feel free to do so. If you run Python locally, please submit a copy of your scripts along with all output and text files with written answers, when appropriate.

You are welcome to work together in small groups, and collaboration is encouraged. Likewise, we encourage you to seek answers online when encountering. However, please refrain from just copying someone else’s code – you should understand and be able to explain every line of code in your scripts.

Schedule

Class Number Date Topics Covered
1 1/10/23 Population Growth Models: Exponential and Logistic Growth
2 1/11/23 Two Population Models: Mutualism, Competition, Predator/Prey Dynamics
3 1/12/23 Population Genetics: The Basic Wright-Fisher Model and Biological Simulations
4 1/17/23 Population Genetics: Wright-Fisher with Modification
5 1/18/23 Independent Work: Develop Your Own Models
6 1/19/23 Independent Work: Develop Your Own Models (Part II); Models from Other Fields

Grading

This course will be graded Satisfactory/Unsatisfactory, and individual assignments will be graded on reasonable completion (rather than accuracy of results). In each assignment, we will specify items to include in your submission; the assignment score will be the fraction of items completed. To achieve a Satisfactory, you must have an average of 70% completion across the assignments.

All assignments will be due at the end of the course period (1/19/23). However, please submit your work at the end of the day - we will look at your work in progress, provide written feedback, discuss any questions or opoprtunities for improvement, and let you know estimated percent completion.

Office Hours

We will host office hours every day prior to the start of class (12:00 PM - 1:00 PM) in our classroom, UTL 189. If this time does not work for you, please reach out to us and we can find alternative times for individual meetings.