5 years
September 2026
The MSci (Hons) in Computer Science is a five-year Integrated Masters course offered by the School of Computer Science. The course is designed to ground you in both the theory and practice of computer science. You will learn to think and solve problems logically, understand the fundamental principles of how computing systems work, and be exposed to significant new technologies as well as teamwork.
In the first two years, you will learn the basic concepts behind computer science and several different programming languages.
Alongside computer science, in the first year of your studies you will be required to study at least one additional subject. In the second year, you can continue with this other subject or focus entirely on computer science. Find out more about how academic years are organised.
In third year, you will be introduced to the foundations of logic that are relevant to computer science, with an emphasis on automatic reasoning and decidability, and to theories of computation and complexity, including exploring Turing machines and pushdown automata.
You will apply software engineering concepts and practices to a substantial software engineering project as part of a team. This project runs through both semesters in third year and will prepare you for the workplace, where collaboration with others is essential.
In fourth year, you will choose options from Honours and Masters-level classes.
In fifth year, you will spend one semester dedicated to undertaking a major software engineering or research project under the guidance of an individual supervisor. You will also be able to take a number of modules at Masters level, providing advanced training in computer science topics.
The University of St Andrews operates on a flexible modular degree system by which degrees are obtained through the accumulation of credits.
Why study this course?
The MSci (Hons) in Computer Science will teach you the principles of computer science and computer systems. You will learn how to program computers and how systems are organised, designed and implemented. During your studies, you will both explore the theoretical basis of computer science and will develop practical skills in software engineering.
You will be able to build a degree programme around your interests and study specialist areas, such as artificial intelligence, human-computer interaction, computer security, video games, data encoding, databases, and operating systems.
A degree in computer science will allow you to enter into technical, academic, financial or commercial posts. Most companies and organisations are heavily invested in computer systems, and this has created a demand for many different specialisations in computer technology.
Graduates from computer science find careers as:
- business analysts
- systems architects and analysts
- software developers
- testers and verifiers
- technical writers
- IT trainers and user advisers
- project managers
Many computer science graduates undertake further study, here or elsewhere. The University offers a range of options, including MSc, EngD and PhD-level degrees.
Computer science at St Andrews allows you to study in a friendly and intimate environment. Small group teaching will put you on a first-name basis with internationally renowned researchers and teachers.
Computer science classes are taught using a variety of teaching methods in addition to traditional lectures, with an emphasis on personal and small-group teaching.
Typical class sizes:
- First year: lectures 80 to 200, labs up to 110, tutorials 6 to 8
- Second year: lectures 80 to 130, labs up to 100, tutorials 6 to 8
- Honours: lectures, labs and tutorials 25 to 140
When not attending lectures, tutorials and computer labs, you will be expected to continue learning independently through self-study. Typically, this will involve:
- working on individual and group projects
- using library and online resources
- preparing coursework assignments and presentations
- preparing for examinations
First year
Students will take the following compulsory first-year modules:
- Object-Oriented Programming: provides an introduction to object-oriented modelling and programming using Java.
- Programming with Data: explores various aspects of data storage, processing and analysis.
Second year
Students will take the following compulsory second-year modules:
- Foundations of Computation: introduces fundamental algorithms, data structures and ideas about formal languages at the heart of modern software.
- Foundations of Computation (Accelerated): Accelerated version of CS2001 for direct-entry only with background material from core first-year modules and all of CS2001.
- Computer Systems: develops skills in programming in C, systems programming, digital logic and low-level computer organisation.
Honours (third and fourth years)
In third year, you must take the following compulsory modules:
- Logic and Reasoning: covers the foundations of logic that are relevant to computer scientists, with an emphasis on automatic reasoning and decidability. Topics include propositional and predicate calculus, various proof techniques, and Goedel's incompleteness theorem.
- Computational Complexity: introduces Turing machines, non-determinism and pushdown automata, followed by study of decidability, simulation and the Halting Problem.
- Software Engineering Team Project: gives a broad overview of software engineering, presenting the fundamental aspects as a collaborative professional activity including its concerns and approaches. Students apply these concepts and practices to a substantial software engineering project as part of a team.
In addition to the compulsory modules, in third and fourth years, you will choose from a wide variety of advanced options, including modules in cyber security, video games and computer graphics.
Here is a sample of Honours modules which have been offered in previous years:
- Advanced Communication Networks and Systems
- Artificial Intelligence
- Component Technology
- Computer Architecture
- Computer Graphics
- Computer Security
- Concurrency and Multi-Core Architectures
- Constraint Programming
- Data Communications and Networks
- Data Encoding
- Databases
- Distributed Systems
- Human Computer Interaction
- Logic and Software Verification
- Operating Systems
- Programming Language Design and Implementation
- Signal Processing: Sound, Image, Video
- Video Games
Fifth year
During your final year you must take the following compulsory module:
- Individual Masters Project: allows students to spend one semester dedicated to undertaking a major software engineering or research project in a specific topic in computer science, such as Software Engineering, Artificial Intelligence, Human Computer Interaction or Networks and Distributed Systems under the guidance of an individual supervisor.
In addition to the compulsory module, you will be able to choose from a variety of modules at Masters level, providing advanced training in computer science. In previous years, Masters-level modules have included:
- Artificial Intelligence Principles
- Artificial Intelligence Practice
- Critical Systems Engineering
- Data Ethics and Privacy
- Data-Intensive Systems
- Human Computer Interaction Principles and Methods
- Information Visualisation
- Interactive Software and Hardware
- Language and Computation
- Machine Learning
- Principles of Computer Communication Systems
- Software Architecture and Design
- Software Engineering Principles