Computer Systems, Software Engineering & High-Performance Computing

Information on the specialist area of Computer Systems, Software Engineering & High-Performance Computing.

This specialist area embraces both the theory and the practice of designing programmable systems, with topics ranging from advanced programming concepts to the design of computer systems and software engineering. As with other specialist areas, this Computer Systems, Software Engineering & High-Performance Computing prepares students for Ph.D. study and for careers in the software industry.

Students registered in this Specialist Area are recommended to select at least fifty credit points from the courses below. Courses are subject to availability.


Semester 1 Semester 2
Main Optional Courses

Computer Design (20 credits, level 9)

Compiling Techniques (20 credits, level 10)

Software Design and Modelling (20 credits, level 10)

Advances in Programming Languages

Design and Analysis of Parallel Algorithms

Extreme Computing

Human-Computer Interaction

Performance Modelling

Operating Systems (20 credits, level 9)

Computer Communications and Networks (20 credits, level 10)

Software Testing (level 10)

Compiler Optimisation

Parallel Architectures

Parallel Programming Languages and Systems

Software Architecture, Process, and Management

The Human Factor: Working with Users

Further Optional Courses (see notes below)

Fundamentals of Data Management

HPC Architectures

Message-passing Programming

Numerical Algorithms for High Performance Computing

Threaded Programming

Advanced Message-passing Programming

Advanced Parallel Techniques

Data Analytics with High Performance Computing

Parallel Design Patterns

Performance Programming

Software Development

There are no core courses listed in this Specialist Area.

The further optional courses for this Specialist Area are offered by the Edinburgh Parallel Computing Centre. These courses have regular essential lab sessions, which require a Physics computing account. There is usually a drop-in session at the beginning of the year to get set up with a Physics computing account, and to pass on any other important induction information.

Edinburgh Parallel Computing Centre

Additional note on course selection

Some courses have pre- and co-requisites listed in their linked description.  For example, later parts of the external Parallel Programming Languages course assume knowledge of MPI and OpenMP, as taught in Message-Passing Programming and Threaded Programming.  Also the Advanced Parallel Programming course has extensive prerequisites. Special permission from EPCC would be required to waive some of these.

Related links

Informatics sortable course list

Informatics course timetable