400-004-8861
Core modules You take all of the core modules below. MSc Computing Science (Specialist) Individual Project (Summer) Prolog (Autumn) Introduces declarative relational programming using the logic based programming language, Prolog. Focus is on writing small Prolog applications an artificial intelligence dimension. Short Introduction to Prolog (Autumn) Introduces the concept of logic programming and syntax and procedural reading of the Prolog language. Teaches the ability to write simple programs to query Prolog databases, and recursively process lists and other compound data structures. Optional modules – Group 1 You choose three or four modules from below. Advanced Robotics (Spring) Addresses topics of advanced robotics, with a focus on real-time state estimation and mapping, with application to drones and Augmented and Virtual Reality. Advanced Statistical Machine Learning and Pattern Recognition (Spring) Provides the theoretical and computational skills to understand, design and implement modern statistical machine learning methodologies regarding statistical component analysis, statistical linear dynamical systems and other statistical models. Computer Vision (Autumn) Introduces the concepts behind computer-based recognition and extraction of features from raster images. Data Analysis and Probabilistic Inference (Spring) Aims to teach how probability can be used to make decisions by a computer. Inference networks form a major part of the material along with linear and non-linear methods in statistical pattern recognition. Dynamical Systems and Deep Learning (Autumn) Introduces Deep Belief Nets and Convolutional Neural Nets which provide the two main tools in Deep Learning. Machine Learning (Spring) Provides the foundations to Machine Learning (ML) and an understanding of basic ML concepts and techniques. Uses Matlab to design, implement and test ML systems. Mathematics for Machine Learning (Autumn) Provides the necessary mathematical background and skills to understand, design and implement modern statistical machine learning methodologies, and inference mechanisms. Modal Logic* (Autumn) Develops skills in modal logics for specification, knowledge representation and practical reasoning in artificial intelligence and software engineering. Reinforcement Learning* (Autumn) Covers the foundations and standard methods of reinforcement learning. Reinforcement Learning (RL) is a growing sub-area of machine learning concerned with how an agent (computer, human or robot) should choose its actions in an environment so as to maximise some notion of (long-term) reward. Robotics (Autumn) Focuses on the field of mobile robotics both theoretically and practically. Covers wheeled locomotion, control, outward-looking sensors, mapping, place recognition and reactive behaviours. Courses marked * are half courses, and 2 half courses is equal to 1 full course. Optional modules – Group 2 You choose two to four modules from below. Argumentation and Multi-agent Systems (Spring) Focuses on the foundations and advances in Multi-Agent Systems, specifically the concepts and implementation techniques required. Knowledge Representation (Autumn) Presents the theoretical foundations for the main logic-based formalisms used for knowledge representation and reasoning in AI, particularly non-monotonic logics and consequence relations, and the computational basis of logic programming. Logic-Based Learning (Spring) Gives a foundation of knowledge and basic principles of logic-based learning, to develop basic skills in algorithms and heuristics, and to form a logic-based learning task to solve a given learning problem. Probabilistic Model Checking and Analysis (Spring) Systems Verification (Spring) Introduces formal methods for system specification and verification. Particular prominence is given to logic-based formalisms and techniques, notably model checking. Optional modules – Group 3 You choose up to three modules from below. Advanced Computer Architecture (Spring) Develops a thorough understanding of high-performance and energy-efficient computer architecture, as a basis for informed software performance engineering and as a foundation for advanced work in computer architecture, compiler design, operating systems and parallel processing. Advanced Computer Graphics (Spring) Introduces modern techniques in realistic computer graphics and image synthesis, particularly image-based techniques for photorealism. Advanced Databases (Autumn) Provides detailed theoretical and practical knowledge of how database management systems (DBMS) are programmed in SQL, how DBMSs may be linked to form distributed databases, and how DBMSs operate and are tuned to improve performance. Advanced Issues in Object Oriented Programming (Autumn) Discusses issues around the design and implementation of object oriented languages, the rationale and explore alternatives. Advanced Security* (Autumn) Develops an advanced understanding of security topics from both a practical industrially-focused perspective, whilst also providing a storing research perspective. Complexity (Autumn) Describes the complexity classes associated with computational problems, and the ability to fit a particular problem into a class of related problems, and so to appreciate the efficiency attainable by algorithms to solve the particular problem. Computational Finance (Spring) Introduces the basic concepts of quantitative finance and financial engineering, including hedging and pricing problems in finance, and how to formulate these problems as mathematical models, and understand the computational techniques to solve the arising models. Computational Optimisation (Autumn) Develops a deep understanding of optimal decision making models, algorithms and applications to engineering, finance, and machine learning. Cryptography Engineering (Spring) Teaches how cryptographic techniques can be used to design and implement secure communicating systems for a variety of different needs and applications, and to do so by considering all aspects from theory to more practical issues. Custom Computing (Spring) Custom computers are special-purpose systems customised for specific applications such as signal processing and database operations, when general-purpose computers are too slow, bulky or power hungry. Development of custom computers is an expensive, time-consuming and error-prone activity. This module introduces approaches enabling the rapid and systematic design of custom computers. Distributed Algorithms (Spring) Covers key concepts, problems and results in distributed algorithms. Providing an introduction on how to reason about the correctness of distributed algorithms and practical experience of programming them. Graphics (Spring) Provides an understanding of basic concepts of computer graphics, and introduces the fundamental mathematical principles used for computer generated imagery, shading and light approximations. Independent Study Option (Spring) Study an advanced computer science topic of your choice, ideal for those considering a PhD or a career in industrial research. Information and Coding Theory (Autumn) Provides an advanced introduction to information and coding theory which is essential to computer security (e.g. differential privacy, side channel attacks, etc.). Network and Web Security (Spring) Covers network and web security broadly from the network to the application layer. The emphasis of the module is on the underlying principles and techniques, with examples of how they are applied in practice. Operations Research (Autumn) Studies quantitative methods for decision making, and the emphasis is on numerical algorithms to solve constrained optimisation programs. The methods studied are applicable to problems in many areas: computer science, economics, logistics, and industrial engineering. Pervasive Computing (Spring) Pervasive, or Ubiquitous Computing, is the result of technology advancing at exponential rates, enabling computing devices to become smaller, more powerful and more connected. Principles of Decentralized Ledgers* (Spring) Decentralised ledgers (such as Bitcoin and Ethereum) have gained rapid popularity, attracting the attention of academics, entrepreneurs, economists, and policy-makers. They promise and already create new disruptive markets, and revolutionize how we think of money and financial infrastructure. Quantum Computing (Autumn) Introduces the basic notions of quantum computing with particular emphasis on quantum algorithms. Type Systems for Programming Languages (Autumn) Courses marked * are half courses, and 2 half courses is equal to 1 full course.