Exeter University

November 14-15, 2013
9:00 am - 5.00 pm

This page is a template for bootcamp home pages.
Please see https://github.com/swcarpentry/bc for instructions on how to create a repository for your bootcamp.
Please also see the index to our lessons and the index to setup instructions.

Instructors: David Martin, Christopher Woods

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 host-exeter@software-carpentry.org 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.


Python is becoming more and more popular in scientific computing, and it's a great language for teaching general programming concepts due to its easy-to-read syntax. We will be using Python version 2.7. Installing all the scientific packages for Python individually can be a bit difficult, so we recommend using an all-in-one installer.


The Unix Shell

  • What and Why
  • 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