Teaching basic lab skillsfor research computing

Feedback from UC Berkeley

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.

The Good

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.]

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