Course options and guidance for the Computer Systems and High-Performance Computing topic area What will I learn from courses in this topic?This topic embraces both the theory and the practice of designing, optimising and programming computer systems, with topics ranging from advanced programming concepts to the design of computer systems. Developing such systems requires understanding of a broad range of fundamental concepts as well as the engineering methods used to design and optimised them.The Computer Systems and High Performance specialist area aims to provide students with the conceptual knowledge and practical skills needed for entry into PhD programmes or employment focussed on research or development of computer systems and systems software.How can I best prepare for these courses?ProgrammingIf you haven't programmed in a variety of programming languages (e.g. C/C++, Java) before, we recommend you start to learn these before you arrive.What courses are available?Edinburgh has strong programmes in both Computer Systems and High-Performance Computer. You can take courses in one or both of these areas. Depending on your background and interests, you can also choose to supplement these with courses on Programming Languages, Software Engineering, or Databases and Data Management.Level 11 (MSc) coursesSemester 1:Distributed Systems INFR11022 (10 credits)Principles and Design of IoT Systems INFR11150 (20 credits)Programming for Data Science at Scale INFR11255 (10 credits)Semester 2:Machine Learning Systems INFR11269 (20 credits)Parallel Programming Languages and Systems INFR11023 (10 credits)Applied Cloud Computing INFR11245 (10 credits)Level 11 (MSc courses) offered by EPCCThe Edinburgh Parallel Computing Centre (EPCC) is affiliated with the School of Informatics but runs its own MSc programmes. These courses are part of the EPCC MSc programmes, which tend to have a more applied focus than the Informatics MSc programmes, providing training in particular parallel programming languages and techniques. Several of these are meant to be taken together as part of their MSc programmes, so check the prerequisites and corequisites carefully before registering. These courses may have quotas, so register as early as possible.Edinburgh Parallel Computing CentreSemester 1:Design and Analysis of Parallel Algorithms EPCC11007 (10 credits)Message-passing Programming EPCC11002 (10 credits)Threaded Programming EPCC11003 (10 credits) Semester 2:Parallel Design Patterns EPCC11010 (10 credits)Additional courses at Level 11, which are not included as part of the Informatics MSc programmes CS Foundations, Systems and Software, includes and are not limited to the following:Numerical Algorithms for High Performance Computing EPCC11006 10 credits, Semester 1)HPC Architectures EPCC11004 (10 credits, Semester 1)Performance Programming EPCC11009 (10 credits, Semester 2)Advanced Message-passing Programming EPCC11012 (10 credits, Semester 2)High Performance Data Analytics EPCC11014 (10 credits, Semester 2) Level 10 coursesThese courses are mainly intended for undergraduates, but may also be taken by MSc students. As such, they tend to provide a broader introduction to the topic than a Level 11 course. Many students on the Computer Science MSc will have done similar courses elsewhere, but if you have not, it may be worth registering for one of these courses. Students on other degrees are also welcome to take them if you have the prerequisites.Compiling Techniques INFR10065 (20 credits, Semester 2)Computer Architecture and Design INFR10076 (20 credits, Semester 1)Computer Communications and Networks INFR10074 (20 credits, Semester 2)Operating Systems INFR10079 (20 credits, Semester 2) This article was published on 2025-09-16