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 training.nci@anu.edu.au.


Prerequisites

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