Skip to main content

Software Training 2024

Researcher Development & Research Culture Team is working closely with the Coding for Reproducible Research initiative to deliver a series of hybrid workshops focused on supporting research staff to develop and expand their computing skills. The programme covers training relating to good practise and reproducible working methods that is designed to be agnostic of programming language. In this way we offer a holistic perspective as to how programming tasks should be approached, ultimately providing researchers with the tools and knowledge to feel confident in what they are doing.  

Registration for all courses set out below is via an MS Form and the link can be located under each drop-down accordion below. Note you will need to submit the form for each course you wish to register for. Registration will close one week before the first scheduled session, or sooner if the course is oversubscribed. We allocate places based on a first-come-first-served basis so are trialling a new allocations process to confirm workshop places on a rolling basis. This will be kept under review.

All courses are currently scheduled to be held on Streatham Campus. We have some availability for online places for those unable to attend in person, but these are prioritised for those based outside of Exeter, or those who have other reasons for not being able to attend in person. We know that some prefer to attend virtually, even if based in Exeter, but in our experience the learning process - particularly in the case of introductory courses - is greatly enhanced when you are in the room with the instructors, helpers and other participants. We therefore strongly encourage anyone who can attend in person to do so. We would also like to emphasise that you are more likely to get an in-person place compared to a virtual place.

You can find full details of all courses together with how to register, by going to the accordions below:-

Summary of courses:-

Intermediate Version Control (2-part course)
21 & 28 May 2024 (10 am - 1 pm)
Registration closes : 13 May 2024.

Python for Data Analysis (3-part course)
17, 24 & 31 May 2024 (1 pm - 4 pm)
Registration closes : 9 May 2024

Introduction to HPC & ISCA (2-part course)
7 & 14 May 2024 (10 am - 1 pm)
Registration closes : 30 April 2024.

Introduction to Version Control (2-part course)
3 & 10 May 2024 (10 am - 12 noon)
Registration closes : 25 April 2024.

Advanced Regression Analysis with R
26 April 2024 (10 am - 1 pm)
Registration now closed.

Software Development Best Practice (2-part course)
16 & 23 April 2024 (10 am - 12 noon)
Registration now closed.

Computational Thinking (2-part course)
12 & 19 April 2024 (1 pm - 4 pm)
Registration closes now closed.

Introduction to Python (2-part course)
2 & 9 April 2024 (10 am - 1 pm)
Registration now closed.

Working with Data in R (2-part course)
12 & 19 March 2024 (1 pm - 4 pm)
Registration now closed.

Introduction to Unix (2-part course)
6 & 13 March 2024 (1 pm - 4 pm)
Registration now closed.

Introduction to R - Beginner to Intermediate (3-part course)
9, 16 & 23 January 2024 (all 10 am - 1 pm)
Registration now closed.

Introduction to Julia (3-part course)
24 November, 1 & 5 December 2023 (10.30 am 12.30 pm)
Registration now closed.

 

Intermediate Version Control

Dates (2 part course) : 21 & 28 May 2024 (both 10 am - 1 pm).  You are expected to attend both sessions. 

Registration:

Please Register via this form
.

Completing the above form registers your interest in attending the workshop but does not guarantee you a place on your chosen course. Places will be allocated on a first come first served basis once registration closes and you will be asked to re-confirm your availability to attend. 

We typically find that the places to attend virtually fill up quickly, so if you are able to attend in person, we encourage you to select this option (or at least the flexible option) to increase your chances of getting a place.

Registration closes : 13 May 2024.

About this Course:

This course will go beyond the basics of version control, highlighting best practices for working collaboratively on software project.

Learning outcomes: 

By the end of the course you will:

  • Learn to use Git and GitHub towork collaboratively on code;
  • Learn to use branches to develop different features independently, including merging changes and resolving conflicts;
  • Understand how – and when – to safely rewrite the version control history and move work between branches;
  • Understand best practices for keeping repositories maintainable;
  • Learn knowledge of available workflows and tooling to manage and organise collaboration.

Who should attend this course:

This hybrid workshop is aimed at those with some prior knowledge of version control.  Participants are expected to already by familar with a basic version control workflow, but the course will be open with a refresher on Git.

Presenters:

Dr Stephen Cook.

Before the course:

Participants will need to bring their own laptops.  Git will need to be installed prior to the start of the workshop (detailed installation instructions will be available on the course website).

Python for Data Analysis

Dates (3 part course) : 17, 24 & 31 May 2024 (all 1 pm - 4 pm).  You are expected to attend all sessions. 

