This module provides a hands-on introduction to modern computational finance, with an emphasis on practical skills useful in the industry. It is in two parts, roughly corresponding to the “buy” and “sell” sides of the industry. Part One introduces tools of portfolio management and algorithmic trading, such as yield curve bootstrapping, mean-risk optimization, and the use of Machine Learning in trading strategies. Part Two is focused on the use of Monte Carlo simulation in risk management and valuation, including topics such as simulation, risk limits, stress testing, capital management and regulatory compliance. Although no knowledge of programming will be assumed, Python code will be used in examples and demonstrations from the outset, and students will be required to submit programs as part of the assessment.
This module will introduce you to some of the main approaches used for data analysis and machine learning. Students will gain knowledge and understanding of different computational machine learning methods, and gain skills in applying them to analyse data, make predictions, and evaluate performance. The main tools to train and tune machine learning models stem from the area of nonlinear programming. Nonlinear programming is also used in a variety of applications, ranging from machine learning and data science to finance and engineering. This course provides an introduction to nonlinear programming and covers modelling techniques, solution algorithms, and their application in machine learning.
Computational techniques in mathematics, and mathematical approaches to computing, are central to advances across scientific fields. This module will introduce fundamental techniques in optimisation and numerical linear algebra, together with the computational essentials needed for mathematical study.
The overreaching goal of this module is to develop your quantitative problem solving skills by improving your algorithmic thinking and computer implementation skills. The module aims to provide you with in-depth knowledge about the contemporary optimisation methods, their strengths, efficient implementations and application areas, usability and shortcomings. The module emphasises the versatility of the methods, and encourages you to apply these techniques to diverse areas of business, in order to reorient your thinking processes towards a perspective of continuous improvement of every process.
Computational methods play an ever increasing role for the successful development of cost-effective and robust engineering solutions to address the challenges emerging from a healthcare agenda calling for prolonging independent living and the personalisation/stratification of care in our ageing societies. The module will provide the theoretical basis and practical training in fundamental engineering skills required to develop innovative and robust design solutions for a range of technologies such as surgical tools, instrumentation, artificial joints, stents, minimally invasive surgery, and assistive technology including devices for rehabilitation and independent living. The module will introduce some of the key theories and computational methods that capture essential aspects of patient variability in predictive numerical tools and enable the development of robust technology for prevention, diagnosis, treatment and rehabilitation. Demonstration of the use of the computational methods will concentrate on orthopaedic applications and more specifically on the analysis of the biomechanical behaviour of the musculoskeletal system. Here, key concepts and approaches with which the students will be familiarized with include methods for the reconstruction of 3D musculoskeletal anatomy from medical image data, the recording and description of skeletal kinematics as well as state of the art approaches for the calculation of muscle and joint forces. In a further step, these techniques will provide input to advanced numerical modelling techniques to predict and optimize the performance of joint replacements and the course of bone healing after a fracture. The presentation and discussion of further case studies on cardiovascular applications will enable the students to understand how such computational tools can be successfully applied to a broad range of biomedical engineering design problems.
Modern statistics relies on computational methods for most practical applications. This module provides an introduction to computer intensive methods and their application to common modelling and inference problems. The focus is on introducing methodology and algorithms, implemented in the R programming language.
This module aims to give students an understanding of how a CPU works, and also the ability to implement a working CPU. The module covers basic data- and control-path design, and the implemention of an existing Instruction Set Architecture (ISA). Standard optimisations (pipelining and caches) are introduced to explain basic techniques for improving performance. The module shows how a CPU can be used as one component within a larger computational system, for example how CPUs are integrated with other devices within a modern System on Chip (SoC).
This module aims to give students an understanding of the fundamentals of computer hardware and of the principles of operation of computers and peripheral devices. In addition, the module aims to give an overview of the main families of microprocessors and their differences. Some digital electronics is also covered - with hands-on experience in the lab with a Raspberry Pi in order to better understand computer fundamentals.
This module aims to introduce students to operating system internals and the general principles and practices of developing low-level software that interacts directly with hardware.
This Computational Physics course is designed for students with definite interest in tackling physics problems that are only tractable through the use of computers. It covers all types of application of computers by physicists, except the control of equipment. It covers the areas of scientific computation, Monte Carlo simulations and random numbers, numerical integration, finite differencing, differential equations and signal processing.
The challenge of computer vision is to develop a computer based system with the capabilities of the human eye-brain system. It is therefore primarily concerned with the problem of capturing and making sense of digital images. The field draws heavily on many subjects including digital image processing, artificial intelligence, computer graphics and psychology. This course will explore some of the basic principles and techniques from these areas which are currently being used in real-world computer vision systems and the research and development of new systems.
The challenge of computer vision is to develop a computer based system with the capabilities of the human eye-brain system. It is therefore primarily concerned with the problem of capturing and making sense of digital images. The field draws heavily on many subjects including digital image processing, artificial intelligence, computer graphics and psychology. This course will explore some of the basic principles and techniques from these areas which are currently being used in real-world computer vision systems and the research and development of new systems. The objectives are to develop your understanding of the basic principles and techniques of image processing and image understanding, and to develop your skills in the design and implementation of computer vision software. This module is taught together with COMP3204 Computer Vision. COMP6223 has higher requirements on the desired learning outcomes which will be assessed by a different set of coursework.
The aim of the course is to provide a modern view of computer-based data analysis, from the statistical point of view. The course is intended for students with a solid basic background in probability, statistical methods, and computing, and who aim to build on this background. Topics are covered at a brisk pace; to make the best of this course, students can expect to put in significant self-study. - MATH1024 and MATH2010 or equivalent maturity with Probability and Statistics - Basic familiarity with programming in matlab or R or equivalent.