What are tutorials?

Tutorials are weekly sessions hosted by the head GTAs on Monday evenings from 7-10pm in Chen 100. They are designed to supplement the rest of the course (lectures, recitations, and office hours), largely by introducing key computational skills relevant to each week’s content.

Why is there programming in an introductory biology course?

Computational skills are increasingly important in modern bioscience. Thus, many homework problems ask you to write code to perform calculations, simulations, and analyses. In turn, this allows us to get you working with real experimental data, which is typically a benefit only afforded to students in labs or higher-level courses.

What about ChatGPT?

Tools like ChatGPT and Copilot are fantastically powerful and constantly improving – and increasingly part of the modern programmer’s workflow. However, from a teaching perspective, there’s little value in just generating code off-the-cuff. Hence the short answer is that while we think these tools are great and useful to employ in other parts of your life, for the purposes of this class their use is prohibited. See the Generative AI Policy for complete guidelines and a note on possible exceptions.

Do I need prior programming experience?

No! In fact, you will probably find tutorials more useful the less you already know. There is no CS prerequisite for the course; therefore, tutorials cover everything you need to succeed on the programming assignments. The goal is to introduce you to the fundamentals in a relaxed, low-pressure environment.

What if I already feel comfortable programming?

If you already feel prepared to tackle the programming questions, feel free to only attend the tutorials you want/need. Remember that some of your classmates have never written a single line of code before this class! We encourage you to help each other learn.

What programming language(s) can I use?

For a combination of pedagogical and logistical reasons, all of the programming in the course is done in Python using Google Colab notebooks. It is also the only language and format we accept for homework submissions.

Will tutorials always be about programming?

Some parts of the course call for less programming than others. At these times, tutorials may instead be host to live demos and experiments that build off of themes from class. These sessions will be announced beforehand in lecture so that you don’t miss them.

Will tutorials be recorded?

Tutorials are best attended live, but we will also upload recordings below as the course progresses.

Tutorial Schedule

There is no tutorial the first two weeks. Instead, there are two notebooks for you to explore independently:

  • Tutorial 0: Introduction to Colab covers our approach to programming in this course, including instructions on how to submit your homework correctly.
  • Tutorial 0: Introduction to Python is a gentle, abridged introduction to the Python programming language. It’s far from comprehensive, but if you’re new to the subject, it pairs well with the other tutorials below.
Week Date Topic Links
3 April 17, 2024 Computational sequence analysis. [sushi samples] [fish reference] [recording]
5 April 29, 2024 Stochastic simulations for population genetics. [tutorial recording] [tutorial notebook] [supplementary plotting notebook]
8 May 20, 2024 Working with images. [tutorial recording] [tutorial notebook 2, image segmentation & analysis] [tutorial notebook 1, glob]
9 May 29, 2024 Fitting functions and tabular wrangling. [tutorial recording] [tutorial notebook]

External Resources

Below is a list of useful online resources for learning the Python programming language and principles of programming in general.