Find us on GitHub

The University of Leeds

April 20-21, 2017

9:00 am - 5:00 pm

Instructors: Martin Callaghan, Lee Etchels, Marlene Mengoni, Seb Sikora

Helpers: Marco-Felipe King, Natalie Gilkeson

General Information

Software Carpentry's mission is to help scientists and engineers get more research done in less time and with less pain by teaching them basic lab skills for scientific computing. This hands-on workshop will cover basic concepts and tools, including program design, version control, data management, and task automation. We will encourage you to help one another and to apply what you have learned to your own research problems.

For more information on what we teach and why, please see our paper "Best Practices for Scientific Computing".

Who: The course is aimed at doctoral students from the centres of doctoral training in Tissue Engineering and Regenerative Medicine and in integrated-Tribology. You don't need to have any previous knowledge of the tools that will be presented at the workshop.

Where: School of Mechanical Engineering (5th floor cluster, room 5.34), Woodhouse Lane, Leeds, LS2 9JT. Get directions with OpenStreetMap or Google Maps.

Requirements: We will be using Matlab and a few other tools that are installed on the PCs in the teaching cluster we will be using. You will need to install one software package on your M:drive (see below). We also ask you to abide by Software Carpentry's Code of Conduct.

Accessibility: We are committed to making this workshop accessible to everybody. The workshop organisers have checked that:

  • The room is wheelchair / scooter accessible.
  • Accessible toilets are available.

Please ask us if you need materials in advance of the workshop or you need large print versions.

Contact: Please mail for more information.

Dietary requirements: Lunch and coffee breaks are included for both days. Please mail Cheryl Harris for any requirements other than vegetarian



Please be sure to complete these surveys before and after the workshop.

Pre-workshop Survey

Post-workshop Survey

Day 1

09:00 Welcome and introductions
09:30 Using the shell to do more in less time
10:30 Coffee
10:50 Using version control to manage files
12:15 Lunch
13:30 Introduction to Matlab
15:00 Coffee
15:15 Matlab and good programming practice
16:30 Defensive programming
17:00 Close

Day 2

09:00 Welcome and recap on day 1
09:30 More work with the shell
10:30 Coffee
10:50 Version control and collaboration with Git and Github
12:15 Lunch
13:15 Problem solving with Matlab
15:00 Coffee
15:15 Using Matlab with the shell
16:00 Sharing code, documentation and licencing
17:00 Wrap-up and close

We will use this Etherpad for chatting, taking notes, and sharing URLs and bits of code.

Blackboard Collaborate: Marlene's room.
We will use this Collaborate room to share screens.


The Unix Shell

  • Files and directories
  • History and tab completion
  • Pipes and redirection
  • Looping over files
  • Creating and running shell scripts
  • Finding things
  • Reference...

Programming in MATLAB

  • Working with arrays
  • Reading and plotting data
  • Creating and using functions
  • Loops and conditionals
  • Defensive programming
  • 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...


Most of the software we will be using is already installed on the PCs in the teaching cluster.

Git and the Bash Shell

Download the Git for Windows Portable archive. Extract the archive on your M:drive (via Desktop Anywhere if you are not a student based in Leeds - double click won't work: open 7-Zip from All Programs > Miscellaneous and extract your downloaded file): on the pop-up window, type M:\GitForWindows

Data for the MATLAB sessions

The data needed for all the MATLAB exercises can be cloned from