Page tree

Many scientific modelling programs are written in C, as it is one of the most popular programming languages used by the HPC community. This course covers the basic concepts of C programming, including syntax, core features, and best practices. It targets students and researchers who have little to no programming background, but would like to learn a low level programming language in depth. Those with some basic C knowledge will also likely learn something new.

Note that although C++ is not covered directly, the vast majority of the content is directly transferable as a starting point for learning C++.

If you have any questions regarding this training, please contact


Online Workshop

9 am - 12 pm Canberra time

Registration is open now


The training session is driven on the Australian Research Environment (ARE) and Gadi. Attendees are encouraged to review the following pages for background information:

Learning Outcomes

At the completion of this training session, you will be able to:

  • Gain confidence reading and writing C code
  • Understand pointers, references, and memory management
  • Understand basic principles for writing safe, maintainable C code
  • Know how to begin a project
  • Gain the prerequisite knowledge required to understand the concepts covered in the 'Introduction to OpenMP' and 'Introduction to MPI' NCI HPC Toolkit courses.

Topics Covered
  • Syntax
  • Control flow (if/for/while/do/switch statements)
  • Datatypes
  • Operators
  • Pointers and references
  • Arrays and memory management
  • Stack vs heap
  • Recursion
  • Best practices for performance and memory safety
  • User-defined datatypes
  • Build system basics (make/cmake)

  • No labels