# Training and Workshops

These workshops can be delivered in-person or remotely, and will be tailored to your existing skillset and area of application. They can be delivered to individuals or small groups (up to 14 people).

## R

R is a programming language that can be used for many things, commonly for statistical modelling and data visualisation.

### Introduction to R

Learning outcomes:

- Understand the difference between R and RStudio, and how RStudio works.
- Be able to complete simple operations in R such as saving objects, performing calculations, and reading in data.
- Calculate summary statistics, and make simple plots of data.

Pre-requisites:

- None.

Time: 1-3 hours (depending on your existing experience).

### Introduction to Shiny

Learning outcomes:

- Understand the different components of a Shiny app - UI and server.
- Be able to build a simple Shiny app with user inputs and dynamic outputs.
- Understand options for deployment - to get your Shiny app out into the world!

Pre-requisites:

- Basic knowledge of R.

Time: 2 hours.

### Building R packages

Learning outcomes:

- Understand what an R package consists of, and how to create the basic framework for a package.
- Add documentation to the functions in your R packages.
- Be able to build and run unit tests for the functions in your package.

Pre-requisites:

- Comfortable using R and able to write your own (simple) functions.

Time: 3 hours.

## Quarto

Quarto is an open-source scientific and technical publishing system that allows you to combine text, images, code, plots, and tables in a fully-reproducible document. Quarto has support for multiple languages including R, Python, Julia, and Observable JS. It also works for a range of output formats such as PDFs, HTML documents, websites, and presentations.

### Introduction to Quarto

Learning outcomes:

- Understand what Quarto is and why it is useful for reproducible reporting.
- Be able to create simple HTML documents, PDFs, and revealjs presentations, with embedded code.
- Be able to set different options for: code execution, figure options, animation, and more!

Pre-requisites:

- Basic knowledge of R, Python, Julia, or ObservableJS.

Time: 2 hours.

### Quarto for research

Learning outcomes:

- Understand what Quarto is and why it is useful for research.
- Be able to create simple Quarto documents in PDF and HTML.
- Create a (APA) style manuscript.
- Be able to integrate referencing, LaTeX equations, and other elements that are useful for academic publishing.

Pre-requisites:

- Able to run simple commands in either R or Python.

Time: 2 hours (can be combined with *Quarto for teaching* for a 4 hour workshop)

### Quarto for teaching

Learning outcomes:

- Be able to make revealjs slides for talks and lectures.
- Add interactive code blocks with webR or pyodide for teaching programming.
- Create a parameterised tutorial worksheet with features for showing and hiding solutions.
- Automate the production of tutorials for students.

Pre-requisites:

- Able to run simple commands in either R or Python.
- (Ideally) able to create simple Quarto documents.

Time: 2 hours (can be combined with *Quarto for research* for a 4 hour workshop)

### Styling documents using Quarto extensions

Learning outcomes:

- Know how to customise Quarto HTML outputs (including documents and revealjs slides) using CSS and PDF documents using LaTeX.
- Understand what Quarto extensions are, how to install them, and use them for styling documents.
- Know what the components of Quarto extensions are and be able to create a simple style extension to make your documents look more professional and recognisable.

Pre-requisites:

- (Ideally) able to create simple Quarto documents.
- No prior knowledge of CSS or LaTeX required.

Time: 2 hours.

## Statistics and Modelling

### Introduction to machine learning with {tidymodels}

Learning outcomes:

- Be able to use some common machine learning techniques such as Lasso regression, random forests and support vector machines.
- Fit these models in R using {tidymodels}.
- Understand common concepts of machine learning such as cross-validation, hyperparameter tuning and model evaluation.

Pre-requisites:

- Familiarity with some statistical concepts such as correlation, variability, and simple linear regression.
- Being reasonably comfortable with data wrangling using {dplyr} and {tidyr}.

Time: 2 hours.

### Forecasting with GAMs in R

Learning outcomes:

- Know what generalised additive models (GAMs) are.
- Understand why and when GAMs might be appropriate for certain types of data.
- Be able to fit and evaluate GAMs using the {mgcv} package in R.
- Understand how to interpret the output from fitted models.

Pre-requisites:

- Basic knowledge of R.
- Familiarity with some statistical concepts such as correlation, variability, and simple linear regression.

Time: 2 hours.

## Data Visualisation

Data visualisation is essential for exploratory analysis, and for effectively communicating results.

### More effective data visualisation

Learning outcomes:

- Understand why data visualisation is necessary, and what it can be used for.
- Describe and apply principles of good data visualisation.
- Discuss the limitations of principles.

Pre-requisites:

- None.

Time: 1 hour.