Skip to main content
Ctrl+K
Home Page - Home Home Page - Home
  • Coding for Reproducible Research (CfRR) Training Programme Home Page

What is Coding For Reproducible Research?

  • About Us
  • How to Use This Website
  • Course Delivery Styles

Courses We Offer

  • Workshop Schedule and Sign-up
  • Workshop Information
    • Coding Languages
      • Julia
        • Introduction to Julia
      • Python
        • Introduction to Python
        • Python for Data Analysis
        • Introduction to Machine Learning
        • Using Markdown for Python
      • R
        • Introduction to R
        • Introduction to Regression with R
        • Regression Analysis in R: Adapting to Varied Data Types
        • Mixed Effects Regression with R
        • Working With Data in R
        • Improve Your R Code
        • Introduction to Markdown in R
      • Unix
        • Introduction to Unix
    • Coding Practices
      • Computational Thinking
        • Computational Thinking
      • High Performance Computing
        • Introduction to HPC
        • Parallel Computing
      • Software Development
        • Software Development Best Practice
      • Version Control
        • Introduction to Version Control
        • Intermediate Version Control
      • GPUs
        • Introduction to GPUs
    • Drop In Sessions
      • Languages Drop In Sessions
      • Practices Drop In Sessions

What Courses Should I Take?

  • ‘Where Is My Understanding?’ Quizzes
    • Coding Languages
      • Julia
        • Introduction to Julia
      • Python
        • Introduction to Python Quiz
        • Python for Data Analysis Quiz
        • Introduction to Machine Learning Quiz
        • Using Markdown for Python
      • R
        • Introduction to R Quiz
        • Introduction to Regression with R
        • Regression Analysis in R: Adapting to Varied Data Types
        • Working With Data in R Quiz
        • Improve Your R Code
        • Introduction to Markdown with R
      • Unix
        • Introduction to Unix Quiz
    • Coding Practices
      • Computational Thinking
        • Computational Thinking Quiz
      • High Performance Computing
        • Introduction to HPC Quiz
        • Parallel Computing Quiz
      • Software Development
        • Software Development Best Practice Quiz
      • Version Control
        • Introduction to Version Control with Git and Github Quiz
        • Intermediate Version Control Quiz
      • GPUs
        • Introduction to GPUs Quiz
  • How do these courses relate?
    • High Performance Computing
    • R Data Science
    • Python Data Science

