Shell, Git, Plotting and Programming in Python

MRC Human Genetics Unit, University of Edinburgh

Feb 21-24, 2022

1:00 pm - 5:00 pm GMT

Instructors: Sanjay Fuloria, Alex Ball, Bryan Wee

Helpers: Elvina Gountouna, Philippe Gautier, Graeme Grimes, Murray Wham, Mike Halachev, Kevin Donnelly

Some adblockers block the registration window. If you do not see the registration box below, please check your adblocker settings.

General Information

Software Carpentry aims to help researchers get their work done in less time and with less pain by teaching them basic research computing skills. This hands-on workshop will cover basic concepts and tools, including program design, version control, data management, and task automation. Participants will be encouraged to help one another and to apply what they have learned to their 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 graduate students and other researchers. You don't need to have any previous knowledge of the tools that will be presented at the workshop.

Where: Medical Education Centre Computing Lab 1, Western General Hospital, Crewe Road South, Edinburgh, Edinburgh, EH4 2XU and online. Get directions with OpenStreetMap or Google Maps. If joining online, the instructors will provide you with the information you will need to connect to this meeting.

When: Feb 21-24, 2022. Add to your Google Calendar.

Requirements: Participants will be working on desktops in the MEC Computing Lab 1. Please check that you can access the University of Edinburgh Noteable service with your EASE credentials. If you encounter issues, contact

Accessibility: We are dedicated to providing a positive and accessible learning environment for all. Please notify the instructors in advance of the workshop if you require any accommodations or if there is anything we can do to make this workshop more accessible to you.

Contact: Please email or for more information.

Roles: To learn more about the roles at the workshop (who will be doing what), refer to our Workshop FAQ.

Code of Conduct

Everyone who participates in Carpentries activities is required to conform to the Code of Conduct. This document also outlines how to report an incident if needed.

Collaborative Notes

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


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

Pre-workshop Survey

Post-workshop Survey


Day 1

13:00 The UNIX Shell
14:00 First break
14:30 The UNIX Shell (Continued)
15:30 Second break
16:00 The UNIX Shell (Continued)
17:00 END

Day 2

13:00 Version Control with Git
14:00 First break
14:30 Version Control with Git (Continued)
15:30 Second break
16:00 Version Control with Git (Continued)
17:00 END

Day 3

13:00 Python
14:30 Break
15:00 Python (Continued)
16:45 Wrap-up
17:00 END

Day 4

13:00 Python (Continued)
14:30 Break
15:00 Python (Continued)
16:45 Wrap-up and post workshop survey
17:00 END


To participate in this Software Carpentry workshop, you will need access to software as described below. In addition, you will need an up-to-date web browser.

Download files

You need to download some files to follow the lessons in this workshop.

Noteable service

For this workshop, we will be using the University of Edinburgh Noteable service. To prepare, please set up your notebook area as follows:

  1. In your browser, go to the University of Edinburgh Noteable login page and use your EASE credentials to access the site.

  2. When prompted to select a personal notebook server, choose ‘Standard Notebook (Python 3)’ and select ‘Start’.

  3. You should see a Jupyter Notebook screen. Using the ‘Upload’ button on the top right, upload your downloaded copies of and You will need to select another ‘Upload’ button in the directory listing each time.

  4. Select the ‘New’ dropdown menu at the top right and choose ‘Terminal’.

    Screenshot of Noteable root folder, with the ‘New’ button selected and the options ‘Python 3’, ‘Text File’, ‘Folder’, and ‘Terminal’ showing.

  5. In the new tab that opens, you should see a black Terminal window. Enter the following text, one line at a time.

    mkdir -p Desktop/python-lesson
    unzip -d Desktop
    unzip -d Desktop/python-lesson
  6. You can now close the Terminal tab. In your original tab, you should see your new Desktop folder; if you select the name to enter it, you should see your shell-lesson-data and python-lesson folders. Back in your root folder, you can select and delete the zip files if you like, by ticking the boxes next to them and selecting the red dustbin icon above.


During the Git lesson, we will set up a repository on GitHub. This requires a (free) GitHub account, so if you do not already have one, please sign up for a GitHub account in advance of the lesson.

Install the videoconferencing client

If you cannot attend the workshop in person, you can still participate over Zoom. Please contact for the connection details.

If you haven't used Zoom before, go to the official website to download and install the Zoom client for your computer.

Set up your workspace

Like other Carpentries workshops, you will be learning by "coding along" with the Instructors. To do this, you will need to have both the window for the tool you will be learning about (a terminal, RStudio, your web browser, etc..) and the window for the Zoom video conference client open. In order to see both at once, we recommend using one of the following set up options:

This blog post includes detailed information on how to set up your screen to follow along during the workshop.