Registration:

Please Register via this form
.

Completing the above form registers your interest in attending the workshop but does not guarantee you a place on your chosen course. Places will be allocated on a first come first served basis once registration closes and you will be asked to re-confirm your availability to attend. 

We typically find that the places to attend virtually fill up quickly, so if you are able to attend in person, we encourage you to select this option (or at least the flexible option) to increase your chances of getting a place.

Registration closes : 9 May 2024.

About this Course:

As researchers, we use Python for all manner of data analysis tasks, including modelling, simulation, and creating engaging visuals for websites and publications. This hybrid course will explore language features used in data analysis, the use of libraries such as Numpy and Pandas, tools to improve code quality such as flake8 and pytest, and tools to help manage larger projects such as venv and poetry.  We will use these features, and many more, to design and implement reproducible data pipelines.

Learning outcomes: 

By the end of the course you will:

  • Show you how, and when, to use more advanced Python features;
  • Introduce tools to check, test, and improve the quality of your code;
  • Explore the design of reproducible data analysis pipelines, including loading, manipulating, and transforming data;
  • Create visualizations as charts, and animations.

Who should attend this course:

This workshop is aimed at those with prior knowledge of Python. The course is pitched at those confident with the material in our Introduction to Python course. Participants should be able to run basic Python commands, either in aJupyter Notebook, or in an IDE.

Presenters:

Michael Saunby & Simon Kirby.

Before the course:

Participants will need to bring their own laptops.  Python will need to be installed prior to the start of the workshop (detailed installation instructions will be available on the course website).

Introduction to HPC & ISCA

Dates (2 part course) : 7 & 14 May 2024 (both 10 am - 1 pm).  You are expected to attend both sessions. 

Registration:

Please register via this form.

Completing the above form registers your interest in attending the workshop but does not guarantee you a place on your chosen course. Places will be allocated on a first come first served basis once registration closes and you will be asked to re-confirm your availability to attend. 

We typically find that the places to attend virtually fill up quickly, so if you are able to attend in person, we encourage you to select this option (or at least the flexible option) to increase your chances of getting a place.

About this Course:

A high performance computing (HPC) cluster is an essential tool for computational tasks that are too intensive for a personal computer, for example analysing large datasets or performing high density simulations. This course will introduce ISCA, the University of Exeter’s HPC cluster.  It will teach participants how to design an HPC workflow, interrogate the SLURM scheduling system, and run simple jobs on the cluster. At the end of this interactive course, participants will be able to translate what they have learnt to improve the efficiency of their computational research and run their analyses on ISCA.

Learning outcomes: 

By the end of the course you will:

  • understand what an HPC cluster is and what type of tasks it is suited to;
  • be able to assess what computing resources are necessary to run a large workload;
  • be able to log on to the cluster and navigate around the file system;
  • be able to submit and manage job tasks in the scheduler’s queue;
  • understand the array jobs syntax, to efficiently parallel repetitive tasks.

Who should attend this course?

This hybrid course is aimed at those who plan to use ISCA to perform their computational research or who wish to learn what ISCA could enable them to do. 

Presenters:

Ricky Olivier.

Before the course:

Participants will need to bring their own laptops and have access to a command line terminal. They will need an account on ISCA in advance of the course and require some experience of the command line for example having attended an Intorduction to Unix Course.

Introduction to Version Control

Dates (2 part course) : 3 & 10 May 2024 (both 10 am - 12 noon).  You are expected to attend both sessions. 

Registration:

Please Register via this form
.

Completing the above form registers your interest in attending the workshop but does not guarantee you a place on your chosen course. Places will be allocated on a first come first served basis once registration closes and you will be asked to re-confirm your availability to attend. 

We typically find that the places to attend virtually fill up quickly, so if you are able to attend in person, we encourage you to select this option (or at least the flexible option) to increase your chances of getting a place.

Registration closes : 25 April 2024.

About this Course:

Version control systems are an incredibly valuable tool for organising software development. They are essential for producing reproducible and transparent research software. This hybrid course will give a thorough introduction to Git, one of the most widely used version control systems in academia and industry. It will also introduce internet platforms such as GitHub which are built on top of Git and designed to facilitatecollaboration between software developers and the sharing of code. A key componentof the course will be hands-on practice using Git and GitHub, working through theoretical concepts that will be explained with the aid of live demonstrations.  By the end of the course, it is intended that participants will be comfortable using Git and GitHub to keep a record of their day-to-day code development and share their work with others.

Learning outcomes: 