Workshop Self Study Notes

  • Coding Languages
    • Julia
      • Introduction to Julia
        • Introduction
        • Variables
        • Operations
        • Control Flow
        • Functions
        • Arrays
        • Input and Output (I/O)
        • Package Management
        • Performant Code
        • Project: Conway’s Game Of Life
        • Implemented: Conway’s Game Of Life
        • Plotting (Visualisation)
        • Working with Multiple Files in Julia
        • Resources
    • Python
      • Introduction to Python
        • Motivation and Background
        • Python Fundamentals
        • Lists
        • Dictionaries
        • Control Flow
        • Loops
        • Additional Session 1 Exercises
        • Session 1 Recap
        • Functions
        • Imports
        • Data Analysis Introduction
        • Data Analysis Task 1
        • Data Analysis Task 2
        • Data Analysis Task 3
        • Resources
      • Python for Data Analysis
        • NumPy
        • Pandas
        • Matplotlib
        • Scikit-Learn
        • Plotly
        • Example Project
        • Resources
      • Introduction to Machine Learning
        • Linear regression
        • Model selection
        • Build a machine learning pipeline
        • Unsupervised learning
        • Resources
      • Using Markdown for Python
        • Motivation: Why use Markdown with Python?
        • Text Formatting in Markdown
        • Exercise 1
        • How to Embed Python Code in Markdown
        • Saving and Exporting Notebooks in Jupyter Notebook
        • Exercise 2
        • Further Knowledge
        • Resources
    • R
      • Introduction to R
        • Getting Up and Running with R
        • Running Commands With R
        • Data Types and Structures
        • Loading Data
        • Manipulating Datasets
        • Control Flow
        • Plotting in R
        • Statistical Analysis
        • Establishing Good Practices when Coding
        • Resources
      • Introduction to Regression with R
      • Regression Analysis in R: Adapting to Varied Data Types
      • Mixed Effects Regression with R
      • Working With Data in R
        • Tidyverse
        • Loading Data
        • Manipulating a Dataframe
        • Piping and Functional Style
        • Combining Datasets
        • Reshaping Data
        • Strings and Dates
        • Summary
        • Resources
      • Improve Your R Code
      • Introduction to Markdown in R
        • A General Background to Markdown
        • Getting Started
        • Components of an R Markdown Document - A Visual Prelude
        • Components of an R Markdown Document - The YAML header
        • Components of an R Markdown Document - Formatted Plain Text
        • Components of an R Markdown Document - Embedded Code
        • Processing R Markdown Documents
        • Summary
        • Resources
    • UNIX
      • Introduction to UNIX
        • Introducing the UNIX shell
        • File Directory
        • Working With Files and Directories
        • Pipes and Filters
        • Loops
        • Shell Scripts
        • Finding Things
        • Additional Topics
        • Resources
  • Coding Practices
    • Computational Thinking
      • Computational Thinking
        • Computational Thinking
        • Algorithms
        • Decomposition
        • Pattern recognition
        • Abstraction
        • Aligning the human solution with the computer
        • Sudoku task
        • Resources
    • High Performance Computing
      • Introduction to HPC and ISCA
        • Why might I want to use a HPC Cluster?
        • Exeter supported HPC facilities
        • Getting Started with ISCA
        • File Transfer Methods
        • Running a job on a HPC system
        • Loading software packages on HPC
        • Running more complex jobs on a HPC system
        • Harnessing the power of the scheduler
        • Resources
      • Parallel Computing
        • CPU Architecture and Concurrency
        • Python Multithreading
        • Python Multiprocessing
        • MPI Hello World
        • MPI Simple Communication
        • MPI Collective Communication
        • MPI real world example
        • Resources
    • Software Development
      • Software Development Best Practice
        • Software Development Life Cycle & Methodologies
        • Data Management
        • Problem Solving
        • Virtual Environment and Dependency Managers
        • Version Control
        • Readable Code and Documentation
        • Testing
        • Collaboration
        • Reproducibility
        • Resources
    • Version Control
      • Introduction to Version Control
        • Motivation: Why use Version Control Systems?
        • Git vs GitHub
        • Setting up Git and GitHub
        • Making Repositories
        • An Example Repository
        • Recording Changes
        • Viewing History and Changes
        • Recording Changes – Revisited
        • Pushing To and Pulling From the Remote Repository
        • Undoing Changes
        • Ignoring Files
        • Working with Local Branches
        • Remote Branches with GitHub
        • Collaborating with Branches
        • Merge Conflicts
        • Resources
      • Intermediate Version Control
        • Introduction
        • Configuring Git
        • Basic Git
        • Typical Workflow
        • Branches and Merging
        • Working with Remotes
        • GitHub Workflows
        • Rewriting the History
        • Some Additional Topics
        • Resources
    • GPUs
      • Introduction to GPUs
        • Context and Setup Guide
        • Understanding GPUs, CPUs, and Compilers
        • Spack
        • Slurm Job Scheduling
        • Project: Conway’s Game of Life - CPU vs GPU Implementation
        • Profiling and Optimisation of CPU and GPU Code
        • 3D Temperature Diffusion Model: Bringing it all together
  • Bibliography

Short Courses

  • Overview
  • Python
    • Python Environments
    • Python Advanced Language Features
    • Python Checking and Testing Code
  • R
    • R Environments
    • Writing Functions in R
    • Unit testing in R with testthat
  • Best Practices
    • Data Science Project Best Practices
  • Using Git and GitHub via Graphical User Interfaces (GUI)

Resources

  • Overview

Join Us!

  • Research Coding Community
  • Contributing to CfRR
  • Roles
  • CfRR Course Standards
  • Developing a Course Guidance
  • New Course Checklist and Timeline
  • Feedback

Community Guidelines and Policy Information

  • Code of Conduct
  • Report Code of Conduct Violations
  • Accessibility Statement for CfRR Courses
  • Programme Policies
  • Repository
  • Open issue

Index

By Coding For Reproducible Research Community

© Copyright 2026.