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:Extreme Computing (10 credits) Not delivered 2024/25Principles and Design of IoT Systems(20 credits) Programming for Data Science at Scale (10 credits) (part replaces Extreme Computing)Semester 2:Machine Learning Systems (20 credits) (part replaces Extreme Computing)Parallel Programming Languages and Systems (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 (10 credits) HPC Architectures (10 credits) Message-passing Programming (10 credits) Numerical Algorithms for High Performance Computing 10 credits) Threaded Programming (10 credits) Semester 2:Advanced Message-passing Programming (10 credits) Advanced Parallel Techniques (10 credits) Not delivered 2024/25High Performance Data Analytics (10 credits) Parallel Design Patterns (10 credits) Performance Programming (10 credits) 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 (20 credits, Semester 2) Computer Architecture and Design (20 credits, Semester 1) Computer Communications and Networks (20 credits, Semester 2)Operating Systems (20 credits, Semester 2) Related topicsThe most relevant related course topics are listed below. Many of these include courses that involve a computer system or a high-performance computing component. Machine learning is now used in many areas of computer systems, so if you are considering taking a machine learning course, please read the guidance on that page.Cyber Security & PrivacyDatabases and Data ManagementMachine LearningSoftware Engineering This article was published on 2024-12-08