Fork me on GitHub

University College London

Nov 05-06, 2014

10:00 am - 5:00 pm

Instructors: Mayeul d'Avezac, Jens Hedegaard Nielsen, Gary Macindoe, Derek Groen

Helpers: Ross Mounce, Tom Pollard, Miguel Bernabeu Llinares, Mladen Georgiev

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

Who: The course is aimed at graduate students and other researchers.

Where: Gordon House 106 29 Gordon Square, London, WC1H 0PP. Get directions with OpenStreetMap or Google Maps.

Requirements: Participants must bring a laptop with a few specific software packages installed see our installation instructions. They are also required to abide by Software Carpentry's Code of Conduct.

Contact: Please mail for more information.


Day 1

10:00 Building programs with Python
13:00 Lunch break
14:00 Version control with Git
16:45 Wrap-up

Day 2

10:00 Testing
13:00 Lunch break
14:00 Managing data with SQL
16:45 Wrap-up


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


  • Add info on testing

Managing Data with SQL

  • Reading and sorting data
  • Filtering with where
  • Calculating new values on the fly
  • Handling missing values
  • Combining values using aggregation
  • Combining information from multiple tables using join
  • Creating, modifying, and deleting data
  • Programming with databases
  • Reference...

We are not covering the Unix Shell in these two days. It is assumed that you are either already familiar with the Unix Shell or followed our course on the shell last week.


To participate in a Software Carpentry workshop, 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 workshop.

See our installation instructions