FIXME Workshop Title

A Test Venue

31st December

09:00-17:00

Instructors: Pip Grylls, Steve Crouch, James Graham

Helpers: Ed Parkinson, Sam Mangham

General Information

Where: Online. Get directions with OpenStreetMap or Google Maps.

When: 31st December.

Requirements: Participants must bring a laptop with a Mac, Linux, or Windows operating system (not a tablet, Chromebook, etc.) that they have administrative privileges on. They should have a few specific software packages installed (listed below).

Accessibility: We are committed to making this workshop accessible to everybody. For workshops at a physical location, the workshop organizers have checked that:

Materials will be provided in advance of the workshop and large-print handouts are available if needed by notifying the organizers in advance. If we can help making learning easier for you (e.g. sign-language interpreters, lactation facilities) please get in touch (using contact details below) and we will attempt to provide them.

Contact: Please email or team@carpentries.org for more information.


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.


Surveys

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

Pre-workshop Survey

Post-workshop Survey


Schedule

Automating Tasks with the Unix Shell

31 December 2021

09:00 Registration, questions, and technical help
09:30 Teaching
10:45 Break
11:00 Teaching
12:15 Wrap Up
12:30 Finish

Version Control with git

31 December 2021

13:00 Registration, questions, and technical help
13:30 Teaching
14:45 Break
15:00 Teaching
16:15 Wrap Up
16:30 Finish

Building Programs with Python

1 January 2022

09:00 Registration, questions, and technical help
09:30 Teaching
10:45 Break
11:00 Teaching
12:15 Wrap Up
12:30 Finish

Managing Academic Software Development

1 January 2022

13:00 Registration, questions, and technical help
13:30 Teaching
14:45 Break
15:00 Teaching
16:15 Wrap Up
16:30 Finish

Setup

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

We maintain a list of common issues that occur during installation as a reference for instructors that may be useful on the Configuration Problems and Solutions wiki page.

Text Editor

A text editor is the piece of software you use to view and write code. If you have a preferred text editor, please use it. Suggestions for text editors are, Notepad++ (Windows), TextEdit (macOS), Gedit (GNU/Linux), GNU Nano, Vim. Alternatively, there are IDE’s (integrated developer environments) that have more features specifically for coding such as VS Code; there are also IDEs specific to languages will be listed in the appropriate section(s) below.

Automating Tasks with the Unix Shell

Shell Setup

You need to download some files to follow this lesson. First, you need to open a terminal:

Once you’ve done this, a window should appear. Type the following into the prompt that appears (pressing enter/return after each line):

$ cd
$ git clone https://github.com/Southampton-RSG/shell-novice.git

Alternatively, if you have SSH authentication with GitHub enabled (if you don’t know what this means don’t worry, it is covered in the Git SWC course if you want to know more!) you can use the following:

$ cd
$ git clone git@github.com:Southampton-RSG/swc-shell-novice.git

This should download all the content for the lesson to a new directory. Please let the instructors know if you run into any problems.

Version Control with git

Git Setup

The slides to accompany this material can be found here. Before we get started, we’ll have to do a few things.

Setup

Later on in the session, we’ll be demonstrating how to share work with collaborators using GitHub. You’ll need to create an account there: https://github.com/.

As your GitHub user name will appear in the URLs of your projects there, it’s best to use a short, clear version of your name if you can.

In addition we will need to set up SSH access to GitHub from your computer. This is how GitHub checks that you are who you say you are when you try to add things from your computer.

When we do this, we generate a pair of keys - one public, one private. We want to add the public key to GitHub, whilst the private one stays on our computer.

There are full guides here https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent and https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account.

However today we have simplified it like so:

First we need to create a variable to store your GitHub email. Copy this command, substituting the email you signed up to GitHub with for your_github_email@example.com:

$ my_gh_email=your_github_email@example.com

Then we can run the following command to generate a key-pair and display the public half:

$ ssh-keygen -t ed25519 -C $my_gh_email; eval "$(ssh-agent -s)"; ssh-add ~/.ssh/id_ed25519; cat ~/.ssh/id_ed25519.pub

You will need to press enter a few times to select default options and set the passphrase to empty.

Copy the last output line that starts with ssh-ed25519 and ends with your email (it may have gone over multiple lines if your terminal isn’t wide enough).

SSH-Output

Finally, go to https://github.com/settings/ssh/new (you will need to be logged into GitHub with the account you have created). Give the key a memorable name (the name of the computer you are working on is often a good choice) and paste the key from your clipboard into the box labelled key. Then, click add SSH key and you are done!

SSH-Add

Now we are ready to download the code that we need for this lesson, using Git on the command line. Open a terminal on your machine, and enter:

$ cd
$ git clone https://github.com/Southampton-RSG/swc-git-novice

cd will move to your home directory, and git clone will download a copy of the materials. Once you’re all set up, we can start the course.

Building Programs with Python

Python Setup

IDEs: PyCharm, Spyder, VS Code

We use Python 3, because it is generally the most widely used version of Python. The “Anaconda3” package provides everything Python-related you will need for the workshop. To install Anaconda, follow the instructions below.

Windows

Download the latest Anaconda Windows installer. Double click the installer and follow the instructions. When asked “Add Anaconda to my PATH environment variable”, answer “yes”. After it’s finished, close and reopen any open terminals to reload the updated PATH and allow the installed Python to be found.

Mac OS X

Download the latest Anaconda Mac OS X installer. Double click the .pkg file and follow the instructions.

Linux

Download the latest Anaconda Linux Installer. Install via the terminal like this,

$ bash Anaconda3-2021.11-Linux-x86_64.sh

Answer ‘yes’ to allow the installer to initialize Anaconda3 in your .bashrc.

Managing Academic Software Development

Before we get started, there are a few requirements to meet. You will need:

If you do not have a climate-analysis repository, you can create an empty one now. No specific contents are required for this lesson.

Once you’re all set up, we can start the course. The slides for this course can be found here.