By the end of the course you will:

  • Use Git to manage their software development.
  • Explain what repositories and commits are in Git.
  • Apply standard Git commands as part of their development workflow: cloning, pulling from and pushing to repositories; adding and commiting file changes.
  • Give examples of what should and should not be included in Git repositories.
  • Describe how Git and platforms like GitHub relate to each other and their differences.

Who should attend this course:

Anyone already familiar with programming interested in adding Version Control to their workflow.  Basic familiarility of working at the command line (eg, Bash, Command Prompt, Apple Terminal) is helpful but not essential.  For those with some familiarity with Git who are looking to learn how to collaborate with others using Git and GitHub, the Intermediate Version Control course may be more suitable.

Presenters:

Linus Tata.

Before the course:

Participants will need to bring their own laptops.  Software will need to be installed prior to the start of the workshop (detailed installation instructions will be available on the course website).

Advanced Regression Analysis with R

Date : 26 April 2024 (10 am - 1 pm). 

Registration: 

Please register via this form.

Completing the above form registers your interest in attending the workshop but does not guarantee you a place on your chosen course. Places will be allocated on a first come first served basis once registration closes and you will be asked to re-confirm your availability to attend. 

We typically find that the places to attend virtually fill up quickly, so if you are able to attend in person, we encourage you to select this option (or at least the flexible option) to increase your chances of getting a place.

Registration closed.

About this Course:

Regression analysis is a fundamental statistical technique used to model the relationship between multiple variables. It is a very flexible tool that can be used to address a range of research questions. This course builds on the Beginner’s Regression workshop where you will learn how to use regression models with R to model complex, multi-dimensional datasets and make more nuanced comparisons.

Learning outcomes: 

By the end of the course you will:

  • Be able to use regression to answer a wide range of research questions.
  • Be able to fit a regression model with interactions between predictor variables.
  • Be able to fit multi-level regression models.
  • Be able to extract and summarise the results from a range of regression models.
  • Be able to design a regression model appropriate for addressing their specific research question.

Who should attend this course:

This workshop is aimed at those with some prior knowledge of R and understand the basics of linear regression who are currently or planning on using regression models in their research.

Presenters:

Eilis Hannon

Before the course:

Participants will need to bring their own laptops. R and RStudio will need to be installed prior to the start of the workshop (detailed installation instructions will be available on the course website). Learners are expected to already be familiar with the basics of R, such as how to load a dataset from a local file and manipulate variables.

Software Development Best Practice

Dates (2 part course) : 16 & 23 April 2024 (both 10 am - 12 noon both sessions).  You are expected to attend both sessions. 

Registration: 

Please register via this form.

Completing the above form registers your interest in attending the workshop but does not guarantee you a place on your chosen course. Places will be allocated on a first come first served basis once registration closes and you will be asked to re-confirm your availability to attend. 

We typically find that the places to attend virtually fill up quickly, so if you are able to attend in person, we encourage you to select this option (or at least the flexible option) to increase your chances of getting a place.

Registration closed : 8 April 2024.

About this Course:

Writing code has become an integral part of research irrespective of the field, and it is now more important than ever to consider the ways in which we are working to ensure the reproducibility of our research. This course will look at the software development lifecycle with research projects in mind. It will enable participants to explore various topics, such as problem decomposition, data management, version control and testing. Participants will also learn how to collaborate on code effectively, as well as how to make their code useful to others, enabling them to improve their workflow and increase the impact of their research. Throughout this interactive and largely language agnostic course, there will be live demonstrations and plenty of opportunity for discussion.

Learning outcomes: 

On completion of the series of workshops, participants will:

  • Have a high-level understanding of software development for research.
  • Be able to collaborate on code effectively.
  • Be able to improve the reproducibility of their research by understanding how to make their code useful to others.
  • Have the necessary foundations for intermediate level courses that will delve deeper into software development topics.

Who should attend this course:

Anyone, from beginner through to more experienced practitioner, who uses programming (any language) in their research.  No prior knowledge of software development is required, simply a willingness to learn.

Presenters:

Fliss Guest.

Before the course:

Participants will need to bring their own laptops.  Installation instructions will be available on the course website, details of which will be circulated beforehand.

Computational Thinking

Dates (2 part course) : 12 & 19 April 2024 (both 1 pm - 4 pm).  You are expected to attend both sessions. 

Registration: 

Please register via this form.

Completing the above form registers your interest in attending the workshop but does not guarantee you a place on your chosen course. Places will be allocated on a first come first served basis once registration closes and you will be asked to re-confirm your availability to attend. 


