Programming

Tutorials

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:

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 Colab notebook code from class
  • Day 2: Image segmentation: admiring wildebeest herds Image link
  • Day 3: 1D diffusion and FRAP in-class code
  • Day 4: Stochastic simulations: mRNA production and degradation in-class code
  • Day 5: Algorithmic beauty in natural pattern: part I (automata): habitat image 1 habitat image 2 Useful symbols: โ– โ–กโฌ›๐ŸŸฉ๐ŸŒ˜๐ŸŒˆโ•ฑโ•ฒโ˜•๐Ÿต
  • r30={โ€˜โ– โ– โ– โ€™:โ€™โ–กโ€™, โ€˜โ– โ– โ–กโ€™:โ€™โ–กโ€™, โ€˜โ– โ–กโ– โ€™:โ€™โ–กโ€™, โ€˜โ– โ–กโ–กโ€™:โ€™โ– โ€™, โ€˜โ–กโ– โ– โ€™:โ€™โ– โ€™, โ€˜โ–กโ– โ–กโ€™:โ€™โ– โ€™, โ€˜โ–กโ–กโ– โ€™:โ€™โ– โ€™, โ€˜โ–กโ–กโ–กโ€™:โ€™โ–กโ€™};
  • Day 6: Algorithmic beauty in natural pattern: part II (e.g. embracing lizards)
  • Day 7: [no coding session: enjoy your evening!]

Templates for some code setups:

External resources

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