¹û¶³Ó°Ôº

XClose

¹û¶³Ó°Ôº Module Catalogue

Home
Menu

Research Computing with C++ (COMP0210)

Key information

Faculty
Faculty of Engineering Sciences
Teaching department
Computer Science
Credit value
15
Restrictions
Module delivery for PGT (FHEQ Level 7) is not restricted (i.e., can be selected on any programme for which it is permitted.)
Timetable

Alternative credit options

There are no alternative credit options available for this module.

Description

Aims:

In this module, you will learn how to create effective, reliable, fast C++ for numerically intensive research.

The module aims to:

  • Prepare students to write well-engineered, reliable, tested C+.
  • Build familiarity with tools, libraries and techniques used in research computing.ÌýÌýÌý
  • Prepare students to use high-performance parallel research computing platforms.

Intended learning outcomes:

On successful completion of the module, a student will be able to:

  1. Understand the role of C++ in programming for research
  2. Setup a C++ project using modern build tools (e.g., CMake) and unit testing frameworks (e.g., Catch2).
  3. Write safe, extensible, performant C++17 using templates, object-oriented design, programming patterns and other modern techniques and language features
  4. Understand current C++ good practices and the balance between various aspects of code quality
  5. Utilise the C++ standard library.
  6. Write effective unit tests.
  7. Effectively use C++ tooling: pre-processors, compilers, linkers, debuggers, linters and profilers.
  8. Import and use libraries using modern C++ package managers and build systems.
  9. Profile and optimise C++ code for performance.
  10. Write parallel code targeting multi-core CPUs using OpenMP, and multi-node distributed systems using MPI.

Indicative content:

The following are indicative of the topics the module will typically cover:

  • Developing a C++ project.
  • Modern C++.
  • Libraries in C++.
  • C++ tooling.
  • Performance profiling and optimisation.
  • Parallel programming with OpenMP and MPI.

Requisites:

To select the module as an optional or elective, a student must: (1) be registered on a programme on which it is formally available; (2) be familiar with common programming concepts in any compiled language (e.g., be able to create variables, distinguish between different data types, implement control flows blocks, etc); and (3) understand running programs from the command line.

Module deliveries for 2024/25 academic year

Intended teaching term: Term 2 ÌýÌýÌý Postgraduate (FHEQ Level 7)

Teaching and assessment

Mode of study
In person
Methods of assessment
100% Coursework
Mark scheme
Numeric Marks

Other information

Number of students on module in previous year
27
Module leader
Mr Michael Mcleod
Who to contact for more information
cs.pgt-students@ucl.ac.uk

Intended teaching term: Term 2 ÌýÌýÌý Undergraduate (FHEQ Level 7)

Teaching and assessment

Mode of study
In person
Methods of assessment
100% Coursework
Mark scheme
Numeric Marks

Other information

Number of students on module in previous year
16
Module leader
Mr Michael Mcleod
Who to contact for more information
cs.pgt-students@ucl.ac.uk

Last updated

This module description was last updated on 8th April 2024.

Ìý