We typically find that the places to attend virtually fill up quickly, so if you are able to attend in person, we encourage you to select this option (or at least the flexible option) to increase your chances of getting a place.

Registration closes : 4 April 2024.

About this Course:

Being an effective programmer is not just about writing code, it's about designing solutions to problems in a way that a computer would understand.  Over two sessions, you will learn to deconstruct complex problems and develop and verify solutions.  We will explore strategies used by computer scientists to simplify problems without losing essential details.  This is enable you to write, develop and debug your code more effectively.

Learning outcomes: 

By the end of the course you will:

  • Describe what an algorithm is and the role it plays in coding.
  • Understand and be able to apply a number of computational thinking approaches including pattern recognition, decomposition, abstraction algorithms.
  • Explore the application of these concepts in algorithm design, prototyping and debugging.
  • Differentiate between bugs related to syntax from those related to the underlying algorithm to facilitate more effective troubleshooting.

Who should attend this course:

Anyone from beginner through to more experienced practitioner, who uses programming (any language) in their research and would like to approach the task.

Presenters:

Michael Saunby.

Before the course:

Participants will need to bring their own laptops. Installation instructions will be available on the course website.

Introduction to Python

Dates (2 part course) : 2 & 9 April 2024 (both 10 am - 1 pm).  You are expected to attend both sessions. 

Registration: NOW CLOSED.

Completing the above form registers your interest in attending the workshop but does not guarantee you a place on your chosen course. Places will be allocated on a first come first served basis and you will be asked to re-confirm your availability to attend. 

We typically find that the places to attend virtually fill up quickly, so if you are able to attend in person, we encourage you to select this option (or at least the flexible option) to increase your chances of getting a place.

Registration closes : NOW CLOSED.

About this Course:

Over two sessions learn the fundamentals of Python one of the most popular programming languages and be introduced to a variety of applications.

Learning outcomes: 

By the end of the course you will:

  • understand and declare the basic data types in Python;
  • understand the basic principles of control flow and for loops;
  • describe what a function is and define one that takes user-specified parameters;
  • perform simple analysis and visualisation of a table of data;
  • recognise concepts in other programming languages.

Who should attend this course:

This course is aimed at those with little or no prior experience of programming, who want to learn Python.

Presenter:

Matt Johns.

Before the course:

Participants will need to bring their own laptops. Installation instructions will be available on the course website.

Working with Data in R

Dates (2 part course) : 12 & 19 March 2024 (both 1 pm - 4 pm).  You are expected to attend both sessions. 

Registration: 

Please register via this form.

Completing the above form registers your interest in attending the workshop but does not guarantee you a place on your chosen course. Places will be allocated on a first come first served basis once registration closes (4 March 2024 or before if oversubscribed) and you will be asked to re-confirm your availability to attend. 

We typically find that the places to attend virtually fill up quickly, so if you are able to attend in person, we encourage you to select this option (or at least the flexible option) to increase your chances of getting a place.

Registration closes : 4 March 2024 (or before if oversubscribed).

About this Course:

Over two sessions learn how to use the Tidyverse to work with data in R. The Tidyverse is a collection of R packages designed to help you manipulate, clean and analyse data. This course will introduce you to the functionality of several key packages, while also discussing some of the conventions that Tidyverse uses when working with data. By the end of the course, participants should feel confident to continue using the Tidyverse to work with their own datasets in R.

Learning outcomes: 

By the end of the course you will:

  • be able to describe the 'tidy' format for data;
  • be able to describe the benefits of using R notebooks for analysis;
  • be able to read tabular data from a file to a dataframe, create new variables, filter, summarise and sorting data in R;
  • be able to reshape data for example by joining multiple datasets together;
  • be able to work with strings and dates.

Who should attend this course:

This course is aimed at those who already have some programming experience with R. It assumes familiarity with things like: creating and setting variables, the basic data structures (dataframes, vectors, lists), using functions, running R code and viewing console output, installing R packages and using R packages in your own code. Experience with R notebooks is not required.

Presenter:

Thomas Hawes.

Before the course:

Participants will need to bring their own laptops and have already installed on their computers both R (version 4.3.0 or later) and RStudio (used to work with R notebooks) - both are available from the University's Company Portal software repository.

Introduction to Unix

Dates (2 part course) : 6 & 13 March 2024 (both 1 pm - 4 pm).  You are expected to attend both sessions. 

Registration: 

Please register via this form.

