Stanford University

Hartley Conference Center, Mitchell Earth Sciences bldg., Stanford, CA
Jan 27-28, 2014
9:00 am - 4:30 pm

Instructors: Ariel Rokem, Justin Kitzes

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 bootcamp, 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.

Enrolment in this bootcamp is restricted to Stanford Physics students and the roster is currently full. Please check The Software Carpentry site for future bootcamps at Stanford.

Requirements: Participants must bring a laptop with a few specific software packages installed. (See below).

Content: The syllabus for this bootcamp will include:

Contact: Please mail 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.


The default shell in Mac OS X is bash.


Install Git Bash. You can accept all of the default options as recommended by the installer.


The default shell is usually bash but if not you can get to bash by opening a terminal and typing bash.


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.


We recommend Text Wrangler, Sublime Text, or Text Mate 2.


Notepad++ is a popular free code editor for Windows. You'll also need to install the command line editor nano, which you can do by downloading this script and running it using the instructions below for testing your setup.


Kate and gedit are options for Linux users.


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

Download and install the most recent version from here

Install Git Bash. You can accept all of the default options as recommended by the installer.


If git is not already available on your machine you can try to install it via your distro's package manager (e.g. apt-get git).


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.

Please install Enthought Canopy .

Virtual Machine

Installation issues can and do happen. To ensure that you can continue to participate in a lesson even if one of your software programs fails, we provide a Linux virtual machine that contains most of the necessary software pre-installed.

Please download and install Virtual Box for your OS from here . Please download the SWC VM file from here. On the first day we will do a walkthrough of how to setup and launch the bootcamp VM through Virtual Box.

Testing your setup

How do you know if your setup works? To test the installation, open the Canopy application. On the first launch of the application, you will be asked whether you would like to configure the Canopy python to be your default python environment. Please accept this and continue.

If you are on a Windows machine, make sure that you run the extra Windows installation script, following the same instructions as below for the check installation script below, before running the script below.

Download This script. Open the script in the Canopy editor and click the "run" button (looks like a green rightward-pointing arrow, or "play" icon). You will be asked by the application whether you would like to "see the Python pane". You should see something that looks like this:

check Git (git)... pass
check Nose (nosetests)... pass
check Nose Python package (nose)... pass
check Python version (python)... pass
check IPython script (ipython)... pass
check NumPy (numpy)... pass
check SciPy (scipy)... pass
check Matplotlib (matplotlib)... pass

Assuming you got all that, you are good to go.

If you are on Windows and have installed Git Bash, you may see that you get a 'pass' for everything except for the "check Git" line. If this is the case, open the Git Bash program and type git --version, then hit Return, in the window that pops up. If this prints some number, then you're all set. If it prints "command not found" or something similar, then you should ask the instructors for installation assistance.

Aside from the above, of any of those 'pass' comes up as 'fail', please get in touch with the instructors in advance of the bootcamp.


Day 1
9:00 - 9:30 Introduction -
9:30 - 11:00 The Unix Shell
11:00 - 11:15 Coffee -
11:15 - 12:30 Version control with git
12:30 - 1:30 Lunch -
1:30 - 2:30 More git -
2:30 - 3:15 Programming in Python
3:15-3:30 Coffee -
3:30 - 5:00 More Python
Day 2
9:00 - 11:00 Scientific computing in Python
11:00 - 11:15 Coffee -
11:30 - 12:30 More scientific computing in Python
12:30 - 1:30 Lunch -
1:30 - 3:15 Software validation and testing
3:15 - 3:30 Coffee -
3:30 - 5:00 Reproducible research workflow