All of our programmes start with a common core of mathematics courses and informatics courses, with increasing options for specialisation in later years depending on your interests.
Each year you will have 120 credits worth of courses spread across two semesters. Some of these credits will go into compulsory courses and the remaining can be used on optional courses. Optional courses may be in schools outside the School of Informatics.
Note that depending on the particular programme you choose, your compulsory courses will vary, as well as the number of optional courses you can take. When choosing optional courses, you may also want to consider what courses are prerequisites for future courses you may be interested in.
For a more detailed look at your specific programme and course descriptions, including what the prerequisite courses are and the delivery information (e.g. 50% coursework, 50% exam), be sure to look at the Degree Regulations and Programmes of Study (DRPS).
To reach School of Informatics degree programmes for the next academic year you will need to click though "Degree Regulations & Programmes of Study <Academic year>" → "Browse Degree Programme Tables (DPTs)" → "School of Informatics" → "<Your programme>". Please note: We keep this page as up-to-date as possible, but the DRPS is the official record of courses and degree programme requirements. The information provided reflects the current structure and content of our programmes and courses, and may change in future years based on the needs of the School and its students. Updates to DRPS are normally published in April for the academic year starting the following September.
The course information below refers to our 4-year Honours Degrees.
We also run a 5-year undergraduate Masters in Informatics programme, MInf, where years 4 and 5 will consist of many specialised course options and a personal project. In your final year, you will be able to access a wide range of masters-level courses delivered by leaders in their fields.
Our first year courses are designed to introduce you to studying mathematics at University level and introduce some of the basic principles of programming and computation. The computing courses are suitable for all levels, including complete beginners, then will progress fairly quickly.
The compulsory courses in your first year are almost the same across all Informatics degrees as they all require a strong foundation of both mathematics and computation. Students studying Cognitive Science or on joint degrees will have varying requirements but will take a subset of the courses listed below along with courses from their other degree area.
Introduction to Computation (20 credits)
An introduction to concepts of programming and computation, using the Haskell functional programming language, finite-state machines and propositional logic.
Introduction to Object Orientated Programming (20 credits)
A conceptual and practical introduction to object-oriented programming and software engineering practices. As well as providing a grounding in the use of Java, the course will cover general principles of programming in imperative and object-oriented frameworks.
Introduction to Linear Algebra (20 credits)
You will learn more about vectors, matrices and systems of linear equations. You may have met some of the early ideas at school but throughout the course you will learn about new abstract concepts. You will use the mathematical ideas encountered in practical contexts but also lay the foundations for your study in subsequent years.
Calculus and its Applications (20 credits)
Calculus is the most fundamental tool in the study of mathematics and is vital for many of its applications including computation. This course will revise some of the calculus you studied at school and develop it further but will treat it with the rigour required at university level.
The rest of your credits can be spent on optional courses and the number of optional courses you can take will depend on the number of credits you have remaining. In your first year, most programmes will have about 40 credits remaining for optional courses. These can either be outside subjects or optional Informatics courses. Outside courses can be chosen from across the University, provided the timetable fits. Popular outside choices include, but are not limited to, physics, mathematics, economics, business, philosophy and languages.
You will develop your knowledge by exploring more advanced programming concepts and data structures as well as some of the ethics behind computing in the real world.
Students on most Informatics degrees are required to take the following compulsory courses. If you are studying Cognitive Science or are on a joint degree, you may take fewer of courses listed below, but instead take some courses in your joint degree area.
Introduction to Computer Systems (20 credits)
You will learn about the design, implementation and engineering of digital computer systems. You will create programmes replicating the behaviour of a basic computer systems using the C programming language and assembly language.
Discrete Mathematics and Probability (20 credits)
The first part of this course covers fundamental topics in discrete mathematics that underlie many areas of computer science and presents standard mathematical reasoning and proof techniques. The second part of this course covers discrete and continuous probability theory, including standard definitions and commonly used distributions.
Foundations of Data Science (20 credits)
This course introduces you to a core set of knowledge, skills, ethical principles and ways of thinking that are needed for data science and machine learning using Python. The mathematics you studied in Year 1 and will study in Year 2 are instrumental in helping understand many of the statistical techniques used in this field.
Introduction to Algorithms and Data Structures (20 credits)
You will learn some of the standard algorithms and data structures that underlie all areas of computation and put them into practice through various Python based courseworks. You will also apply some mathematical concepts to analyse both the theoretical complexity of algorithms and their practical behaviour.
Software Engineering and Professional Practice (20 credits)
Teaches the practice of small team software development, equipping you to participate in a modern tech company or a software-dependent research team in accord with your professional and legal obligations. You will gain experience developing a software system from scratch using some of the key concepts of Java and objected-orientated programming studied in Year 1.
The rest of your credits can be spent on optional courses and the number of optional courses you can take will depend on the number of credits you have remaining. In your second year, most programmes will have about 20 credits remaining for optional courses. These can either be outside subjects or optional Informatics courses. Outside courses can be chosen from across the University, provided the timetable fits. Popular outside choices include, but are not limited to, physics, mathematics, economics, business, philosophy and languages.
Your studies will become more focused and you will have more choice in selecting specialised courses according to your interests.
Students on most Informatics degrees are required to take the following compulsory courses. If you are studying Cognitive Science or are on a joint degree, you will normally do a subset of these.
Informatics Large Practical (20 credits)
The Informatics Large Practical exposes students to the problems that arise with the design and implementation of large-scale software systems, and to methods of coping with such problems using Java.
Professional Issues (10 credits)
The aim of the course is to highlight and allow students to develop understanding of key aspects of the wider context in which their practice as Informatics professionals will occur.
Computer Security (20 credits)
Computer Security is concerned with the protection of computer systems and their data from threats which may compromise integrity, availability, or confidentiality; the focus is on threats of a malicious nature rather than accidental. This course uses Python and assembly language.
System Design Project (20 credits)
The System Design Project is intended to give students practical experience of building a large-scale system and working as members of a team. At the end of the course each group demonstrates its implemented system and gives a formal presentation to an audience of the students, supervisors, and visitors from the industry. Teams who do well in this course are also awarded various prizes from the visitors from the industry.
In your third year your optional courses will likely be from the School of Informatics as there are now a much larger number of unique and specialised courses available. The option to choose a course from outside the School of Informatics is still available but you are advised to get permission from the course organiser and have the course choice approved by your personal tutor first.
You will have the opportunity to specialise, having covered much core material in previous years. Specialisation is available in the form of a wide range of course options and through the project/dissertation/thesis, which is undertaken on an individual's preferred topic, agreed with a supervisor.
The Honours Project will be your only compulsory course for most Informatics degrees other than Cognitive Science (BSc) and joint honours degrees with other Schools.
Honours project (40 credits)
This is a major project and is intended to allow students to demonstrate their ability to organise and carry out a substantial piece of work. The project is conducted individually by you but will be under the supervision of a member of teaching staff. The project specification is usually provided by a member of staff, but you may be able to develop your own sepcification if approved by a member of staff.
In your fourth year your optional courses will likely be from the School of Informatics as there are now a much larger number of unique and specialised courses available. The option to choose a course from outside the School of Informatics is still available but you are advised to get permission from the course organiser and have the course choice approved by your personal tutor first.