Summer programming begins with an intensive, one-week coding workshop that is also open to community members broadly. The workshop is composed of two days on basic Python operations, code reposition using git, and bash shell functions, then three days on image processing using Scikit-image libraries. Participants are situated within the room to encourage collaboration with neighbors and are presented with a problem at the beginning of each major portion of the workshop that can be addressed with the functions and tools they learn. By the end of the workshop, participants are able to write scripts to count the number of colonies on a plate and to track the progression of a titration over time using a handful of basic image processing functions.
Following the coding workshop, scholars enter four weeks of pair programming divided into two-week sessions. Scholars receive a common challenge at the beginning of each session that they discuss and ask questions about. From that discussion, they determinggoals for what the group would like to achieve by the end of the two weeks. Scholars learn about pair programming and are divided into pairs to devise and implement their own strategy for solving the problem. Each day the group holds a stand-up meeting to report on progress and daily goals. At the end of each week, code is pushed to a common repository and teams print out and annotate each other’s code for review. The code reviews help pairs set their goals for the following week or wrap up their code depending on which week of the project they are in. In the second two-week session pairs are reassigned and the same routine is repeated.