Back to list of courses

MSc in Advanced Computer Science


For general information:

Eugene Campbell
Postgraduate Admissions Administrator

Tel: +44 (0)1904 325404
Fax: +44 (0)1904 325599

For informal discussion:

Dr Iain Bate
Course Leader


Apply online now button

Course Overview

  • Full Time - This course is only available full time.
  • You will take 80 credits of taught options through your choice of assessed modules followed by a 100 credit individual project. As part of your project, you will be attached to one of the several research groups within the Department.

Research in Computer Science at York is carried out at the frontiers of knowledge in the discipline. This course gives you the chance to study a range of advanced topics in Computer Science, taught by researchers active in that area. This means you will be learning current research results, keeping you at the forefront of these areas. You will also learn a range of theories, principles and practical methods.

The MSc in Advanced Computer Science is a full time, one year taught course, intended for students who already have a good first degree in Computer Science, Software Engineering or a closely related discipline and would like to develop a level of understanding and technical skill at the leading edge of Computer Science.

You can choose modules on a range of topics, including Cryptography, Functional Programming, Interactive Technologies, Natural Language Processing, Quantum Computation and Model-Driven Engineering. Check the module tab for all the current options.

You can also choose to apply for one of our internships once your course has finished. Find out more about the scheme.

Course aims

You will gain an in-depth knowledge of topics on the frontiers of Computer Science in order to engage in research or development and application of leading-edge research findings.
By undertaking an individual project, you will become a specialist in your selected area. You will be encouraged to produce research results of your own. This will prepare you to undertake a PhD in Computer Science should you wish to continue studying within the subject.

Learning outcomes

  • A knowledge of several different topics in Computer Science at an advanced level.
  • An understanding of a body of research literature in Computer Science in your chosen topic, and the underlying principles and techniques of research in this area.
  • An ability to engage in independent study at an advanced level, and develop skills in self-motivation and organisation.


Full-time taught postgraduate courses run for 12 months from the start of the academic year in September.  Students on these courses are expected to be in attendance at York for the full 12 months, except for when the Department is closed. Please contact the Postgraduate Admissions Administrator for more details.

Here's what some of our MSc students say about us:

"Computer labs are plentiful, staff are pleasant and helpful, and the building and grounds are a great place to work and spend your day.‌"
Alex Vaughan

"Teaching quality is excellent - it isn't text book oriented and it always encourages you to develop your understanding on a topic by reading journals and research articles."
Savitri Pandey

Read more student profiles of our postgraduate students.

Optional modules

Course components  -  2018/2019

All optional modules in the MSc in Advanced Computer Science are led by academic staff active in that research area. These modules build upon the research currently being undertaken within the Department, connecting you directly to our research. We expect to offer modules like these although they may be subject to change. You will choose 80 credits from the following modules, and you must then take the 100 credit individual research project. Please note that not all combinations of module choices may be possible due to timetabling restraints. You should discuss your choices with your personal supervisor when you arrive. 

Click on Module TitleModule TitleTermShort Description

User Centred Design for Interactive Technologies  (10 credits)

 Autumn The module will provide students the foundations of knowledge to create usable and accessible interactive systems that promote positive experiences for their users.

Formal Specification (10 Credits)

Spring This module addresses the use of formal (i.e., mathematically based) methods in system development, particularly in high-integrity systems. It provides both an overview of formal methods in general, and a detailed description of one particular notation (Z) suitable for the specification of some parts of safety-critical software. The use of tool support for Z is covered in detail.
Static Analysis and Verification (10 Credits) Spring  The module covers the use of state-of-the-art techniques for verification of object-oriented programs; in particular, it focusses on Java. Tools are used to illustrate techniques, and facilitate learning of concepts and understanding of challenges. 

Functional Programming Technology (10 credits)

