October 9-10, 2013
8:30 am - 5 pm

Hosts: This bootcamp is co-hosted by CSIRO, the Commonwealth Scientific and Industrial Research Organisation, and ANU, the Australian National University.

Instructors: Karthik Ram

What: Our goal is to help scientists and engineers become more productive by teaching them basic computing skills like program design, version control, testing, and task automation. In this two-day boot camp, short tutorials will alternate with hands-on practical exercises. Participants will be encouraged both to help one another, and to apply what they have learned to their own research problems during and between sessions. Attendants are offered online office hours: regular events to get one-on-one help from Software Carpentry instructors, online.

Who: The course is aimed at postgraduate students and other scientists who are familiar with basic programming concepts (like loops, conditionals, arrays, and functions) but need help to translate this knowledge into practical tools to help them work more productively.

Requirements: Participants must bring a laptop with a few specific software packages installed. (The list will be sent to participants a week before the boot camp.)

Content: The syllabus for this boot camp will include:

Contact: Please mail karthik.ram@berkeley.edu for more information.


The Bash Shell

Bash is a commonly-used shell. Using a shell gives you more power to do more tasks more quickly with your computer.


When you're writing code, it's nice to have a text editor that is optimized for writing code, with features like automatic color-coding of key words.


Git is a state-of-the-art version control system. It lets you track who made changes to what when and has options for easily updating a shared or public version of your code on github.com.


R is a programming language that specializes in statistical computing. It is a powerful tool for exploratory data analysis. To interact with R, we will use RStudio, an interactive development environment (IDE).


The Unix Shell

  • Files and Directories
  • Creating Things
  • Pipes and Filters
  • Loops
  • Shell Scripts
  • Finding Things


  • Selecting
  • Removing Duplicates
  • Filtering
  • Calculating New Values
  • Ordering Results
  • Missing Data
  • Aggregation
  • Grouping
  • Combining Data
  • Creating and Modifying Tables
  • Transactions
  • Programming with Databases

Reference Guides