We will explore computational tactics using several tutorials in the course. While we code live together, we will do these using Python Jupyter notebooks hosted on Google Colab, which runs code entirely in your browser/on the cloud so no local configuration is required. To create new notebooks (or save progress) on Colab, you will need to sign into a Google account, so if you do not already have one, please create one before the course.
Optional Python syntax cheat-sheets:
Using the Jupyter notebook | This tutorial will teach you how to write code and text in Jupyter notebooks.
A Primer on Python Syntax | This tutorial will walk you through the basics of programming in Python.
For tinkerers/quite optional local setup: Colab is ideal for our rapid investigations together; it provides a uniform, convenient computing environment for all of us. However, it has limits (specifically, some modest constraints on alotted computational resources, and runtimes that expire after ~24hr). For your future research, you may want the unrestricted speed and control offered by running Python on your own computer. If you would like to set up Python/Jupyter on your own computers, follow Tutorial 0a below:
- Tutorial 0a Setting up Python | This tutorial will walk you through how to install a Python 3.8 scientific computing environment. [Nota bene: Specifically during the bootcamp, if you choose to use your own local Python instead of Colab, please know you accept the fun responsibility of managing the quirks of your local computing environment. Our class setting will limit the ability for us to help troubleshoot package management issues on inevitably-eccentric installations. So we can focus on thinking, we strongly recommend using Colab during our time together, but afterwards encourage you to explore & hack the universe on your own equipment.]
Syllabus for Computational Sessions and Datasets
We introduce you to several techniques, such as numerical integration, image segmentation and plotting with dashboards. The following syllabus is subject to change and will be kept in line with the class:
- Day 1: Exponential growth: numerical integration by Forward Euler
- Day 2: Bacterial growth: image segmentation and linear regression
- Day 3: 1D diffusion and FRAP
- Day 4: Stochastic simulations: mRNA production and degradation
- Day 5: Image processing: Electron microscope images of virions
- Day 6: Exploring real world datasets: Proteomics
- Day 7:
Templates for some code setups:
Below is a list of useful online resources for learning the Python programming language and principles of programming in general.
Probability Distribution Explorer by Justin Bois | Explains various probability distributions and their stories.