Module Overview
This module aims to provide a comprehensive analysis of the general principles and practices of advanced programming with respect to software development. Notions and techniques of advanced programming are emphasised in the context of analysis, design, and implementation of software and algorithms. Great importance is placed upon the Object-Oriented paradigm and related concepts applied to algorithm and software development using the C++ programming language, however students will also be exposed to the principles and underlying theories pertaining to functional programming.
Module Overview
The module aims to provide a modern introduction to the concepts of symbolic artificial intelligence, set in the context of intelligent agents.
The module covers the concepts such as state space representations and search, heuristic and adversarial search methods, and optimization techniques. The module also covers knowledge representation, AI planning, and some nonstatistical, machine learning methods.
Module Overview
This module explores Cloud Computing and Data Centre technologies for the virtualization of computing infrastructure. The module will cover the core theory and concepts that support the virtualisation of compute, storage, and networking resources. Students will also learn about the design and development of web services and associated data formats, with scalability and data interoperability key considerations. The ethical, legal and security implications of adopting cloud computing services are also discussed.
Module Overview
In this module, students learn how computers can be used to analyse and process the natural language that we use in our everyday lives. Natural language is a data type like no other, and presents a unique set of challenges for which the field of Natural Language Processing (NLP) has sought to provide answers. Common applications of NLP include machine translation, text summarisation, question answering, chatbots, grammar checking, and many others.
Module Overview
This module considers basic computer communications and networking with an emphasis on the Internet Protocol.
The module examines the Internet Protocol as a model for intercommunication in modern network implementations. Additionally the module examines fundamental design features of a Network Protocol and the need to implement security in the modern Internet.
The module adopts a standards driven approach and determines methods used in modern network systems for the distribution of data. An emphasis on network infrastructure and protocols underpins the module together with basic security considerations important in modern network architectures. Aspects of security concepts are extended to consider mechanisms that counter various forms of threat that exist from different sources.
Module Overview
This module explores the fundamental concepts of designing, implementing, and using database technologies and students are expected to develop a conceptual view of database theory and then transform it into a practical design of a database application. Alternate design principles for implementing databases for different uses, for example in social media or gaming contexts are also considered.
Module Overview
This purpose of this module is to provide students with the experience of working as part of a team within a simulated commercial setting. Students will go through the key phases of software development from ideation through to development, testing, delivery, and publishing. Through the module students will learn how to manage and deliver commercial software development projects. This will include ethical, social and professional issues, project management, communication, time management, and team working strategies.
This module develops on the skills learnt in the first year and places them in a simulated commercial setting. The artefact produced as part of the software development process should be suitable for inclusion within a professional portfolio.