masters in computer science courses

As in other branches of applied mathematics and engineering, improvements in the practice of programming require determined and meticulous application of methods of mathematical understanding, calculation and proof.

Recognising this, this full-time, twelve-month MSc has been designed to teach the mathematical principles of specification, design and efficient implementation of both software and hardware.

The MSc is designed to combine theory and practice. It teaches the advanced techniques and ideas that are being developed in application domains (such as machine learning, verification and computer security) and the rich and diverse theories that underpin them. These include models of computation and data, and mathematical analysis of programs and algorithms.

The course aims:

  • to provide a foundation for research into the theory and practice of programming and the design of computer-based systems;
  • to present knowledge, experience, reasoning methods and design and implementation techniques that are robust and forward-looking;
  • to provide the foundation for a professional career in the computing-based industries, including telecommunications, process control, business-, mission-, and safety-critical fields; and
  • to enhance the skills of a professional who is already working in one of these industries.

The Department of Computer Science is committed to the development and application of effective theory based on realistic practice, and some of the modules were developed through consultation and collaboration with industry. The department believes that only by the interplay of theory and practice can you be trained properly in such a rapidly advancing subject. Practice alerts us to real contemporary problems – theory is a shield against professional obsolescence.

Entrants to the course will come from either a computer science or mathematical background. You may be a recent graduate in computer science and will supplement your knowledge with the kind of sound mathematical basis which is not always found in undergraduate courses. If you are a graduate in mathematics you will apply your training in the context of a rigorous application of the fundamental techniques of computer science.

You will develop knowledge and understanding of a formal disciplined approach to computer science, a range of relevant concepts, tools and techniques, the principles underpinning these techniques and the ability to apply them in novel situations. On subsequent employment, you will be able to select techniques most appropriate to your working environment, adapt and improve them as necessary, establish appropriate design standards for both hardware and software, train colleagues and subordinates in the observance of sound practices, and keep abreast of research and development.

Course outline

The academic year is split into three terms of eight weeks but work on the MSc course continues throughout the year and is not restricted just to term time. During the three terms of the course, you will choose from modules on various aspects of computer science. Most modules will last for one term and will be between 16 to 24 lectures. In addition, all modules will have problem classes and some may also have practical sessions associated with them. In the third term (Trinity term) you will undertake a dissertation.

A typical week for a student taking three courses in each of the first two terms may be as follows:

  • Lectures – eight hours
  • Tutorial classes – three hours
  • Practicals – four hours
  • Self-directed study, including preparatory reading, problem sheets, revision of material – 20 hours

Total – 36 hours

The split of work may differ depending on whether a course has practicals associated. This should be taken as a guide only.

Examples of modules offered:

  • Advanced Security
  • Advanced Topics in Machine Learning
  • Quantum Computer Science
  • Categories, Proofs and Processes
  • Computational Complexity
  • Database Systems Implementation
  • Computational Learning Theory
  • Probabilistic Model Checking

Leave a Comment