University of Bristol
  1. Course directory
  • About the training
  • Upcoming courses
  • Lunch and Learn talks
  • Course directory
  • Join our mailing list
  • Advice for teachers
  • Contacts

Course directory

Many of our training materials are also free for anyone to use as both self-led courses and pre-recorded videos via the links below. We also link to some external courses, where we think these would be valuable to the University of Bristol community.

Courses available

  • Fundamentals
  • Python
  • R
  • Julia
  • C, C++ and Fortran
  • Machine learning
  • Data visualisation
  • Software engineering
  • High performance computing (HPC)

Fundamentals

These are courses which are not specific to any programming language. They are useful skills to have regardless of the language you are using.

  • Introduction to the Command Line Interface
    • Beginner

    Most R and Python users will need to interact with the command line at some point, and a strong foundation really helps.

    Prerequisites: None

No matching items

Python

Python is a versatile programming language. In research it is often used for simulation, machine learning, and building data pipelines.

  • Introduction to Python (part 1)
    • Beginner

    From zero python to running your first script. Understanding data types and performing computations.

    • Course video

    Prerequisites: None

  • Introduction to Python (part 2)
    • Beginner

    Using packages, writing functions, and learning how to deal with errors you will encounter in analyses.

    • Course video

    Prerequisites: Beginning Python

  • Introduction to Data Analysis in Python
    • Intermediate
    • Data analysis

    Learn to use Pandas to query, combine and visualise your data as well as Seaborn to visualise them.

    • Course video

    Prerequisites: Beginning Python

  • Introduction to NumPy
    • Intermediate
    • Data analysis

    Learn to use NumPy to process n-dimensional grids of numbers.

    Prerequisites: Beginning Python

  • Parallel Python
    • Advanced

    Take advantage of the processing power of multicore processors and large compute clusters.

    Prerequisites: Intermediate Python

  • Accelerating Python
    • Advanced

    Learn how to use Numba and Cython to get the speed of C, C++ and Fortran, whilst keeping the convenience of Python.

    Prerequisites: Intermediate Python

No matching items

R

R is a programming language most often used for statistics. It has great libraries for data manipulation and visualisation.

  • Beginning R
    • Beginner

    From zero R to running your first script. Understanding data types and coding your first calculator!

    Prerequisites: None

  • Intermediate R
    • Intermediate

    Understanding how to use packages, write functions, and build complex pipes for analysis.

    Prerequisites: Beginning R

  • Introduction to Data Analysis in R
    • Intermediate
    • Data analysis

    Understanding how to use packages, write functions, and build complex pipes for analysis.

    Prerequisites: Intermediate R

  • Text and Sentiment Analysis in R
    • Intermediate
    • Data analysis

    Learn how to perform text and sentiment analysis tasks in R using the tidyverse collection of packages.

    Prerequisites: Introduction to Data Analysis in R

No matching items

Julia

  • Computational thinking with Julia
    • Beginner

    A 14 week course from MIT.

    Prerequisites: None

No matching items

C, C++ and Fortran

  • Beginning C++
    • Beginner

    Learn the basics of C++ modern programming.

    Prerequisites: None

  • Parallel Programming with C++
    • Intermediate

    Learn to write modern C++ programs that can take advantage of multicore processors.

    Prerequisites: Good basic understanding of C++, including loops, functions, containers and classes

  • Efficient Vectorisation with C++
    • Intermediate

    Learn what vectorisation is, and how you can use it to speed up your C++ programs on modern multicore processors.

    Prerequisites: Good basic understanding of C++, including loops, functions, containers and classes

  • Fortran1: The basics
    • Beginner

    Learn the basics of Fortran programming.

    Prerequisites: None

  • Introduction to Modern Fortran
    • Intermediate

    Learn how to use OpenMP to parallelise your C, C++ and Fortran code.

    Prerequisites: Knowledge of an older standard of Fortran, such as Fortran 77, or intermediate-level C or Python

  • Advanced Parallel Fortran
    • Advanced

    Learn how to use coarrays to parallelise your Fortran code.

    Prerequisites: Intermediate-level Fortran knowledge

  • Introduction to OpenMP
    • Advanced

    Learn how to use OpenMP to parallelise your C, C++ and Fortran code.

    Prerequisites: Intermediate-level C, C++ or Fortran knowledge

  • OpenMP for Computational Scientists
    • Advanced

    Learn how to use OpenMP to parallelise your Fortran code.

    Prerequisites: Intermediate-level Fortran knowledge

  • Introduction to MPI
    • Advanced

    Learn how to use MPI to parallelise your C, C++ and Fortran code.

    Prerequisites: Intermediate-level C, C++ or Fortran knowledge

