University of Wisconsin-Madison

3rd Floor Teaching Lab, Wisconsin Institutes for Discovery, 330 N Orchard St, Madison, WI
Jun 3-4, 2015
8:30 am - 4:30 pm

Software Carpentry Workshop for the Social Sciences

Sponsored by UW-Madison's Advanced Computing Initiative (ACI) with the following campus co-sponsors:

General Information

Software Carpentry's mission is to help researchers become more productive by teaching them basic lab skills for computing like program design, version control, data management, and task automation. This four half-day hands-on workshop 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.

Registration will open on Wednesday, May 6, at 5pm, and will be available from this page (just above). Initially, a password will be required for registration, and only intended attendees will be provided with the password via targeted advertising.

Instructors: Karl Broman, Steve Goldstein, Alex Hanna, Christina Koch, Lauren Michael

Helpers: Myra Marx-Ferree, Jenna Nobles, Andy Pohl, Sarah Stevens

Who: The course is aimed at UW-Madison graduate students, post-docs, staff, and faculty who have basic familiarity with programming concepts (like loops, conditionals, arrays, and functions), but need help translating this knowledge into practical tools to help them work more productively.

Where: 3rd Floor Teaching Lab, Wisconsin Institutes for Discovery, 330 N Orchard St, Madison, WI. Get directions with OpenStreetMap or Google Maps.

Requirements: Participants must be affiliated with the University of Wisconsin-Madison and should plan to be present for ALL days/sessions of the workshop. A laptop with a few specific packages installed will be needed for the days of the workshop (See "Setup", below). It is strongly recommended that participants already be familiar with basic programming concepts like loops, conditionals, arrays, etc.

Contact: Please mail for more information.


Please follow the link to our Schedule page, which will also be used to direct you to each lesson during the workshop.


Please follow the link to our Setup page, and complete the instructions prior to the workshop.


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 Python

  • Using libraries
  • Working with arrays
  • Reading and plotting data
  • Creating and using functions
  • Loops and conditionals: for, if, else, ...
  • Defensive programming
  • Using Python 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...