Software Carpentry: Day 1, Part 2

Titus taught Part 2 of the first day of the workshop. We turned from shell topics to Python programming. We taught using the IPython Notebook, which was great for programming, but awful (as usual) for installation.

The Installation

We required all Mac users to install Anaconda, so that they could install ipynb relatively easily through Anaconda. PC users had to install VirtualBox and use a virtual machine with a Linux OS (where ipynb was preinstalled). We ran into quite a few problems with the VM situation, because they were just *too slow* on people’s 7-year-old laptops. One straightforward solution would be to teach how Titus does usually: use an Amazon cloud instance and have all students ssh in. This solution, however, costs money.

Introductory Python

Titus then covered topics like ints, strings, and floats. The Python lesson was cut a bit short cause we had to spend a while making sure that everyone had a working version of ipynb. The major problem we encountered was that students were confused about the differences between bash scripting and programming in Python.

This slideshow requires JavaScript.

Successes: The IPython Notebook was an excellent teaching tool that allowed people to start programming right away.

Recommendations: Find a way to use the Amazon cloud both for teaching and for lab work in general. It costs money, but it really appears to be the best way to go. We didn’t have enough time in the afternoon to do anything *really* cool with Python, so people didn’t see *why* we were teaching them the new language.


3 thoughts on “Software Carpentry: Day 1, Part 2

  1. It is true that amazon cloud costs money, but a couple of large instances for 2 days costs about USD 30 (assuming you leave them running 24 hours). Far less than the cost of providing coffee. I’m assuming that for most courses, you could allocate several students to an instance, not one instance per student.

    • It’s true that using amazon cloud for the length of the workshop wouldn’t cost too much. I’m more concerned with getting students ipynb in a workable environment for their *everyday* use. Maybe the job of providing the right computing resources is the job of the university or research institute, though.

  2. I kinda think it’s our fault (as in me and other software professionals). As Titus Brown says in companion article: “we all suck”. Sorry about that.

    I’ve been struggling with “provide a nice teaching environment” versus “teach them to use the real-world environment”. And I don’t really have any good ideas. “installing random stuff of the internet” is definitely a skill, and a marketable one at that (it’s part of what I get paid for to a greater or lesser degree), but frankly, it’s not a very interesting skill, and it would be better if scientists didn’t have to learn it.

Leave a Reply

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

You are commenting using your 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