Fork me on GitHub

University of Chicago

Sep 18-19, 2014

8:30 am - 4:30 pm

Instructors: Will Trimble, Emily Davenport, Dan Braithwaite, John Blischak

Helpers: Daniel Rabe, Nick Knoblauch, Suchandra Thapa, Bala Desinghu

General Information

Software Carpentry's mission is to help scientists and engineers become more productive by teaching them basic lab skills for computing like program design, version control, data management, and task automation. This two-day hands-on bootcamp will cover basic concepts and tools; participants will be encouraged to help one another and to apply what they have learned to their own research problems.

Complimentary lunch and coffee will be provided both days. This course is supported in part by the Department of Human Genetics and the Biological Sciences Division Office of Graduate and Postdoctoral Affairs.

Who: The main audience of this course is graduate students that are entering their first year in the Biological Sciences Division (BSD) at the University of Chicago. Any remaining spots will be made available to other researchers in the BSD.

Where: Day 1 - Biological Sciences Learning Center (BSLC) 109; Day 2 - Gordon Center for Integrative Science (GCIS) W301. Get directions with OpenStreetMap or Google Maps.

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

Contact: Please mail for more information.

Faculty advisors: Allan Drummond, Matthew Stephens, Mark Abney

Logistics support: Candice Lewis


Day 1

08:30 Introduction
09:00 Automating tasks with the Unix shell Will Trimble
10:30 Coffee break
12:00 Lunch break
13:00 Version control with Git Emily Davenport
14:30 Coffee break
16:00 Wrap-up

Day 2

08:30 Review of Day 1
09:00 Building programs with R Dan Braithwaite
10:30 Coffee break
12:00 Lunch break
13:00 Building programs with R John Blischak
14:30 Coffee break
16:00 Wrap-up

Post-bootcamp survey (closed)

Before you leave for the day, please complete the post-bootcamp survey. It should only take a few minutes. We really appreciate it!

Pre-bootcamp survey (closed)

After registering, please complete the pre-bootcamp survey. It will only take a few minutes. We need this informatoin to help us prepare the bootcamp as well as assess the efficacy of our teaching. Also, do not worry about survey questions on topics that we are not covering. These are included because we use the same standard survey for all bootcamps.

Hang out on the Etherpad

Join the Etherpad to ask questions and find useful information during the lessons.


The Unix Shell

  • Files and directories: pwd, cd, ls, mkdir, ...
  • History and tab completion
  • Pipes and redirection
  • Looping over files
  • Creating and running shell scripts
  • Finding things: grep, find, ...
  • Reference...

Programming in R

  • Working with vectors and data frames
  • Reading and plotting data
  • Creating and using functions
  • Loops and conditionals: for, if, else, ...
  • Using R from the command line
  • Reference...

Version Control with Git

  • Creating a repository
  • Recording changes to files: add, commit, ...
  • Viewing changes: status, diff, ...
  • Ignoring files
  • Working on the web: clone, pull, push, ...
  • Resolving conflicts
  • Open licenses
  • Where to host work, and why
  • Reference...


To participate in a Software Carpentry bootcamp, you will need working copies of the software described below. Please make sure to install everything (or at least to download the installers) before the start of your bootcamp.


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.


R is a programming language that is especially powerful for data exploration, visualization, and statistical analysis. To interact with R, we will use RStudio, an interactive development environment (IDE).


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


Git Bash

Install Git for Windows by downloading and running the installer. This will provide you with both Git and Bash in the Git Bash program.


Install R by downloading and running this .exe file from CRAN. Also, please install the RStudio IDE.

Software Carpentry Installer

This installer requires an active internet connection

After installing R and Git Bash:

  • Download the installer.
  • If the file opens directly in the browser select File→Save Page As to download it to your computer.
  • Double click on the file to run it.

Mac OS X


The default shell in all versions of Mac OS X is bash, so no need to install anything. You access bash from the Terminal (found in /Applications/Utilities). You may want to keep Terminal in your dock for this workshop.


Install R by downloading and running this .pkg file from CRAN. Also, please install the RStudio IDE.


Install Git for Mac by downloading and running the installer. For older versions of OS X (10.5-10.7) use the most recent available installer available here. Use the Leopard installer for 10.5 and the Snow Leopard installer for 10.6-10.7.



The default shell is usually bash, but if your machine is set up differently you can run it by opening a terminal and typing bash. There is no need to install anything.


You can download the binary files for your distribution from CRAN. Or you can use your package manager, e.g. for Debian/Ubuntu run apt-get install r-base or yum install R. Also, please install the RStudio IDE.


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 or yum).