Graduate Modules

Many Irish graduate students are enrolled in structured PhD programmes where they must complete courses/modules and attain ECTS credits. In collaboration with the School of Physics at NUI Galway and other Irish universities, we offer some of our courses as accredited graduate modules. This means that graduates can attain ECTS credits upon successful completion of our modules based on participation in face-to-face lectures/practical sessions and grading of submitted homework assignments.

We currently offer two modules that are described below. These modules typically involve 4 days of face-to-face lectures and practical sessions (note that the 4 days may be non-consecutive). Homework assignments will be distributed to students at the course; students must complete the assignments, submit their work to ICHEC instructors on time and achieve a final mark of >40% in order to receive ECTS credits.

Scientific Programming Concepts

This module is an introduction to programming concepts aimed at scientists who have had minimal or no formal training in the subject. The focus is on C and Fortran yet the general concepts should be applicable to other programming languages. The main topics covered in this module includes: overview of computer architecture, the Linux shell, the imperative programming paradigm, data types & arithmetic operations, loops & conditional statements, object-oriented programming, standard libraries, compilation, C pointers and memory management, modern Fortran, scripting languages and an introduction to HPC concepts.

On successful completion of this module, students should be able to:

  • Gain an understanding of what constitutes a computer program and how it is constructed.
  • Comprehend written source code.
  • Write and compile basic programs in C/Fortran.
  • Make use of standard libraries in own code.

In order to gain 5 ECTS credits for participation in this module, students are required to attend all 4 days of the course and achieve a pass grade (final mark of >40%) based on 2 assignments to be distributed. The assignments need to be submitted to the instructors within the designated deadlines (typically 4 weeks after each assignment is given) for marking. Each assignment carries 50% of the final mark.

Graduate module course code: PH502 (NUIG); SE6006 (UCC); ACM40660 (UCD).

HPC & Parallel Programming

This module introduces key topics in high performance computing (HPC), including parallel programming. Prior programming experience; basic knowledge of UNIX/Linux shell is expected. It covers topics such as evolution of computer architecture, HPC concepts and scientific applications, parallel decomposition, shared memory multiprocessing programming (OpenMP), the Message Passing Interface (MPI) and numerical libraries.

On successful completion of this module, students should be able to:

  • Understand key HPC concepts and how they are applied in scientific research.
  • Devise parallel strategies to solve computational problems.
  • Develop basic parallel applications using OpenMP and/or MPI.
  • Leverage numerical libraries for better performing code.

In order to gain 5 ECTS credits for participation in this module, students are required to attend all 4 days of the course and achieve a pass grade (final mark of >40%) based on 2 assignments to be distributed. The assignments need to be submitted to the instructors within the designated deadlines (typically 4 weeks after each assignment is given) for marking. Each assignment carries 50% of the final mark.

Graduate module course code: PH504 (NUIG); SE6009 (UCC); ACM40640 (UCD).