Introduction to C++ Programming
This module provides an introduction into the basic aspects of writing computer programs in the C++ language. The module covers three areas: input/output through console and files, storage of data in computer memory through primitive variables, arrays, pointers and vectors and algorithm design strategies and implementation of algorithms.
Introduction to Object Oriented Programming in C++
This module provides an introduction into the core concepts of Object Oriented Programming (OOP) through the C++ language. These core concepts include the class, the object, inheritance and association. The module then explores a contemporary OOP library which provides the functionality required for building games and simulations such as windowing, graphics, event handling and audio. An overview of good software development and testing practice is also given.
Outline content: Classes and objects, association, inheritance, windows and rendering, event handling, basic audio and basic animation.
The module introduces students to the ethical theories affecting cyber security, software engineering, computer science and digital forensics. It requires them to develop critical analytical skills in applying ethical theories to technological outcomes regarding cyber security, software engineering, computer science and digital forensics.
Computer Law & Cyber Security
The module introduces students to the legal and professional context of cyber security, software engineering, computer science and digital forensics, it addresses legal framework, legal and professional responsibilities of the software engineer, systems manager, computer forensic and security practitioner. The module will address computer ethics, data protection law, UK and international law affecting cyber security, digital engineering, systems management and digital forensics.
This module provides a foundation in computer architecture and operating systems with a specific emphasis on their security.
Students will learn about computer hardware, software, operating systems, and demonstrate practical knowledge of these during lab sessions.
Studying this module student will be able to relate the abstract concepts of logic and number systems to their concrete representation on real machines and identify the security risks in common configurations of computer operating systems and suggest appropriate mitigations. In the practical lab sessions students will also learn to develop shell scripts.
This module provides a foundation in modern computer networks with a specific emphasis on their security. Students studying this module will be able to explain how modern computer networks functions and be able to demonstrate a practical knowledge of computer networking. Students will be able to identify security risks in common configurations of computer networks and suggest appropriate mitigations.
Mathematics for Computing
Mathematical structures are introduced that provide a basis for computer science. Specific topics include logic, set theory, probability and statistics.
Database Design & Implementation
Structured data, held in relational databases, accessed via SQL, supports the information storage requirements of many companies, organisations, and on-line businesses. In this module the student will learn the fundamentals of how to design the structure of data within a relational database, how to interact with data within the database, and how to protect the data within the database.
The mechanics presented on this module can be split into three areas all concerned with rigid bodies: the simulation of motion, the detection of collisions and the resolution of collisions. The students will be introduced to the mathematical techniques required for these models as the need arises. The students will be able to model the motion of rigid bodies under constant and variable acceleration. This will be done through Newton’s equations of motion for constant acceleration and numerical approximations methods such as Euler’s method for variable acceleration. The students will be able to detect collisions between pairs of convex rigid bodies using the SAT algorithm and be able to use simplified approaches for circles, axis-aligned bounding boxes and oriented bounding boxes. Collision resolution will be explored through the conservation of linear and rotational momentum with simple coefficient simulations of elasticity and friction.
Artificial Intelligence for Simulation
Many applications of modern computing involve processes of assessment and decision making which used to be solely within the domain of human beings. Uses of Artificial Intelligence are widespread globally - from search engine algorithms on the internet to making decisions on credit worthiness to route finding in virtual worlds. This module covers in outline the major techniques of Artificial Intelligence and focuses on applications in computer games programming and simulation which use these techniques. The general methods of AI include knowledge based reasoning, graph-based search algorithms, probabilistic reasoning, finite state machines, flocking and behavioural trees. Students will be required to explore the implications of their knowledge and use of these intelligent technologies with reference to ethical codes of relevant professional bodies and legal responsibilities.
Object-Oriented Programming in C++
The starting point of the module is that the student has done a module of C++ programming and understands the fundamentals of the Object Oriented (OO) approach. The purpose of this module is to further the students’ knowledge of the C++ programming language in a professional software development context. The course will involve significant development in softer skills critical to successful software development and the creation of high quality code.
Advanced Object-Oriented Programming in C++
This module is concerned with expanding the students’ technical knowledge of the C++ programming language. The module looks at basic memory management and performance profiling, unit testing, polymorphism, design patterns, integration of existing libraries with a constant view of the quality of the code being produced.
This module provides students with an introduction to the principles, practice and context of interactive 3D modelling, rendering and animation. This will be done via presentation of the theoretical basis and through practical work using an industry-standard graphics library, such as OpenGL, and a modelling tool, such as Maya.
Introduction to Computational Intelligence and Control Systems
This module introduces the principles of Computational Intelligence and the main techniques applicable to control as well as a variety of real world problems. The aim of this component is to provide the student with an understanding of the principles and applicability of the most widely used CI tools appropriate for control (e.g. autonomous mobile robots).
This module provides the students with an overview on the basic and historical streams of computational intelligence, namely Fuzzy Logic, Neural Systems, and Metaheuristic Optimisation. Furthermore, it provides explicit context of these tools (mainly Fuzzy Logic) in the area of control with particular focus to robotics.
The module covers the use of microprocessor-based systems to control home appliances or industrial equipment that may or may not include electrical motors in their structure. The issues discussed in this module include description of embedded systems, basic aspects of C programming for embedded systems, interrupts, shared-data problem, the use of sub-routines/co-routines/semaphores and real-time operating systems (RTOS). Main types of electrical motors, their associated power converters, control strategies and the role of electrical motors in typical equipment and appliances are presented.
This module will develop the skills of producing an application that delivers required features in the context of on-going negotiation between business clients and the development team.
Fuzzy logic and Knowledge Based Systems
This module will introduce Fuzzy Logic and explain how to use it in the context of decision making.
This module will explain the functioning of autonomous mobile robotics and learn how to remotely control a robot.
The project provides students with the opportunity to carry out a significant piece of work involving critical analysis and reflection to provide an effective solution to a given technical and/or research-based problem. It enables students to apply and integrate previous material covered on the student's course as well as to extend the work covered on the course through research and self-learning. Students will be expected to demonstrate appropriate and proactive project management, and written/verbal presentation skills throughout the period of the project. As well as analysing, designing, delivering and appraising a product of suitable quality, they will be expected to undertake, research, analyse, design, evaluate and report on some aspects of a subject explicitly allied to the project.
Secure Web Application Development
This module assumes a sound understanding of PHP. This will have been gained through previous study or significant commercial experience of web development.
Many modern computer services are now accessed via the ubiquitous web-browser, and users have come to expect instant and secure access to information on a wide range of platforms. Underpinning these web systems is usually a web application, providing a channel to data stored in databases. However, increasingly the web-site has also become a point of entry for unauthorised access to stored data. This is often the result of poor web application design and/or implementation.
The module considers how a web application may be designed and implemented in such a way as to reduce the likelihood of unauthorised access to information. This also requires an understanding of the more common forms of browser-based attacks and the coding techniques that can be used to defend against these.
This module will teach the basics of telemetry, that is the use of a transmission system to monitor and control remote and distributed systems.
Multi-service Networks 1
The module provides a comprehensive analysis of problems and solutions found in modern networks and covers the communication stack (Physical, Data-link and Network layers). The module concentrates largely on the TCP/IP networks while the subnet covers recent and emerging developments in LANs, MANs and WANs, for both fixed and wireless network technologies. The Internet will be used as the driving vehicle to deliver the module. Familiarity is assumed with the basic concepts, but not necessarily the detail of data communications and the mechanisms by which a communications subnet transfers data segments between remote machines. Typically, these will have been studied in Year 2 modules but this is not a prerequisite. The module does have a strong software & algorithms orientation. Cisco technologies (Cisco Routers and Switches and Cisco Packet Tracer) will be used within the labs and tutorials.
Multi-service Networks 2
The module provides analysis of problems and solutions found in networks and covers the mainly the communication stack (Transport and Application layers). The Networks module focuses exclusively on very high speed networks, which carry integrated multi-service traffic such as voice, video and data. A recurring theme is how the network can provide the necessary Quality of Service requirements for the various types of traffic. The recent and emerging developments in local and wide area networks, for both fixed and wireless network technologies, are considered and the role each of these can play in providing a suitable broadband intra/internet infrastructure is discussed. The protocols developed for each of these technologies is developed and contrasted with conventional OSI Model. A recurring theme is how the network can provide the necessary Quality of Service requirements for the various types of traffic. Cisco Routers and Switches and Cisco Packet Tracer) will be used within the labs and tutorials.
Students are assumed to complete multi-service networks 1 as a prerequesite. The module does have a strong software & algorithms orientation.
Front-end Web Development
This module provides a thorough grounding in the rapidly-evolving area of front-end web technologies and interface design, covering:
1. Crucial design principles;
2. Information Architecture;
3. Usability and accessibility.
This module looks at formal systems in rigorous software development
IT Services Foundations
This module explores the fundamental of processes and the standard problem space around the management of IT in organisation.
IT Services Practice
This module looks outwards to the stakeholder and groups that interface with IT services. The focus is primarily on the customer of IT services who draw on IT services to achieve their tasks and meet their goals. In particular work is done on how to understand customers and the use of tools such as customer journey mapping. The module also looks to the interface with senior management of the organisation management as expressed through the development of strategy.
This module provides an overview on Data Mining: the science that studies how to store, organize and search within a large volume of data
Popular Technology Ethics
The expansion of artificial intelligence, data science, algorithmics, social computing and digital transport, among many areas and applications is giving rise to daily emerging concerns and issues about usage, deployment and impact of rapidly changing information technology.
This module engages students critically with the underpinning ethical issues which arise from the popular portrayal of technologies in the media.
Big Data analytics is the process of collecting, storing and accessing large volumes of unstructured heterogeneous data in order to uncover useful patterns, trends and correlations. Big Data differentiates from the traditional view of a dataset by the so-called big V’s (Volume, Variety, Velocity and Veracity), where modern computing systems allow businesses, governments, and scientists to gather a vast array of unstructured data rapidly.
Processing such data has provided its own considerable challenges, leading to a wide spread of new technologies that are constantly changing and improving. This module will introduce students to Big Data, its usage, and its challenges.
The objective of this module is to provide the students studying an engineering degree with an insight and understanding into the approach and philosophy of mechatronics. Furthermore the module should demonstrate the essential features of mechatronics and its application in realising innovative modern engineering design. The role of mechatronics and its relevance to modern engineering will feature in terms of product design, machine design, and process design.
Systems Building: Methods
This module covers an important aspect of Information Systems Development (ISD): the selection and evaluation of methodologies used in the Systems Development process.
A variety of ISD paradigms and methodologies will be considered, including ‘hard’ approaches, both Object-Oriented and Structured, ‘soft’ and participative approaches, and ‘heavyweight’ and ‘agile’ methodologies. A framework will be developed to compare and evaluate methodologies to help determine their applicability to particular development projects and environments. The way in which methodologies are used in practice will also be considered.