No matching items

Machine learning

  • Applied Data Analysis in Python
    • Intermediate
    • Data analysis
    • Machine learning

    Learn to use scikit-learn for classic machine learning tasks.

    • Course video

    Prerequisites: Introduction to Data Analysis in Python

  • Introduction to Neural Networks and Deep Learning in Python
    • Intermediate
    • Machine learning

    Learn the basics of neural networks and how to use Keras (Tensorflow) to build and train neural networks.

    • Lecture slides
    • Lecture video

    Prerequisites: Applied Data Analysis in Python

No matching items

Data visualisation

  • Graphical Data Apps in Python
    • Intermediate

    Learn to use Streamlit to make an interactive dashboard for your data.

    Prerequisites: Introduction to Data Analysis in Python

No matching items

Software engineering

Any code you write for research should be maintainable, although we don’t think everyone needs to be a software engineer to be a good researcher. These courses can equip you with the skills to write more robust, reusable, and reproducible code.

  • Version control using Git
    • Beginner

    Git is useful for tracking and navigating through versions of your code.

    • Course video

    Prerequisites: None

  • Git for collaboration using GitHub
    • Intermediate

    As well as being useful for versioning your own code, Git is essential for coding collaboratively with others.

    • Course video

    Prerequisites: Version control using Git

  • Best practices in software engineering
    • Intermediate

    How to write code for an analysis that is robust, understandable and useable by others.

    • Course video

    Prerequisites: Recommended intermediate-level experience in, for example, R or Python

  • IDEs and Debugging
    • Beginner

    IDEs are software used to edit, run, and debug code. They have useful features which make your work easier.

    Prerequisites: Recommended beginner-level experience in, for example, R or Python

No matching items

High performance computing (HPC)

HPC is the use of computer clusters (also known as supercomputers) to solve advanced computation problems. These facilities allow you to queue processing jobs on machines that have large amounts of storage, memory or processing power.

  • Introduction to HPC
    • Beginner
    • HPC

    Learn what high performance computing is, the HPC facilities at the University and how to get help. Members of the University can also watch on Microsoft Stream.

    Prerequisites: None

  • Inroduction to Linux
    • Beginner
    • HPC
    • University only

    Elementary introduction to using Linux, for example on the University HPC.

    Prerequisites: None

  • Further Linux
    • Intermediate
    • HPC
    • University only

    Expands on the basic concepts and introduces additional commands useful to researchers in a HPC environment.

    Prerequisites: Introduction to Linux, or experience navigating between directories, creating new files and directories, manipulating files and using pipes and pipelines

  • Introduction to HPC with Slurm
    • Intermediate
    • HPC
    • University only

    An introduction to Linux and to our HPC clusters. It will help with creating bash scripts, HPC submission scripts and submitting jobs to the queue systems.

    Prerequisites: Access to BlueCrystal or BluePebble

No matching items

Many of the courses were originally developed by members of the University of Bristol’s Research Software Engineering group, with special thanks to Christopher Woods, Matt Williams and Al Tanner.

 

Supported by the Jean Golding Institute © CC-BY 4.0