#swc Reflecting on my first bootcamp

This week, I was asked to help out with one of Software Carpentry‘s bootcamps at NYU. If you are a twitter follower I encourage you to check out the stream of #swc tweets that went out over the past couple of days.

I had heard of Software Carpentry (SWC) before, and I had used some of their tutorials listed on their site. As a side note, if you are interested in learning more about programming, SWC has a great library of tutorial videos on a range of subjects, from the basics of the shell and version control to regular expressions and program design. What is great about these videos is that you can either watch them (with audio and video) or you can read through with slide images and a script. I think this is great for self directed learning.

As a helper, I was supposed to help the people taking the bootcamp with any issues/troubleshooting. I was admittedly nervous about this, because although I was helping out in the R room, there are a number of other topics covered during the workshop. The SWC bootcamps typically cover four main areas of programming skill: the shell, Python/R, Git and GitHub, and SQL. While I am fairly comfortable with programming in R and using GitHub (I typically use the GUI), my only experience in the shell is when I learned the basics of navigating through directories from one of the SWC tutorials and I had never used SQL before.

When I relayed my concerns over how useful I would be as a helper to the two instructors, they reminded me that some experience is typically better than none. Also that my experience with programming has lead to my being able to work through fixing problems faster than people who are new to it.

Overall I felt like the SWC bootcamp was a great experience. Based on some of the feedback that the instructors got, it seems as if most of the participants also found the material both helpful and interesting. Most everyone learned something new, even if it was only about how to structure code in an organized and logical manner.

I will admit that I was a bit surprised by the content of the bootcamp. My expectation going in was that there was going to be a bit more actual coding in R than there was. In all we wound up spending about 3 hours (quarter of the total time) actually doing things in R. About equal time was then split between shell, git, and sql. Even though it was different than my expectation (and I was a little disappointed because I enjoy R coding so much) I thought that the workshop was wonderful. Everyone came away with at least some understanding of how to do things in the shell, a base knowledge that you can make files and run scripts all in the shell, an account with GitHub, ow to initialize and use git repos, understanding of data structures and manipulation of data in SQLite database manager, and how to run queries on your data to select subsets.

During the R portion of the workshop, participants were taught how to approach problem solving as a programmer. I think one of the good things that was done in this bootcamp was that creating custom functions was at the forefront of the lesson. In addition, the instructor showed how organizing their functions in a modular manner, building functions that complete small tasks and then wrapping these functions into another larger function,  makes life easier. I thought that it was an especially useful introduction, especially since the group of participants tended to skew towards the novice level of programming knowledge.

Also, while I feel like they could have covered a bit more of what can be done with the R programming language, the instructors were able to use their course materials as examples in the git/GitHub portion of the bootcamp, so not only do all the participants have access to the (open source) teaching materials on the GitHub page, but they have a cloned copy of the repository locally on each of their machines. With the skills that they were taught in the two-day workshop they should now feel comfortable enough with the material to continue learning on their own. Looking through the material provided by the instructors there is enough there such that anyone who wants to learn more about programming in R can get quite far on their own.

I really liked being a part of the SWC bootcamp, and all the people involved were great. I am definitely going to have to be on the lookout for more opportunities to become a part of the organization.

This entry was posted in LeaRning R, Software Carpentry and tagged , , , , . Bookmark the permalink.

5 Responses to #swc Reflecting on my first bootcamp

  1. C. Eliot says:

    Thanks for your help, Jon. I too was surprised that we didn’t get further with R. Since I’d already done most of Roger Peng’s very good Coursera course on R, though, and could do basic things on the shell, moving from initial exposure to basic comfort with SQL and git was valuable, as well as a different take on aspects of R and shell. And most usefully, the instructors emphasized how those four tools all work together. It got a little slow at times, and I know some participants who’d spent time in R were frustrated, but it’s one thing to learn about R, and another thing to think about it as part of well-constructed workflows, and we got a lot of that. Anyway, thanks again.

    • Jon Borrelli says:

      Yeah having a solid workflow is an important part of organized and reproducible research. Perhaps in the future though, they will be able to do for R what they do for Python, and split the room into a more advanced and more beginner groups. I guess since R is still relatively new, the Software Carpentry people have just not gotten there yet.

      • C. Eliot says:

        Sounds right — One suggestion I’d make is that the advertising for the course was vague about what kind of experience levels it was suitable for. It recommended familiarity with programming concepts like for loops and functions, but someone could understand those and yet have no experience working with any of the tools discussed. Or they could already be (like a few participants who didn’t come back for the second day) already coding for data analysis at a moderately high level. To address the variation, the instructors went back to basics. But that meant it felt to me like we didn’t get as far as we could, in relation to what the instructors are experts on.

  2. sarahsupp says:

    Great summary @JJ_Borelli! You were a fantastic helper. And thanks for coming @C.Eliot! I always feel like we could get so much further, but I’m glad that you were still able to get something out of the workshop. One challenge is that people are usually poor at self assessment, so even if we set expectations or ask for self surveys, people are often less (or sometimes more) advanced than they think they are. And since we teach so many different topics, it is common for one learner to be advanced at shell commands, but unfamiliar with version control, or vice versa. There doesn’t seem to be a “one-size-fits-all” solution to the wide range of class types, learner backgrounds – and every boot camp is different.

    As an instructor, my main motivation is to have learners leave excited about the tools, feeling like all the programming concepts are accessible and ready to learn more. In my experience, many scientific institutions are still far behind in teaching computational toolkits, and novices often don’t feel that they have the time or the skills to succeed in learning them. So when I teach, I do tend to err on the side of going back to the basics, rather than jumping ahead (although this has the unfortunate consequence of feeling slow to more advanced learners, I would feel much worse if someone left saying “This is too hard and I can’t do this!”). I have taught at workshops where we can break the room into novice vs. intermediate, but this only works if it is a larger workshop, and it still has some issues with learners’ varying familiarity with each of the 4 main topics. The R materials are still very much in development; I have a lot of ideas about some things that might work better next time, and a few places I probably could have gone through more quickly. We are always excited to hear feedback, so thanks! 🙂

    • Jon Borrelli says:

      Well said Sarah! I like that bootcamps are so flexible, and it will be interesting to keep an eye on the materials to see how they adapt to more instructor’s experiences.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s