MSc in Advanced Computing
Course director: Dr F. Sadri
f.sadri@imperial.ac.uk
The MSc in Advanced Computing offers students the opportunity to study a wide variety of topics in depth with dedicated experts. It prepares students for a rewarding career in computing and in information technology in general. Applicants should normally have a good first degree in computer science, or a subject with a substantial component in computing. It is a full-time course of 12 months' duration, starting in October.
Course structure
There are six streams, each of which covers an area of specialisation. Students are normally required to select one of these areas of specialisation (below), although students with relevant previous experience or special interests may be allowed to take different combinations of course options with the agreement of the course director. There are two different pathways through the course: the standard pathway is for students primarily interested in a career oriented towards development and applications in industry; the research pathway is for students interested in a research career, either in the industrial or academic sector.
Computational management
This stream offers a course of study on the theory and tools of business management that require computerised solutions including decision support and constraint solving techniques. Graduates will be well-equipped to contribute to academic research and to commercial, industrial and financial applications.
Logic and artificial intelligence
This stream offers a course of study on the theory and applications of artificial intelligence. Options within this area allow students to specialise in the design and implementation of applications, including logic-based agents in a distributed environment, or to study how a logic framework can be useful for more general application in artificial intelligence and computer science.
Mathematical foundations
This focuses on the applications of mathematics to the theory and practice of computing including the formal design of advanced software. On completion of the course, a specialist will be able to conduct research into methods for strengthening a systematic approach to developments in computing.
Software engineering
This is intended for computer science graduates who are looking for an advanced course of study in tools and techniques underlying the development of large-scale and complex software systems. Particular emphasis is placed on solving problems due to software size and age. Graduates will be well-equipped to contribute to both academic research and industrial applications.
High performance computing
This area of specialisation offers a course of study in rigorous methods applied to the design of software for complex, parallel systems. Included are new architectures for data mining, simulation and modelling of distributed systems. Particular emphasis is placed on combining knowledge of architectures, algorithms and hardware to meet performance goals. Graduates will be well equipped to contribute to both research and application software projects.
Parallel and distributed systems
This area of specialisation offers study on the design of, and techniques used in, parallel and distributed algorithms and concurrent systems. Particular emphasis is placed on distributed systems and their industrial applications, including techniques for maintaining and accessing distributed databases. Also included are systems based on field programmable hardware. Graduates will be well equipped to contribute both to academic research and industrial applications.
The course modules (some of which may not be offered every year) are as follows:
Advanced computer architecture
Advanced databases
Advanced graphics and visualisation
Advanced issues in object-oriented programming
Advanced operational research
Automated reasoning
Advanced topics in software engineering
Cognitive robotics
Complexity
Computer vision
Computing for optimal decisions
Custom computing
Grid computing
Intelligent data analysis and probabilistic inference
Knowledge representation
Machine learning
Modal and temporal logic
Models of concurrent computation
Multi-agent systems
Network security
Parallel algorithms
Performance analysis
Program analysis