Module | Credits | Compulsory/optional |
---|
Measures and Models for Software Engineering | 30 Credits | Optional |
In this module advanced issues of software engineering theory and practice are examined. The range of software engineering products and processes making up a software project are measured and modelled. Typical software engineering products explored in the module may include: user requirements, design documents, code etc. Typical software engineering processes explored in the module may include: testing, debugging etc. The aim of the module is to use the modelling and measuring of such products and processes to allow quantified decision"making during software development. The module offers students the opportunity to explore both the state"of"the"art and the"state"of"the"practice in software engineering. The module will examine the most up to date research findings about software engineering as well as investigate the current practices of many software engineering companies. |
Programming for Software Engineers | 30 Credits | Optional |
Software engineering places great emphasis upon the use, and re-use, of components that are tightly specified and thoroughly tested. This approach is supported by the provision of software frameworks within which programs can be developed. A software framework typically provides an Application Programming Interface (API) implemented as a set of libraries, and supported by a set of tools that may be used during development. But where do APIs, ABIs and software libraries come from? How do we decide what components are required? How are they designed and implemented? Who builds them? How do they go about it? How are they tested? How can we be sure that they work? What effect does the design and implementation of APIs and software libraries have upon the performance of systems that employ them? This module attempts to address these and other issues associated with the design, construction and use of software frameworks. |
Software Engineering Practice and Experience | 30 Credits | Optional |
This module gives students the opportunity to extend their understanding and experience of software engineering practice. It offers students exposure to the development and evolution of software. The module is very practical and is based around a substantial piece of software. The aim of the module is to enable students to develop software engineering knowledge and skills that are transferable to software companies. The module covers each element of the software engineering process. It explores the use of overarching development approaches such as eXtreme Programming and Component Based Software Engineering. Leading edge practices are introduced such as using program slicing to find code faults. Specialised software development approaches are investigated such as those required for application areas such as safety critical systems. Process models popular with industry, such as one of the SEI models, are also used and evaluated during this module. |
Distributed Systems Security | 30 Credits | Optional |
A range of topics will be covered in this module. The detailed content will vary according to current research directions. Case studies will be used throughout. Issues will be considered in relation to each topic as appropriate. These pervasive issues are: models, design, standards, protocols, and performance. |
Artificial Life with Robotics | 30 Credits | Optional |
In this module, students delve into the intricacies of Artificial Life systems, gaining a comprehensive understanding of the underlying concepts and the ability to implement these systems in real-world scenarios. Through hands-on experience and in-depth exploration of advanced techniques in modelling the properties of living systems, students will develop a deep appreciation for the intersection of computer science and robotics in the field of Artificial Life. Emphasizing practical application, this module equips students with the skills necessary to push the boundaries of technology in the field of Artificial Life systems. |
Neural Networks and Machine Learning | 30 Credits | Optional |
A study of a selection of research topics centered around neural network theory and design, machine learning including supervised and unsupervised learning and some interesting applications, for example, data mining, biocomputation, evolutionary algorithms, neural networks as models of brain function in health, disease and development, and data visualization. Actual topics taught may vary from year to year. |
Theory and Practice of Artificial Intelligence | 30 Credits | Optional |
The overall aim of this module is to provide an in"depth study of a range of ideas, theories and techniques used in the construction of artificial intelligence systems. The module will be oriented towards the creation of Al systems for tasks in the areas of intelligent modelling, problem"solving, learning, decision"making, reasoning, robot control and others. There is a large practical element to the module with the students gaining experience in developing artificial intelligence models. |
Software Engineering Masters Project | 60 Credits | Compulsory |
The project is an opportunity for students to demonstrate what they know about current research and practices in computer science and apply their skills to a range of computer science topics in order to conduct a practical investigation of a particular computer science problem. The project is a self-directed piece of work, conducted with minimum supervision that demonstrates the student's ability to plan and manage a substantial piece of work, and steer their own efforts. Students are expected to be thorough in their work, and, particularly, identify and tackle any difficult or challenging aspects of the problems they are trying to solve. It is not just the quantity, or even the quality of work that is considered when grading the project, but the level of difficulty and the scope of the problem being addressed. |
Advanced Computer Science Masters Project | 60 Credits | Compulsory |
The project is an opportunity for students to demonstrate what they know about current research and practices in computer science and apply their skills to a range of computer science topics in order to conduct a practical investigation of a particular computer science problem. The project is a self-directed piece of work, conducted with minimum supervision that demonstrates the student's ability to plan and manage a substantial piece of work, and steer their own efforts. Students are expected to be thorough in their work, and, particularly, identify and tackle any difficult or challenging aspects of the problems they are trying to solve. It is not just the quantity, or even the quality of work that is considered when grading the project, but the level of difficulty and the scope of the problem being addressed. |
Foundations of Data Science | 30 Credits | Optional |
This module focuses on a range of topics related to basic mathematical concepts and skills, including linear algebra, calculus, statistics, probability, Bayesian inference, set theory, and information theory. The content may vary from year to year, but the aim is to apply the mathematical foundations as computational techniques. |
Wireless Mobile and Multimedia Networking | 30 Credits | Optional |
How can we cope with users and computers that move from place to place, and yet wish to remain in contact with the network? How can a network mix application with very different quality of service requirements? This module looks at a range of wireless communications technologies, and addresses some of the problems of wireless mobile ad"hoc and wireless networks and addresses the problems that must be solved if we are to integrate the gamut of diverse network applications onto a single network infrastructure. This module exposes students to some of the most important developments in computer networking. A more detailed description of the module content is provided in the module delivery information for students. |
Computational Algorithms and Paradigms | 30 Credits | Compulsory |
This module explores the extent to which different computational paradigms may be applied to problems in order to create appropriate solutions. To this end, this module will evaluate a range of different algorithmic paradigms such as divide and conquer, greedy algorithms, recursion, backtracking, dynamic programming, network flows and algorithmic techniques for coping with NP-hard problems. A more detailed description of the module content is provided in the module delivery information for students. |
Team Research and Development Project | 15 Credits | Compulsory |
This module explores a range of generic and domain-specific investigative methods and helps students to enhance their proficiency in the skills that are expected of those working at postgraduate level. Furthermore, this module involves working actively as part of a team of fellow students on a complex computing problem. Typically, the project can be a research project to answer a research question, a thorough empirical investigation of a specific topic, or a development idea from student themselves or a virtual or real client. Each team would be expected to manage the project, to report regularly on the progress of the project, and to collectively deliver a set of appropriate outputs from the project. The output(s) of the team project will typically be a computing product or system and its presentation together with appropriate documentation. |
Responsible Technology | 15 Credits | Compulsory |
This module is concerned with legal, social, ethical and professional issues that may affect the work of practitioners in the computing and technology sectors. Its main focus is on the ethical considerations inherent in the development of responsible technologies. Topics covered are likely to vary from year to year to reflect contemporary research and issues. |