The foundation level courses are designed for students who want to run someone else code on an HPC system. They focus on the key skills needed to gain access to an HPC environment, navigate using BASH, and successfully launch jobs using a workload manager such as Slurm.

These courses also establish good foundational practices for future training, should students choose to progress into software maintenance or development.

Develop the essential skills needed to work effectively in computational research environments through this course.

Navigating and Working in HPC Environments provides a practical introduction to Bash, equipping you with the essential skills to interact with and manage Linux-based systems effectively.

Skill Level: Beginner

Dive into Git, the industry-standard version control system, and learn how to manage your code and collaborate effectively as part of a team.

Managing Code and Collaborating Effectively provides a practical introduction to Git, equipping you with the essential skills to organise, track, and safeguard your code while collaborating seamlessly within teams.

Skill Level: Beginner

Master the core principles of Software Engineering and gain the skills to write clear, efficient, and maintainable code for HPC applications through this course.

Building Robust and Maintainable Code provides a practical introduction to Software Engineering, developing  your understanding of good programming practices and preparing you to build reliable software for research and technical applications.

Skill Level: Beginner

Understand the importance of good documentation, code review processes, and testing practices, and their impact on the long-term viability of HPC code.

Ensuring Quality and Reliability in Code provides a practical introduction to software testing, documentation, and code review, equipping you with the essential skills to produce reliable and maintainable software. 

Skill Level: Beginner

Explore the challenges of scalability and learn how to address them to develop efficient parallel code for HPC environments.

Developing Efficient Parallel Code provides a practical introduction to key concepts to successful HPC applications, such as scalability and parallel computing, helping you navigate scaling issues and troubleshoot them to build efficient parallel code.

Skill Level: Beginner