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 will explore the ‘full stack’ of web application technologies. You will have the opportunity to learn how to design and develop both the frontend and backend of modern web applications. The module aims to cover the three-tier architecture approach for developing web applications: i) presentation tier, ii) application tier, and iii) data tier. You can learn how to use the relevant technologies for each tier, encompassing web presentation, application programmable interfaces (APIs), and database technologies. The overall aim of the module is for you to learn the how to develop robust client-server applications using secure and scalable technologies.
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 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.