Time Description
9:00-9:15 Arrival at Newnham College
9:15 - 9:30 Welcome and Introduction - Lucia Windsor
9:30 - 11:00 RSE Skills (Part 1) - Lucia Windsor
Jack Atkinson, ICCS
Marion Weinzierl, ICCS

Much of the code used in research is written to a base standard to achieve an immediate goal. Further, it is often written in a fluid style as science develops. Whilst this is fast in the short-term, it does not lend well to re-usability by others (or even the future author!) or to well-written and structured code.
The aim of this session is to introduce basic key tools and concepts of research software engineering, and how they can be applied in everyday use to write higher-quality code, reduce bugs, and facilitate re-use.
The workshop will be taught using Python for familiarity, but the concepts map to other languages with pointers to equivalent tools where relevant.
GitHub Repo: https://github.com/jatkinson1000/rse-skills-workshop.

Pre-requisites:
Have a working Python 3 installation on your system.
Clone the workshop repository in advance of the session: https://github.com/jatkinson1000/rse-skills-workshop
An expectation of basic programming skills, the ability to read and follow python code, and an enthusiasm to learn better practices - it is worth emphasising that many of the concepts will map across to other languages with pointers provided.
11:00 - 11:30 Break (tea and coffee)
11:30 - 12:30 Opening Keynote Presentation - Prof. Tamsin Edwards (King's College London)
Room: Lucia Windsor. Details TBC
12:30 - 13:30 Lunch (Newnham College Dining Hall)
13:30 - 15:00 Track 1 Explainable data science with the Fluid language  - Lucia Windsor
Roly Perera, ICCS

Fluid is a new programming language designed to support transparent visualisation and reporting in research software. Fluid provides a runtime environment with built-in dependency tracking, which is used to integrate transparency and data lineage directly into charts and figures through additional interactions. Selecting a graphical element in a chart can automatically reveal the relevant underlying data, and highlight elements in other visualisations that use the same data.
Fluid also supports data lineage for textual content. For example, if a paragraph of a climate report claims that under a particular emissions scenario, global warming of 2°C is “extremely likely” to be exceeded in the 20th century, a Fluid program can link key fragments of text to the underlying data and queries over those data sets, so that someone interested in exploring the evidence base can drill into the underlying data without leaving the context of the report.
This presentation will introduce Fluid's syntax and execution model and demonstrate the current tooling. The session will be relevant to data scientists and research software engineers interested in data visualisation, interpretability and science communication. You can find out more at http://f.luid.org.

Pre-requisites:
Basic familiarity with functional programming and data types (lists, dictionaries, etc)
13:30 - 15:00 Track 2 Introduction to HPC - Sidgwick Hall
Chris Edsall, ICCS
Details TBC
15:00 - 15:30 Break (tea and coffee)
15:30 - 17:00 Track 1 Introduction to Git and GitHub for beginners - Lucia Windsor
Marion Weinzierl, ICCS
Sam Avis, ICCS
Niccolo Zanotti, ICCS

This session is aimed to help participants taking their first steps with version control using Git and Github. We will learn the basic principles of Git, how we can upload our code (or other data) to a remote repository, collaborate on it with colleagues, receive their changes, go back to previous versions, etc.
No more emailing files forth and back, no more "version5.78_final_final_use-this-one"!
This is a hands-on session with live-coding and exercises.
We will use the Unix shell in this course. Previous experience with using the shell would be helpful, but we will help you out if you haven't used it before.

Pre-requisites:
Install git on your computer, set up a Github account and the SSH key and MFA. You can follow the steps from here: https://swcarpentry.github.io/git-novice/ as well as https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account.
It would be useful for participants to watch this video from a previous summer school before the course.
15:30 - 17:00 Track 2 Intermediate Git and GitHub - Sidgwick Hall
Jack Atkinson, ICCS
Adeleke Bankole, ICCS

Version control (e.g. Git) is commonly used to back up research code. However, its functionalities extend far beyond this. Effective use of a version control system can improve code, reduce bugs, enhance collaboration, and speed up research.
In this session we recap the key concepts of Git before exploring how to use GitHub as a place to store your work, the additional tools it provides to aid software development, and associated workflows to enhance collaboration.
The course will use some Python code, though an expert understanding is not required. Previous use of basic Git commands (committing, pushing, pulling) and the ability to clone a repository from GitHub/GitLab is expected.
GitHub Repo: https://github.com/jatkinson1000/git-for-science

Pre-requisites:
Have a working Python 3 installation on your system.
Have Git on your system. Installed by default on Linux and most mac systems, see https://github.com/git-guides/install-git for details.
Basic programming skills, namely the ability to read Python code.
Familiarity with basic git commands (namely: clone, add, commit, push, pull) is assumed, with a brief recap in the session.
17:00 - 17:45 Free time
17:45 - 18:30 Transport to Madingley Hall will depart from Churchill College
18:30 - 22:15 Pre-dinner drinks reception and dinner at Madingley Hall
Transport to Churchill College will depart from Madingley Hall at 21:45