Spring This module explores some of the tools and techniques for programming in a functional language such as Haskell.
Model-Driven Engineering (10 credits) Autumn An introduction to the theory, principles and practices of model-driven engineering, focusing on technical topics, as well as non-technical issues such as standards and processes.
Quantum Computation (10 credits)
Autumn An introduction to the theory of quantum computation. In it we will learn about the pioneering quantum algorithms that promise a qualitative leap in computation power over conventional computers
Service-Oriented Architecture (10 credits) Autumn The aim of this module is to introduce the concepts and design principles of service-oriented systems, the non technical aspects, impact on culture as well as the various interoperability standards, technology infrastructure and security considerations.
Natural Language Processing (10 credits) Spring This module covers state-of-the-art methods in Natural Language Processing (NLP).
Adaptive and Learning Agents (10 credits)  Spring This module is situated at the intersection between Machine Learning and Agents. The module covers background in both areas followed by a discussion on the methodology of the emerging AI domain of Adaptive and Learning Agents, and a demonstration of its ideas on a few focus topics.
Cryptography Theory and Applications (10 credits) Autumn Examines the design, analysis and implementation of cryptographic primitives and services. This module also addresses issues of key management infrastructures.
Advanced Topics in Interactive Technologies (20 credits)
Spring A broad range of topics reflecting the cutting edge of research and development of interactive technologies such as inclusive design and accessibility, domestic technology and cultural diversity.
Evolutionary Computation (10 credits) Autumn This module provides a foundation of theoretical and practical knowledge in the subject of evolutionary systems; that is, systems that embody algorithms inspired by natural evolutionary systems (e.g. genetic algorithms, genetic programming, evolutionary strategies, and co-evolutionary frameworks) to evolve solutions to problems. 
Topics in Privacy and Security (10 credits) Spring This module covers a selection of crucial topics in modern day security and privacy. Modern day systems must satisfy more varied security and privacy goals than ever before, and this module investigates such complexity. It is technical in content, but also seeks to consider the wider social context.
Quantum Information Processing (10 credits) Spring 

An introduction to the theory of quantum information and quantum communication.

Individual Project in Advanced Computer Science (100 credits) Summer


A substantial, independent research project. You will develop your expertise in a specific area, and undertake your own research with an original or novel element. You will become attached to a research group within the Department, to help you engage with your chosen area and participate in research group seminars.

Personal Supervisor

You will be assigned a personal supervisor, a member of our academic staff, who will meet with you at the start and finish of each term, and periodically review your progress with you. Your supervisor will also help you to choose appropriate modules, and help you decide which project to undertake. Once your project starts, you will be assigned a project supervisor, who will be an expert in the area of your research. You will become part of their research group, and will benefit from the knowledge and resources of the group as a whole.


All the modules you take will be assessed, and we deliberately employ a variety of forms of assessment. These include practical exercises, reports and closed examinations. Your project assessment will be made up of a dissertation, a talk about your project, and a concise paper that you will be encouraged to publish.

The assessments take place at various times during the year. Closed examinations take place in:

  • the first week of Spring term (for those courses taught during the Autumn term), and
  • the first week of Summer term (for those courses taught during Spring term).

Practical exercises, reports and other forms of open assessment are typically issued towards the end of the teaching sessions of an optional module. Work for these assessments must be submitted by fixed deadlines well after the conclusion of the taught sessions.

Internship scheme

You can also choose to apply for one of our internships, which begin after you have completed your individual project. Find out more about the scheme.

Research project


You will undertake your individual research project over the Summer term and Summer vacation. This will be a culmination of the taught modules you have taken during the course, which will allow you to focus on a specialist area of interest.

You will be allocated a personal supervisor, who will be an expert in your chosen area of research. You will be hosted by the research group of your supervisor, and you will benefit from the knowledge and resources of the whole group. Being attached to a research group also allows you to take part in their informal research seminars, and receive feedback and help from other members of the group.

You can choose from projects suggested by members of our academic staff. You also have the option of formulating your own project proposal, with the assistance from your personal supervisor.

All project proposals are rigorously vetted and must meet a number of requirements before these are made available to the students. The department uses an automated project allocation system for assigning projects to students that takes into account supervisor and student preferences.

The project aims to give you an introduction to independent research, as well as giving you the context of a research group working on topics that will be allied to your own. You will develop the skills and understanding in the methods and techniques of research in Computer Science.

As part of the assessment of the project, as well as your dissertation, you will give a talk about your work and submit a concise paper which we will encourage you to publish.

How to Apply

Suitability and Entry Requirements

The MSc in Advanced Computer Science is intended for students who already have a good first degree in Computer Science, Software Engineering, or a related discipline. Typically, you will have achieved at least an upper second class honours degree (or international equivalent).

How to Apply

For more information about completing your application, please take a look at the University’s webpages which tell you how to apply.

In particular, please take note of the supporting documents we need to see in order to be able to make a decision about your application.  You are also required to nominate a referee who should be from your current employer or place of study.