Completing the above form registers your interest in attending the workshop but does not guarantee you a place on your chosen course. Places will be allocated on a first come first served basis once registration closes and you will be asked to re-confirm your availability to attend. 

We typically find that the places to attend virtually fill up quickly, so if you are able to attend in person, we encourage you to select this option (or at least the flexible option) to increase your chances of getting a place.

Registration will close on  : Tuesday 27 February 2024 (or before if over subscribed).

About this Course:

Over two sessions, this course will introduce you to navigating the file system and show you how to carry out basic operations on the Unix systems using the shell (also referred to as the command line).

Learning outcomes: 

By the end of the course you will:

  • Describe what the shell is and how do you access it;
  • Navigate around the unix filesystem;
  • Inspect and manipulate files;
  • Automate tasks via scripts;
  • Run programmes outside of IDEs and notebooks.

Who should attend this course:

Anyone with no or little experience of the command line looking to learn the essentials.

Presenter:

Eilis Hannon.

Before the course:

Participants will need to bring their own laptops and have access to a shell terminal. Installation instructions will be available on the course website. Participants will be directed to a course webpage where they can find installation instructions and more details.

Introduction to R - Beginner to Intermediate

Dates (3 part course) : 9, 16 & 23 January 2024 (all 10 am - 1 pm).  You are expected to attend all three sessions. 

Registration: 

Registration for this course - click here.

Completing the above form registers your interest in attending the workshop but does not guarantee you a place on your chosen course. Places will be allocated on a first come first served basis once registration closes (2 January 2024) and you will be asked to re-confirm your availability to attend. 


We typically find that the places to attend virtually fill up quickly, so if you are able to attend in person, we encourage you to select this option (or at least the flexible option) to increase your chances of getting a place.

Registration closes : 2 January 2024.

About this Course:

R is a programming language and software environment primarily focused on performing statistics, data analysis and visualisation. This hybrid course will provide an all-purpose introduction to the R programming language and may provide an accessible entry to computer programming in general.

Throughout the workshop learners will be taught using RStudio and introduced to best practises from the beginning including how to document your work in a script. Over three sessions you will learn how to import, manage and process data for statistical analysis and visualisation.  At the end of the workshop the participants will have a solid understanding of how to run R commands and the properties of R objects, providing a solid basis for self-guided learning of more complex analyses.

Learning outcomes: 

By the end of the course you will:

  • Use Rstudio to create scripts and run R based programmes.
  • Introduced to some fundamental programming terminology and concepts such as variable, function, for loops that is transferable to other programming languages.
  • Understand the different objects for storing data and the importance of different data types.
  • How to read in data, manipulate it and save the output.
  • Perform some basic inferential statistical tests.
  • Visualise data in commonly used figures.

Who should attend this course:

This workshop is aimed at novices and is designed to give attendees a strong foundation from which they can continue to develop their skills. No previous experience of R or programming is required.

Presenters:

Jamie Harrison.

Before the course:

Participants will need to bring their own laptops. R and RStudio will need to be installed prior to the start of the workshop (detailed installation instructions will be available on the course website).

 

Introduction to Julia

Dates (3 part course) : 24 November, 1 & 5 December 2023 (all 10.30 am - 12.30 pm).  You are expected to attend all three sessions. 

Registration for this course has now closed.

Please note that this workshop is IN PERSON only on the Streatham Campus, Digital Humanities.

Completing the above form registers your interest in attending the workshop but does not guarantee you a place on your chosen course. Places will be allocated on a first come first served basis once registration closes and you will be asked to re-confirm your availability to attend. 

Registration closed : 17 November 2023.

About this Course:

This is practical workshop for those new to the Julia programming language, a relatively new language developed especially for scientific computing and scientific analytical workflows.

Learning outcomes: 

By the end of the course you will:

  • Have an appreciation of Julia programming language, what are its strengths, and why it is particularly suited for science.
  • Gain the basics of the Julia programming language, including syntax, core data structures, functions, iteration, broadcasting.
  • Be able to use Plotting with the powerful Makie framework.
  • Have an overview of some of most used packages of the language, including differential equations, dynamical systems, scientific project management, file i/o, distributions and statistics, tabular data analysis, and how to find the packages that are most suitable for a given task.

Who should attend this course:

Beginner level new to Julia programming language however the workshop assumes some programming basics that should be covered by prior exposure to any other programming language.

Presenters:

Fliss Guest.

Before the course:

Participants will need to bring their own laptops.  Installation instructions will be available on the course website, details of which will be circulated beforehand.

Good Practice - details to follow.