Last weekend we held a bootcamp at the University of California, Berkeley, that was targeted for environmental scientists and ecologists. We had a great group of attendees (31 registered, 28 at start, and 24 at end) and instructors/helpers, and, as a major bonus, had no major technical or logistical emergencies to deal with (but see below for some minor ones).
Before the workshop, we had participants fill out a brief pre-workshop survey that we set up on Google Drive. The idea was to gather some initial impressions that would help us tailor the workshop content. We learned a few particularly useful tidbits from this exercise. First, about half the attendees had tried Python before and half had never used it. Second, nearly a third had used some form of version control before (big surprise), and half of these had used Git. Third, the most requested topics, by far, were related to importing and manipulating different types of data and to integrating Python with R and/or ArcGIS.
As for feedback, we once again had the students use the Etherpad at the end of each day. On the first day, we asked three questions: What was Good, What was Bad, and What Lingering Questions were left. This last question turned out to be very useful, as the instructors and helpers dutifully wrote lengthy responses to all of these questions on the morning of the second day. You can see how this played out on the raw text archive of the Etherpad. We then repeated the Good and Bad questions at the end of the second day. Below is the feedback summarized across both days. We asked each attendee to try hard to come up with a unique comment each day, and to also add +1 to other comments that they agreed with.
- Well-structured / Good organization +12
- Very good to have helpers to avoid getting stuck +11
- Self-contained examples and exercises +10 [Ed: We provide "empty" IPython notebooks for live coding and also "complete" versions, with all the answers, for later reference.]
- Learning about folder stuctures and good workflow habits was incredibly helpful!! +10 [Ed: we capped the workshop with a "reproducible workflow" lesson that required students to use all the skills they had learned]
- This should be extended to a full-semester course, all 1st-year grad students should have to take it +6
- Pace +5
- Excellent overview of many topics +5
- Interactive +3
- Intro to git - i feel like i have what i need to go for it +3
- Good clear explanations +2
- Etherpad +2
- Great to see what is possible to do with the tools we've learned +2 [Ed: For some inspiration, I showed a bigger project at the end that applied the skills we taught in a more complex setting.]
- Emphasis on the goals of producing reproducible work efficiently rather than on specific programming skills +2
- Smart, experienced, helpful teachers +2
- It filled in a lot of holes that I had from learning everything on my own +1
- Great to actually set up the SSH for github or bitbucket +1 [Ed: unfortunately, most people had some sort of problem getting this set up - in the future, we suggest using https in a bootcamp setting.]
- Bash help was really clear
- Places to go for more info were provided
- Understanding the links between the utility of Python and my research
The Bad or Confusing
- Small desks +8 [Ed: We were in a "standard" classroom with individual chairs and attached desks.]
- The bash/unix part was slow and thin, python part was thick and (too) fast +8
- Learning everything on a linux virtual machine on a windows PC is not super efficient in the long run, since i will either be running this on a pc or will learn how to actually use linux +5 [Ed: we steered all Windows users to a Linux VM since the instructors didn't really feel capable of supporting or troubleshooting a Windows stack.]
- Feels like we've spent a lot of time but just scratched the surface of programming in python (might be helpful to also have a step 2, i.e. a next level course some time soon) +3
- Too fast overall +3
- Maybe separate into two weekends or three days? A little bit too intense +3
- Maybe it could be useful to have something read before the workshop so we could all be in a similar level +2
- My brain hurts (eyes too) +1
- The room is kind of cold? Need more coffee? +1
- Hard to process everything at once +1
- Unsure how much I can alter my workflow now... +1
- If you have any issues along the way it is hard to catch back up +1
- By the time we got to testing i was brain dead....would be nice to do that earlier +1
- Not bad, but would be helpful -- a brief tutorial on piping I/O between programs +1
- Some terminology is used that we might not be clear on. not always clear which terms are key to understand and which aren't +1
- Should set up guest additions and shared folders for virtual machines before hand on windows
- More overview of other langs and why/when to use python
- Need more time for exercises
- A good overview of file manipulation operations in bash; covering examples of common workflows would be helpful...
- Too much time spent on troubleshooting installations; perhaps provide pipelines for each person to test their installations prior to arrival?
- The range of abilities is probably frustrating for people on both ends of the spectrum, too slow or too quick
Thanks to instructors Karthik Ram and Geoff Oxberry and helpers Matthew Brett and Jessica Hamrick.