You can apply through our online application system (SELECT). 

While there is no official closing date for applications, it is important to apply as early as possible.

Apply online now button


We have a Taught Masters Scholarship that applicants holding an offer for one of our taught MSc courses can apply for. Find out more about the award

Did you know that we offer our MSc students a continuation scholarship? Should you decide to stay and study for a PhD after you graduate, you could be eligible to have your fees paid. Check out the details of the award.

International Students

This course, like all others in the University, welcomes students of all backgrounds and circumstances. 

If English is not your first language, or your first degree was not taught in English, then you will need to have attained a suitable language qualification no more than two years before the start of the course. 

The University's Postgraduate Study webpages will tell you more about the English language requirements for graduate students.

Information for students

Being prepared for your MSc in Advanced Computer Science at York

The MSc in Advanced Computer Science exposes you to several topics in Computer Science that are under active research at York. The material taught is preparatory to helping to continue that research, and perhaps continuing to a PhD. What we require from you are enthusiasm, hard work and enough background knowledge to take your chosen modules.

The modules on the MSc in Advanced Computer Science are mostly shared with our Stage 4 (Masters level) undergraduates. Your technical background will be different, and we acknowledge this.

During August we will send entrants a document describing the background knowledge needed for each module and, in many cases, references to where this knowledge is available (for example, widely available text books and web pages).

More generally, many of the modules expect a high level of mathematical sophistication. While the kind of mathematics used varies from module to module, you will find it useful to revise discrete mathematics (predicate and propositional calculi, set theory, relational and functional calculi, and some knowledge of formal logic), statistics and formal language theory. You should also be able to follow and produce proofs.

All good Computer Science undergraduate degrees include some mathematics, and it is probably best to revise from sources that you are familiar with from your own degree. On our own degree, we recommend the following texts:

  • Huth and Ryan, "Logic in Computer Science" (2nd ed), Cambridge University Press, 2004
  • Haggarty R, "Discrete Mathematics for Computing", Addison Wesley, 2002
  • Truss J, "Discrete Mathematics for Computer Scientists", Addison Wesley, 1999
  • Sipser M, "Introduction to the Theory of Computation" (3rd edition), Cengage Learning, 2013
  • Linz P, "An Introduction to Formal Languages and Automata" (4th edition), Jones and Bartless, 2006
  • Solow D, "How to Read and Do Proofs", Wiley, 2005

For all modules, you should, of course, be able to program. Experience of at least two different programming languages plus a knowledge of algorithms and data structures, including algorithm analysis is useful. In particular, see:

  • Skiena S, "The Algorithm Design Manual" (2nd edition), Springer, 2011
  • Cormen, Leiserson, Rivest and Stein, "Introduction to Algorithms" (3rd ed), The MIT Press, 2009
  • Levitin A, "Introduction to the Design and Analysis of Algorithms" (3rd edition), Pearson, 2011
  • Abelson, Sussman and Sussman, "Structure and Interpretation of Computer Programs", MIT Press, 1996

Residency requirements  -  2018/19

Due to the intensive nature of the course, students are required to be in York during the following periods:

  • 24 September 2018 - 30 November 2018 (Autumn term)
  • 7 January 2019 - 15 March 2019 (Spring term)
  • 15 April 2019 - 20 September 2019 (Summer term and vacation)

However, it should be noted that the MSc is full time. Even outside these periods, you will need to continue working, whether or not you are in full attendance.

The taught modules will take place in the Autumn and Spring terms. During your break between these two terms, you should expect to be working on open assessments and preparing for your exams in January.

Work on your individual project will start at the beginning of April, and you will receive regular one-to-one supervisions throughout the Summer Term. You will continue to work on your individual project over the Summer term and the vacation, when there will be continuing supervision and research-group meetings where your project can be discussed. You will finish the course when you hand in your dissertation and paper for your project in September.

Internship scheme

You can also choose to apply for one of our internships, which begin after you have completed your individual project. Find out more about the scheme.



Here at York, we're really proud of the fact that more than 97% of our postgraduate students go on to employment or further study within six months of graduating from York. We think the reason for this is that our courses prepare our students for life in the workplace through our collaboration with industry to ensure that what we are teaching is useful for employers.

So where do our students go once they leave York?

Pie chart showing the industry destinations of Computer Science postgraduates

Back to Top