Software Carpentry: Day 1, Part 1

This post is going to be a (mostly) chronological description of my first day teaching at Scripps. For the quick summary, see the “successes” and “recommendations” sections at the end of the post. :]


Our student audience was exactly 40 people. It was about half graduate students and half professors or researchers. The room was very full, because the class was at capacity and a strict attendance policy was enforced by the program host, Andrew. If a student cancelled their attendance, there was a wait list of more than 50 people who wanted to attend. So it was packed! Unlike other SWC workshops, we didn’t have a problem with decreasing attendance – mostly because of the strict policies in place at Scripps.

Teaching Materials

All course materials were posted online. Specifically, here are the Day 1 lessons. An interesting aspect of the online materials is that they are fully edit-able by instructors and students alike. Student comments and suggestions for the curriculum, however, must be approved by an instructor who has commit privileges on the project before they are implemented for the entire site.

We also set up a HipChat, which is a private chatroom for businesses or classes. Students were able to post their specific questions and have instructors or TAs answer them on the fly.


To track student understanding throughout the day, we decided to use minute cards. What are minute cards? Just a quick, one-minute assessment of student learning. We gave each student a notecard just before we dismissed them for a break. On the notecard, they wrote one thing they learned and one question they still have. While the students took a 15 minute break, Tracy and I would review the minute cards to see how we needed to modify instruction.

The Goal

As Titus told the students at the beginning of the class, the goal of instruction was to (at all times) have half of the class terrified of the curriculum, and half bored. Further, he noted that if students were comfortable with the difficulty of the curriculum on the first day, then they should be slightly uncomfortable tomorrow. And we want the students to be uncomfortable – it means they’re learning.

He emphasized the adaptability of the curriculum – especially since we were working with a group of biologists who had very limited computing experience. Titus sought to make all the lessons interactive and paced according to student needs and comprehension. He warned that students need to “watch for cliffs” in their understanding, where they feel as though everything is fine for a while, and then all the sudden don’t understand any of the material.

Lastly, Tracy and Titus asked students to form small groups or pairs in the class – especially if they had a lab mate in the class – to work together as they encountered problems throughout the workshop. This measure was an attempt to insure that they have the ability to continue using the computing ideas and skills in real life outside of our workshop, by forming a learning cohort.

The Shell, Part 1

Tracy taught the first part of the curriculum, which centered on exploring the shell. Since we were working with biologists, many of them did not even know that a “terminal” exists. Tracy explained many basic shell commands, like the following:

  • echo hello world
  • pwd
  • whoami (if you’re having an existential crisis)
  • ls
  • flags and options
  • ls -lrt (sorts your documents by creation date

Minute Card Responses

We got two major responses – either “everything was new to me” or “I knew all of this already.”

The Shell, Part 2

After coming back from break, we tried to motivate why students needed to learn to use the shell, since there was a lot of complaining and griping. Tracy emphasized that looking at big data files from the command line is faster than having to use a browser or other interface. Largely, students weren’t convinced.

The next topics? The path and filesystems.

  • relative path and full path
  • cat
  • less
  • motif
  • mv
  • rm -rf

Tracy concluded the first part of the workshop with examples of writing bash scripts to search files.

Minute Card Responses


Here is a copy of the transcript of the HipChat conversation. Day 1’s conversation is not as exciting as that of Day 2.


Successes: HipChat was a really good way to answer quick questions and made classroom management much easier. As a side note, we created an admin chatroom for instructors (and Greg Wilson, and any other long-distance instructors) which was very useful for coordination purposes. The minute cards were incredibly useful and I recommend all teachers, of all types use them.

Recommendations: Students didn’t seem to understand why they needed to know the shell and no amount of talking about motivation was going to convince them. It would have been useful to show the differences between a GUI filesystem and using cd from the command line. Throughout both days of the workshop, students really struggled with remembering to be in the appropriate directory to open or use their files. Teaching the shell felt sort of like just throwing information at the students… Like, here is the terminal. Here is the first command, the second command, the third command, etc. It didn’t seem conducive to learning, but I don’t know of a better way to teach 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