麻豆女优

Guide to choosing classesComputer & Information Sciences

The following classes are available to exchange students studying in the Department of Computer & Information Sciences:

Semester 1 - Level 1

  • Class code: CS124
  • Level: 1
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Lectures

Class descriptor

The class in intended to provide students with an appreciation of real world use of technology to support business. Students will be able to understand the diverse applications of technology in the business environment, Analyse the opportunities and challenges presented by the use of technology in a business setting, apply decision making within an organisation, analyse scenarios involving digital transformation and disruption in business using quantitative and qualitative methods. Finally students will develop knowledge of the commercial and economic context of the development, use and maintenance of information systems. 

  • Class code: CS119
  • Level: 1
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Seminars/Tutorials, Online, Assignment

Class descriptor

The aim of the class is to provide participants with an understanding of how to decompose a problem into its component parts and abstract these parts to provide a solution. This skill is vital for computer programming.

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development, BSc Hons IT: Management for Business and BSc Hons Digital and Technology Solutions.

  • Class code: CS210
  • Level: 1
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Seminars/Tutorials, Online, Weekly blog posts, Assignment, Project

The aim of this class is to provide a high-level overview of the software engineering lifecycle, software development processes, anatomy of software systems, testing principles and practices, maintenance and evolution.

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development, BSc Hons IT: Management for Business and BSc Hons Digital and Technology Solutions.

Semester 1 - Level 2

  • Class code: CS211
  • Level: 2
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Seminars/Tutorials, Online, Assignment, Private Study

The main aim of this course is to help students develop and practice responsible decision making in computing with consideration for ethics, relevant laws, and potential social impacts. By the end of the course students will be able to: describe the contemporary characteristics of professionalism (e.g. membership, knowledge, professional conduct and collective responsibility), to identify and describe key laws (e.g. GDPR, IP and Copyright, Computer misuse), tools for ethical reflection (ethical theories, constructive habits, reflective questions, codes of conduct), and potential social impacts (awareness of potential harms and potential good) related to the computing challenges/topics touched upon in this course (e.g. Privacy, Equality, Cybercrime).

  • Class code: CS259
  • Level: 2
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Practical, Laboratory, Private Study

The class will teach the quantitative and numerical methods needed through practical examples. Teaching these methods through practical examples will both show the relevance of the methods being taught and strengthen the programming skills of the students in this important area. This class will teach the quantitative and numerical methods that underpin modern Computer Science, such as (but not restricted to) Artificial Intelligence and Data Analytics. The class will also provide students with the numerical methods needed to perform quantitative evaluations of algorithms and software.

Core class for BSc Hons Computer Science & BSc Hons Software Engineering

  • Class code: CS273
  • Level: 2
  • Semester (including exams): 1 (September to December)
  • Credits: 15 (7.5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Seminars/Tutorials, Online, Assignment

The aim of the class is to provide participants with a conceptual and practical understanding of data modelling, database design and database technology. The class then builds on a basic understanding of the relational database approach, covering more complex SQL query design and efficient execution.

Available as part of the BSc Hons Digital and Technology Solutions programme.

  • Class code: CS275
  • Level: 2
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS112 Programming 1 or a good understanding of Java programming (e.g. being able to understand and implement the programming concepts that are introduced in CS112).
  • Teaching methods: Seminars/Tutorials, Online

The aim of the class is to further participants’ skills in object-oriented programming, provide knowledge of key abstract data types along with their implementation and usage, as well as an analytical and empirical appreciation of the behaviour of algorithms and the use of abstract data types.

Available to participants taking BSc Digital and Technology Solutions.

  • Class code: CS253
  • Level: 2
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Seminars/Tutorials, Online, Assignment, Groupwork

The aim of the class is to provide participants with a conceptual and practical understanding of data modelling, database design and database technology. The class then builds on a basic understanding of the relational database approach, covering more complex SQL query design and efficient execution.

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development and BSc Hons Digital and Technology Solutions.

Semester 1 - Level 3

  • Class code: CS308
  • Level: 3
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS207 Advanced Programming
  • Teaching methods: Lectures, Laboratory, Assignment, Private Study

To extend and deepen the students understanding of the analysis, design and implementation of software systems; to provide further experience in the activity of designing and implementing non-trivial systems; and to enable the student to demonstrate practical competence in a group environment. The goal for the student is the development in a group setting of significant systems from scratch aiming not just at any solution but a good solution, and to be introduced to more general Software Engineering topics.

Not available as an elective

  • Class code: CS312
  • Level: 3
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS207 - Advanced Programming, CS209 - User and Data Modelling
  • Teaching methods: Lectures, Videos, Laboratory, Assignment, Private Study

On completion of the class, a student should be able design and develop realistic web-based applications that include client-side programming and server-side functionality with database components. In particular, the student should learn: to understand the typical topology of internet applications, to develop accessible and secure internet-based applications that make use of: client side technologies, server-side technologies, back-end technologies for storing server-side data, distributed web applications

  • Class code: CS316
  • Level: 3
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: Basic programming skills, as might be gained by taking CS105 Programming Foundations or a similar introductory programming class.
  • Teaching methods: Lectures, Seminars/Tutorials, Laboratory, Assignment, Private Study

This class aims to provide the student with skills in basic functional programming and experience in integrated deployment of those skills. On completion of the class, a student should be able to: understand the basic advantages of high-level programming languages, understand the basic advantages of using mathematics to structure programming, specify and implement simple functional programs in the programming language Haskell

  • Class code: CS353
  • Level: 3
  • Semester (including exams): 1 (September to December)
  • Credits: 15 (7.5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: Previous programming experience would be beneficial.
  • Teaching methods: Seminars/Tutorials, Online, Assignment

The aim of this class is to provide participants with: a) Python programming skills; b) an understanding of the challenges posed by the advent of big data (e.g. its modelling, storage, and access); an understanding of the key algorithms and techniques which are embodied in data analytics solutions. 

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development and BSc Hons Digital and Technology Solutions.

  • Class code: CS351
  • Level: 3
  • Semester (including exams): 1 (September to December)
  • Credits: 15 (7.5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS251 Programming 2 or very good knowledge and experience of Java programming. 
  • Teaching methods: Seminars/Tutorials, Online, Assignment

The aim of this class is to develop an understanding of highly concurrent software systems. This understanding will be enhanced through significant practical work which consolidates the class content.

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development.

  • Class code: CS354
  • Level: 3
  • Semester (including exams): 1 (September to December)
  • Credits: 15 (7.5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS251 Programming 2 or very good knowledge of Java programming.
  • Teaching methods: Seminars/Tutorials, Online, Assignment

The aim of this class is to equip participants with a knowledge and understanding of computer networking. Participants will gain a practical understanding of the topic via assessed programming assignments.

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development.

Semester 1 - Level 4

  • Class code: CS407
  • Level: 4
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS209 User & Data Modelling CS308 Building Software Systems C313 Computer Systems and Concurrency
  • Teaching methods: Lectures, Seminars/Tutorials, Laboratory, Assignment, Private Study

The aim of this class is to provide students with the opportunity to develop a security mind-set by introducing them to core material in the area of computer security. This should enable students to identify potential threats and vulnerabilities for a range of situations, and propose appropriate actions to mitigate these issues.

  • Class code: CS453
  • Level: 4
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS353 Fundamentals of Data Analytics or a good knowledge of Java and/or Python.
  • Teaching methods: Seminars/Tutorials, Online, Assignment, Private Study

The aim of the class is to give learners a basic introduction to modern AI. Participants will develop a practical understanding of AI algorithms which enable autonomous systems to make rational decisions, AI systems which encompass a variety of such algorithms to achieve an overall goal, and the implementation of these in a suitable high-level programming language.

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development.

  • Class code: CS454
  • Level: 4
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: A good practical knowledge of computer science, including knowledge of programming and computer networks.
  • Teaching methods: Seminars/Tutorials, Online, Assignment, Private Study

The aim of this class is to develop fundamental understanding of key aspects of cyber security and how they relate to modern professional practice. After completing this class participants will be able to: compare and contrast secure communication solutions, evaluate an existing or proposed system in terms of potential vulnerabilities and recommend the most appropriate security solution to apply, summarise the key vulnerabilities, threats, and attacks with regards to network security and propose suitable approaches to mitigate these issues, plan and implement an aspect of technical security such as log analysis.

Available to participants taking the BSc Hons IT: Software Development Graduate Apprenticeship degree.

  • Class code: CS409
  • Level: 4
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS308 Building Software Systems
  • Teaching methods: Lectures, Laboratory, Assignment, Private Study

This class aims to introduce students to the main challenges arising in advanced large-scale software design and role that architectures and frameworks play in this, and to study a number of key design patterns and critically evaluate their application to software designs. It will develop the students’ skills and understanding of the tools and techniques that may be used for the automatic analysis and evaluation of software.

Not available as an elective

  • Class code: CS423
  • Level: 4
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: A good, practical knowledge of computer science including programming.
  • Teaching methods: Seminars/Tutorials, Online, Private Study

The aim of this class is to develop fundamental understanding of key aspects of cyber security and how they relate to modern professional practice. By the end of the module students should have developed a security mindset which allows them to consider key elements of cyber security as they apply to a range of computer systems. 

Available to participants taking the BSc Hons Digital and Technology Solutions Degree Apprenticeship.

  • Class code: MS418
  • Level: 4
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Project, Private Study

Project management and project based organisations are becoming increasingly common in industry, therefore this class assumes that every management student requires some knowledge of the tools and techniques used to manage projects within organisations. The class aims to provide the student with these. It will introduce the student with no project management background to: 1) the concept of the project lifecycle 2) project management as a strategic tool and 3) the methodologies and tools that enable efficient project execution. The class will familiarise the student with the basic concepts associated with project management. It is designed around seven main areas: Project Management Basics Setting Objectives and Defining Project Deliverables Work Breakdown, Structures and Milestones Project Planning Project Finance Risk Management. These areas will provide the student with a general understanding of project management that will complement their studies in other areas of the course, such as management finance and strategy, where the execution of company strategy may require the use of project management techniques.

Semester 1 – Level 5

  • Class code: CS547
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS409 Software Architecture and Design (or equivalent)
  • Teaching methods: Lectures, Seminars/Tutorials, Laboratory, Assignment, Private Study

The aim of this class is to introduce students to a selection of recent advances in software engineering, along with some of the challenges and outstanding problems. The current focus of the module is on the use of AI-based techniques to address significant software engineering problems, and to put these into practice on real problems and evaluate their effectiveness. 

Available only to MSc Advanced Computer Science, MSc Advanced Software Engineering, fifth year MEng Computer Science and fifth year MEng Computer & Electronic Systems students

  • Class code: CS548
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Online, Lectures, Seminars/Tutorials, Laboratory

This class aims to develop research level understanding of the design and evaluation of interactive systems and interfaces for newly emerging technologies and computing domains such as ubiquitous and mobile computing, universal access and domain specific applications (e.g. older adults, education, health, children).

Available only to MSc Advanced Computer Science, MSc Advanced Software Engineering, fifth year MEng Computer Science and fifth year MEng Computer & Electronic Systems students

  • Class code: CS982
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study

The aim of this module is to endow students with: an understanding of the new challenges posed by the advent for big data, as they refer to its modelling, storage, and access; an understanding of the key algorithms and techniques which are embodied in data analytics solutions; an exposure to a number of different big data technologies and techniques, to show how they can achieve efficiency and scalability while also addressing design trade-offs and their impacts.

  • Class code: CS982
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study

The aim of this module is to endow students with: an understanding of the new challenges posed by the advent for big data, as they refer to its modelling, storage, and access; an understanding of the key algorithms and techniques which are embodied in data analytics solutions; an exposure to a number of different big data technologies and techniques, to show how they can achieve efficiency and scalability while also addressing design trade-offs and their impacts.

  • Class code: CS976
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study

This class aims to give students an overview of the field of information retrieval. More specifically the class will: critically examine a number of influential information seeking models; provide students with an understanding of research methodologies for studying human information behaviour; examine important concepts, such as relevance, in the context of information seeking and retrieval; examine how findings from information seeking theory and practice can inform the design of information access systems; outline the theory and technology used to construct modern Information Retrieval and Information Access systems; critically evaluate the assumptions behind the evaluation of Information Retrieval systems.

  • Class code: CS977
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study

The aim of this course is to introduce students to the major concepts of Information Retrieval (IR), including the design, implementation, and evaluation of Information Retrieval systems.

  • Class code: CS978
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Seminars/Tutorials, Assignments, Private Study

This class aims to ensure that the student is aware of the legal, social, ethical and professional issues commensurate with the practice of Information Systems Engineering.

  • Class code: CS823
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Practical, Laboratory, Private Study

The aim of this module is to endow students with: Mathematical concepts and numerical reasoning, Algorithmic programming, Problem analysis and modelling. 

This class is mandatory. 

  • Class code: CS824
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures (online), Laboratory, Seminars/Tutorials, Private Study

The aim of this class is to provide students with the foundations of mathematics that are required to understand modern Artificial Intelligence techniques. The class will focus on three main topic areas: linear algebra, probability and statistics.

This class is mandatory. 

  • Class code: CS988
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study

The aim of this module is to endow students with: an understanding of the new challenges posed by the advent for big data, as they refer to its modelling, storage, and access; an exposure to a number of different big data technologies and techniques, to show how they can achieve efficiency and scalability while also addressing design trade-offs and their impacts.

  • Class code: CS801
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures (online), Laboratory, Seminars/Tutorials, Private Study

The aim of this class is to provide students with the foundations of mathematics that are required to understand modern Artificial Intelligence techniques. The class will focus on three main topic areas: linear algebra, probability and statistics.

This class is mandatory.

  • Class code: CS814
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Seminars/Tutorials, Private Study

The aim of this class is to endow students with: the ability to program in a suitable high level language for implementing AI algorithms and building AI systems, an understanding of what Artificial Intelligence means in the context of autonomous systems, an understanding of the key algorithms and techniques which can enable autonomous systems to make rational decisions and choose appropriate actions, an exposure to a range of techniques that enable autonomous systems to make rational decisions and choose appropriate actions in a variety of settings.

This class is mandatory.

  • Class code: CS880
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Practical, Private Study

The first aim of this module is to act as an introduction to information security by introducing key concepts, such as vulnerability, threat, attack and exploit, control, risk, risk landscape, residual risk, and their relationships; the main security mechanisms, access control and cryptography; and the organisational context within which information security activities take place, covering aspects such as information security culture, the role of policy and standards, the business environment, and business resilience. The second aim of this module is to prepare students with practical experience of a typical networking setup involving Linux VMs that will prepare students with core skills that enabled them to better tackle more advanced security problems in the second semester. Finally, students will be able to position technical knowledge acquired in a regulatory and legal context within which organisations operate

  • Class code: CS881
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Seminars/Tutorials, Private Study

By the end of the module students will understand, analyse and minimise the security and privacy risks arising from human activities. Students will explore the intricacies of digital footprints, analyse how online and offline activities contribute to digital presence and further impact real lives. Students will understand the role of psychosocial factors contributing to awareness, perceptions and behaviours of individual users. Students will develop an understanding of socio-technical systems users interact with and how to leverage human capabilities as a solution to cybersecurity challenges. Student will expand their understanding of human factors in cybersecurity beyond traditional user-centric approaches. 

  • Class code: CS882
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study

The aim of this course is to help students understand how vulnerabilities in systems can arise and be countered through the design and appropriate usage of protocols. Protocols are critical for almost all systems, which now typically involve multiple components, such as severs, clients, and other devices such as smartcards. The course is motivated via leading examples of protocols that fulfil different roles in such systems, and hence are intended to establish different security properties, such as mutual agreement and forward secrecy. Through case studies and pedagogical exercises, the students form an intuition for what the essential elements of security and privacy properties are, and for the underlying threat models that capture the capabilities of man-in-the-middle attackers which we aim to counter. This intuition facilitates students in the use of state-of-the-art tools for formally model and verify protocols. Students will then be able to use logical formulations of security properties in their tools chain for avoiding critical vulnerabilities in systems.

  • Class code: CS809
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 15 (7.5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Seminars/Tutorials, Private Study

A practical in-depth appreciation of how to conduct forensic investigations in accordance with legal and ethical guidelines, and the design and implementation of incident management and response procedures from the perspective of ensuring cyber resilience and meeting incident reporting compliance requirements.

  • Class code: CS804
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Seminars/Tutorials, Private Study

This module will provide skills and understanding on the ageing process and how this influences the design or delivery of technologies or services for older adults. It will highlight the need to understand: the diversity and complexity of ageing population and implications for digital health technologies in: promoting health and wellbeing, supporting independent ageing in a preferred place for as long as possible, supporting terminal and end of life care, supporting informal carers, health inequalities.

  • Class code: CS981
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Online, Lectures, Seminars/Tutorials, Laboratory

The class will provide a review of interactive new emerging technologies for health and care (clinical systems, mobile apps, wearables, sensors, monitors, self-management tools). Students will learn about usability, user experience, accessibility and digital inclusion and what these mean for the design of usable health systems. The class will provide students with the knowledge and skills required to employ a user-centred design process when designing interactive health systems from user requirements and analysis, to design and prototyping tools and to developing and carrying out robust evaluations of usable, acceptable and effective health systems and services.

Available only to MSc Digital Health students

  • Class code: MS999
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Group work, Lectures, Practical, Private Study

This module will develop your understanding of principles of health economic evaluation. You'll learn the tools to assess the effects and economic efficiency of health policy and interventions. The theory and methodologies students learn will provide you with practical tools that can be applied to healthcare provision planning in the public and private sectors. These tools can also help developers of health technologies and services (e.g., biomedical engineers, digital technology developers, and pharmacists) understand where the greatest value lies.

  • Class code: CS803
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Seminars/Tutorials, Assignments, Private Study

This course will introduce students to the concept of information analysis, covering major techniques in information analysis including sentiment analysis, content analysis, information visualisation, systematic reviews and summarisation.

This is a mandatory class. 

  • Class code: CS954
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Assignment, Private Study

This module aims to give a detailed examination of the field of information seeking and retrieval: the study of how people search for information, and the sources, services and systems that can be used to help people access information.

  • Class code: CS997
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Seminars/Tutorials, Assignments, Private Study

This module aims to develop an understanding of models and theories of human information behaviour; develop an understanding of the factors influencing human information behaviour; develop an  understanding of information need in context; develop an understanding of appropriate research approaches and methodologies.

  • Class code: CS955
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Assignment, Private Study

This module aims to provide students with an understanding of the legal and regulatory issues facing information and computing professionals.

  • Class code: CS808
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Seminars/Tutorials, Private Study, Assessment

This module is designed to give students an understanding of fundamental aspects of cyber security. The aim of this class is to help you develop a cyber security mind-set. Not all students studying this module have a security focused role in mind, but all jobs (particularly computing related jobs) have some responsibilities associated with cyber security. You will often hear employers emphasising how security is everyone’s responsibility. Additionally, it can be helpful for your individual security needs to be aware of the types of attack and mechanisms which can help you maintain confidentiality and security of your data.

MSc Software Development programme only.

  • Class code: CS994
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: CS995 - Introduction to Programming Principles
  • Teaching methods: Lectures, Seminars/Tutorials, Laboratory, Assignment, Private Study

This module will provide students with programming skills in Java. In addition, students will learn key concepts and general techniques from object-oriented (OO) programming that will enable them to quickly learn other object-oriented languages, such as C++ or C#.

This class is not an elective.

  • Class code: CS995
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study

The aim of this module is to provide students that have no Computer Science background with coding and IT skills. Students will gain their first programming experience, predominantly in the language of Python. At the end of the module students will understand basic principles and will have developed basic competence in programming in a modern industry standard programming language.

  • Class code: CS989
  • Level: 5
  • Semester (including exams): 1 (September to December)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study, Assignment

The aim of this module is to endow students with an understanding of the new challenges posed by the advent for big data, as they refer to its modelling, storage, and access. It will also give students an understanding of the key algorithms and techniques which are embodied in data analytics solutions.

Semester 2 - Level 1

  • Class code: CS107
  • Level: 1
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: The student should have a developed understanding of: The function and basic operation of the fundamental hardware components of computer systems; The function and basic operation of the fundamental software components of computer systems; The hierarchy of, and the interaction between, the components of a typical computer system; The concept of a logical layer and the benefits of building abstract layers in hierarchical fashion; The need for APIs and middleware and how computing resources are used by application software and managed by system software; The evolution of early networks and the Internet and the structure of a typical, current, network architecture; The concept of an instruction set architecture (ISA), and the nature of a machine-level instruction in terms of its functionality and use of resources (registers and memory); The various classes of instruction: data movement, arithmetic, logical, and flow control; their use and abuse in simple programs; The typical types of data/number/information representations and the implications of these for calculations and transformations; Boolean functions and logic expressions and their implementation in digital logic gates, and combinational and sequential circuits.
  • Teaching methods: Lectures, Seminars/Tutorials, Practical

Class descriptor

This class will further the student’s knowledge of the design parameters of a typical computer system and the impact these have on the functionality, and implementation, of the hardware and software components.

  • Class code: CS113
  • Level: 1
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Seminars/Tutorials, Online, Assignment

Class descriptor

The aim of the class is to give participants a practical high-level understanding of web systems and the languages and tools that can be used for their creation. After completing this class, participants will be able to: describe the components of a web system, understand how to store and access data, understand how to make web systems usable and accessible, understand and describe security threats and how to mitigate these, construct and create a simple web system with a back-end database.

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development and BSc Hons Digital and Technology Solutions.

  • Class code: CS121
  • Level: 1
  • Semester (including exams): 2 (January to May)
  • Credits: 30 (15 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Seminars/Tutorials, Online, Assignment, Project

The aim of this class is to introduce students to basic coding skills, enable them to gain an understanding of basic principles and develop basic competence in programming in a modern industry standard programming language.

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Management for Business.

Semester 2 - Level 2

  • Class code: CS217
  • Level: 2
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: Students taking this class should have obtained a good mark for CS105 Programming Foundations (60% or more) and ideally have performed well in semester 1 of CS207 Advanced Programming.
  • Teaching methods: Group work, Lectures, Practical, Private Study

The class will enable students to gain practical experience of agile software delivery and developing for the cloud. Students will learn how great teams work together and how robust dynamic software is created in practice.  It will provide them with valuable insights into these important areas, knowledge of cutting-edge development processes, and the opportunity to enhance their software development skills.

Possible elective available only to Computer & Information Sciences students. There are up to 50 places available.

  • Class code: CS260
  • Level: 2
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Practical, Laboratory, Private Study

This class aims to introduce the core concepts and methods of modern functional programming, serving as an introduction to our third year class on this topic. The objectives of this class are for students to: understand basic functional programming concepts (inductive datatypes, pattern matching, structural recursion), understand how to transform and interpret languages of expressions, understand functional data structures (e.g. search trees), understand abstraction of type parameters and common interfaces.

Core class for BSc Hons Computer Science & BSc Hons Software Engineering

  • Class code: CS255
  • Level: 2
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Seminars/Tutorials, Online, Assignment

The aim of the class is to ensure that participants are aware of the legal, social, ethical and professional issues commensurate with the practice of Computer Science/Software Development. After completing this class participants will be able to: understand the legal and regulatory issues facing information and computing professionals, appreciate the characteristics of professionalism, understand how their organisation addresses the legal, ethical, social and professional issues that arise within the IT sector.

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development, BSc Hons IT: Management for Business and BSc Hons Digital and Technology Solutions.

  • Class code: CS272
  • Level: 2
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Seminars/Tutorials, Online, Groupwork, Lectures

The aim of this class is to equip participants with knowledge and understanding of computer networking. Participants will gain a practical understanding of the topic via assessed programming assignments. On completion of this class, participants will be able to: demonstrate a broad knowledge of the area of computer networking and its terminology, demonstrate and understanding of the TCP/IP model, demonstrate a basic understanding of the underpinning mechanisms of cutting-edge networking technologies such as software defined networking, network function virtualisation and fifth generation mobile networks (5G Networks).

Available to students taking the BSc Hons IT: Management for Business and BSc Hons Digital and Technology Solutions programmes.

  • Class code: CS276
  • Level: 2
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: This class builds on the basic understanding of software engineering principles from CS120 Introduction to Software Engineering (10 credits). In particular learners should have an understanding of the principles of agile development.
  • Teaching methods: Groupwork, Assignment, Lectures

The aim of the class is to further the participants’ skills and experience in the design and development of large-scale software systems. On completion of this class, participants should be able to: understand software processes and commonly used software process models, understand requirements engineering and identifying functional and non-functional requirements, identify the appropriate stakeholders and creating user stories, model the requirements of a system using UML (e.g. use cases and class diagrams), work as part of a team to analyse the requirements of a software system.

Available to participants taking the BSc Hons Digital and Technology Solutions programme.

  • Class code: CS252
  • Level: 2
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS114 Software Engineering 1 or equivalent experience.
  • Teaching methods: Seminars/Tutorials, Online, Assignments, Groupwork

The aim of the class is to further the participants’ skills and experience in the design, development and testing of larger scale software systems. After completing this class participants will be able to: produce a design by identifying, from a requirements specification, necessary classes, their relationships, and their interactions, implement a given design and verify and validate the implementation, be familiar with the main tools and technologies used to support the development with management of software systems, work as part of a team to design, build, test and deliver a software system, understand the key components involved in designing, building and testing a software systems.

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development and BSc Hons Digital and Technology Solutions.

  • Class code: CS254
  • Level: 2
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Seminars/Tutorials, Online, Assignment

The aim of the class is to develop the participant's understanding of a low-level programming language, its relationship with the underlying instruction set of the computer, and how data is organised within memory. 

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development.

Semester 2 - Level 3

  • Class code: CS310
  • Level: 3
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS207 Advanced Programming, CS208 Logic and Algorithms
  • Teaching methods: Lectures, Seminars/Tutorials, Laboratory, Assignment, Private Study

To help the student to a broad appreciation of the scale and nature of the problems within Artificial Intelligence and to a detailed understanding of some of the fundamental techniques used to address those problems. On completion of this class, a student should be able to: understand the modern view of AI as the study of agents that receive percepts from the environment and perform actions, demonstrate awareness of the major challenges facing AI and the complexity of typical problems within the field, to exhibit strong familiarity with a number of important AI techniques (including in particular: search, knowledge representation, planning and constraint management).

  • Class code: CS313
  • Level: 3
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS210 - Computer Systems & Architecture
  • Teaching methods: Lectures, Seminars/Tutorials, Laboratory, Assignment, Private Study

To enable the student to develop a deeper understanding of highly concurrent hardware and software systems. The class will also further the student’s knowledge of the need for, and the design and implementation of, those other vital hardware and software components of a concurrent system, namely multiprocessors and their interconnections, operating systems and networks. The interactions between many of these components will be investigated by means of significant practical work that consolidates the lecture content in the context of: (I) multiprocessor architectures, (ii) concurrency, (iii) protection and security and (iv) networked and concurrent applications. Software developed in appropriate programming languages will form the basis of much of the practical work thus enabling the student to enhance their software design and implementation skills in this domain.

  • Class code: CS317
  • Level: 3
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS207 - Advanced Programming
  • Teaching methods: Lectures, Videos, Laboratory, Assignments, Private Study

Students should gain a good understanding of the issues in developing for mobile environments, approaches to handling these issues and skills in developing for a widespread mobile platform.

  • Class code: CS363
  • Level: 3
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Seminars/Tutorials, Online

The aim of this class is to equip participants with a knowledge and understanding of computer networking. Participants will gain a practical understanding of the topic via assessed programming assignments.

This class is available to students taking BSc Digital and Technology Solutions (Cyber Security or Software Engineering specialist pathways).

  • Class code: CS364
  • Level: 3
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS112 Programming 1 and CS275 Programming: Data Structures and Algorithms. Participants will need strong practical Java programming skills as well as a knowledge of data structures and algorithms. A knowledge of networking concepts would also be useful, e.g. through taking the compulsory class CS363 Principles of Networking.
  • Teaching methods: Seminars/Tutorials, Online

The aim of the class is to further participants’ skills in object-oriented programming, and provide knowledge of key abstract data types along with their implementation and usage. Participants will develop their knowledge and skills by undertaking a programming project.

The class is available to participants taking BSc Digital and Technology Solutions.

  • Class code: CS365
  • Level: 3
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: Participants will need to have gained the knowledge and skills taught in modules such as CS112 Programming 1 or CS121 Programming with Python, CS120 Introduction to Software Engineering, CS253 Information and Data 2 or CS273 Introduction to Databases, CS272 Introduction to Computer Networks.
  • Teaching methods: Groupwork, Team Meetings

The aim of the class is: to extend and deepen the participant's understanding of the analysis, design and implementation of a medium-sized software system; to provide further experience in the activity of designing and implementing non-trivial systems; to enable participants to demonstrate practical competence in a group environment.

This class is available to participants taking BSc IT: Management for Business or BSc Digital and Technology Solutions (Business Analyst or IT Consultant pathway).

  • Class code: CS352
  • Level: 3
  • Semester (including exams): 2 (January to May)
  • Credits: 15 (7.5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS252 Software Engineering 2 or equivalent. Experience of working in a software engineering role would be beneficial.
  • Teaching methods: Seminars/Tutorials, Online, Assignment

The aim of the class is to equip participants with the knowledge and understanding of how to manage and execute a collaborative software project. After completing this class participants will be able to: be familiar with project management techniques and processes, understand how to conduct risk assessment and mitigate against those risks, know and understand configuration management processes and tools, be aware of a range of software development tools that can be deployed when developing a medium sized software application. 

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development.

  • Class code: CS355
  • Level: 3
  • Semester (including exams): 2 (January to May)
  • Credits: 15 (7.5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: A good understanding of programming.
  • Teaching methods: Seminars/Tutorials, Online, Assignment

The aim of this class is to introduce participants to the principles, tools and techniques for developing good user-centred systems. Furthermore, participants will become familiar with various evaluation techniques with respect to usability and accessibility. 

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development and BSc Hons Digital and Technology Solutions.

  • Class code: CS356
  • Level: 3
  • Semester (including exams): 2 (January to May)
  • Credits: 15 (7.5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS351 Programming 3, CS353 Fundamentals of Data Analytics, CS354 Computer Networks, CS355 User-Centred Design, CS352 Software Engineering 3 (co-requisite).
  • Teaching methods: Seminars/Tutorials, Online, Assignment

To extend and deepen the participant's understanding of the analysis, design and implementation of a medium-sized software system; to provide further experience in the activity of designing and implementing non-trivial systems; and to enable the participant to demonstrate practical competence in a group environment. 

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development.

  • Class code: CS357
  • Level: 3
  • Semester (including exams): 2 (January to May)
  • Credits: 30 (15 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: This class builds on CS256 Integrated Project 2.
  • Teaching methods: Private Study, Assignment, Project

This class enables participants to demonstrate the application of aspects of their degree course within an industrial context and to develop their professional skills by undertaking personal development planning and building an e-portfolio of work-related evidence to show that they meet various professional competencies.

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development.

  • Class code: CS358
  • Level: 3
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Seminars/Tutorials, Online, Assignment

The aim of the class is to develop the participant's understanding of a low-level programming language, its relationship with the underlying instruction set of the computer, and how data is organised within memory. 

Available as an optional class to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BEng Engineering, Design and Manufacture. 

Semester 2 - Level 4

  • Class code: CS410
  • Level: 4
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS316 - Functional Programming
  • Teaching methods: Lectures, Seminars/Tutorials, Laboratory, Assignment, Private Study

This class aims to provide the student with further skills in functional programming and an appreciation of the mathematical structures which underpin powerful general programming concepts and techniques.

Not available as an elective

  • Class code: CS411
  • Level: 4
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS208 - Logic & Algorithms
  • Teaching methods: Lectures, Seminars/Tutorials, Assignments, Private Study

Building on the previous material in software development, to extend and to formalise the student’s abilities in the area of computational complexity. On completion of the class, a student should be able: to categorise abstract machines and to construct machines appropriate to specific problems, to display an understanding of the merits and limitations of the analytical techniques to software development, to recognise the significance of complexity classes and analysis and to deduce the complexity of certain types of algorithm.

Not available as an elective

  • Class code: CS412
  • Level: 4
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS104 - Information and Information Systems Information and Information Systems
  • Teaching methods: Lectures, Seminars/Tutorials, Laboratory, Assignment, Private Study

This class will enable the student to understand the fundamentals of information access and information mining. The class will cover a range of techniques for extracting information from textual and non-textual resources, modelling the information content of resources, detecting patterns within information resources and making use of these patterns. It will focus particularly on unstructured textual information found on the web.

Not available as an elective

  • Class code: CS426
  • Level: 4
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Practical/Laboratory, Private Study, Group Work

This class will aim to teach students:  To understand the fundamental concepts of cyber security, with an emphasis on the human side of cyber security, To understand the influences on human decision making and how human behaviour can be changed, including the use of nudges, To be able to design an evidence-based intervention which improves the user’s interaction with a security solution, To be able to write information security policies that accommodate the needs of humans, To gain an appreciation of the entire socio-technical system within which users interact with security systems, To gain an appreciation of a range of social engineering techniques, and ways of ameliorating these. 

Optional for BSc Hons Computer Science, MEng Computer Science and BSc Hons Software Engineering

  • Class code: CS451
  • Level: 4
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS351 Programming 3
  • Teaching methods: Seminars/Tutorials, Online, Assignment, Private Study

The aim of the class is to enable participants to understand the challenges of advanced software design and the issues associated with large-scale software architectures, frameworks, patterns, and components. Participants will develop their understanding of tools and techniques that may be used for static and dynamic analysis of software. The class focuses mainly on practical aspects of software development involving extensive Java programming and investigating the application of large Java frameworks. 

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development.

  • Class code: CS452
  • Level: 4
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS113 Information and Data 1 – knowledge of HTML, CSS and JavaScript is required.
  • Teaching methods: Seminars/Tutorials, Online, Assignment, Private Study

The aim of the class is to equip participants with the knowledge and skills to build cross-platform native mobile apps which can run on both iOS and Android devices using declarative and component-based JavaScript libraries.

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development.

  • Class code: CS455
  • Level: 4
  • Semester (including exams): 2 (January to May)
  • Credits: 40 (20 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: Participants need to have passed years 1-3 of the BSc Hons IT: Software Development degree.
  • Teaching methods: Private Study, Assignment

This class aims to develop participants' project management skills and advance their practical understanding of software development within a work-related project. Participants are required to undertake a significant individual work-based project with minimal supervision in an area of IT that is relevant to their job role.

Available to participants taking the BSc Hons IT: Software Development Graduate Apprenticeship degree.

  • Class code: CS456
  • Level: 4
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: Before attempting this module, students should: be able to write computer programs in Python, Java or C#.; Be able to create a database and query it with SQL commands; Be familiar with virtual machines; Understand the basics of a RESTful web service; Understand basic security concepts, concerning security of data at rest and data in transit
  • Teaching methods: Online, Private Study

This class aims to help students: understand modern serialisation practices (ORM,ODM), make students aware of costs, roles and policy settings that can be used to deploy cloud hosted applications safely, give a broad understanding of how to deplot scaleable application onto a cloud platform, help students understand containerisation, container orchestration and security considerations and finally help students to understand DevOps processes on the cloud.

Available to students following a graduate apprentice course.

  • Class code: CS457
  • Level: 4
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS353 Fundamentals of Data Analytics
  • Teaching methods: Seminars/Tutorials, Online, Assignment, Private Study

The aim of this class is to equip participants with a sound understanding of the principles of Machine Learning and a range of popular approaches, along with the knowledge of how and when to apply the techniques. The class balances a solid theoretical knowledge of the techniques with practical application via Python (and associated libraries). 

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development.

  • Class code: CS459
  • Level: 4
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS354 Computer Networks or CS323 Computer Networks.
  • Teaching methods: Seminars/Tutorials, Online, Assignment, Private Study

The aim of the class is to enable participants to understand issues associated with the nature of cybercrime, digital evidence, detection methods and proof, in a variety of digital forensic contexts, including computers, networks and portable digital devices.

Available as an optional class to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development, and BSc Hons Digital and Technology Solutions.

  • Class code: CS427
  • Level: 4
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS308 Building Software Systems, CS407 Computer Security
  • Teaching methods: Lectures, Workshop, Private Study

This class aims to make it possible for students to work with IBM IT architects and learn from industry experts. Upon taking this class, students will learn to: appreciate the complexity of architecting IT systems, be aware of standard IT architecture patterns and be able to apply them, be able to present IT architecture proposals to a 'client', be able to take a set of specifications and work within a team to architect an IT system to specification, learn to present solutions to expert audience and accept constructive criticism, work in a team to architect a system.

Only available to Software Engineering students. 

Semester 2 – Level 5

  • Class code: CS549
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: Sound, advanced Java programming skills
  • Teaching methods: Lectures, Laboratory, Assignment, Private Study

This class aims to help students to have an extended understanding of the deep technical issues underlying information systems in the particular context of distributing content over the world-wide web.

Available only to MSc Advanced Computer Science, MSc Advanced Software Engineering, MSc Enterprise Information Systems, fifth year MEng Computer Science and fifth year MEng Computer & Electronic Systems students.

  • Class code: CS551
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: Strong object-oriented programming skills in a language like Java, C++, or C#; Some appreciation of distributed systems development issues
  • Teaching methods: Lectures, Laboratory, Assignment, Private Study

This class aims to help students to develop an understanding of the underpinning theories, paradigms, algorithms and architectures for building software applications to function in mobile computing environments.

Available only to MSc Advanced Computer Science, MSc Advanced Software Engineering, fifth year MEng Computer Science and fifth year MEng Computer & Electronic Systems students.

  • Class code: CS985
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study

The aim of this class is to equip students with a sound understanding of the principles of machine learning and a range of popular approaches, along with the knowledge of how and when to apply the techniques. The class balances a solid theoretical knowledge of the techniques with practical application via Python (and associated libraries) and students are expected to be familiar with the language. Aspects of the course will be highly mathematical and technical requiring strong math and programming ability (Python and PyTorch).

  • Class code: CS825
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Practical, Laboratory, Private Study

This class aims to make it so that students will be familiar with the mathematical theory of games and the ways in which it is applied to the study of multi-agent systems and in machine learning. After completing this module participants will be able to: understand the core mathematical concepts of game theory, know key examples of games and their properties, be able to use software tools for computing with games, understand how concepts of game theory are applied to the field of A.I, be able to build simple A.I. systems that play games.

This class is mandatory.

  • Class code: CS826
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study

The aim of this module is to endow students with: an understanding of the key algorithms and techniques with deep learning, an understanding of the limitations of the current technologies and their future trend. 

This class is mandatory.

  • Class code: CS957
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Seminars/Tutorials, Assignments, Private Study

This module aims to provide students with an understanding of both quantitative and qualitative research processes and associated techniques, including the effective presentation of findings in accordance with the best principles of scholarship

  • Class code: CS971
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study

This class aims to provide an overview of the application of evolutionary computation techniques – those which mimic natural evolutionary processes (genetic algorithms, genetic programming and neural networks in particular) – to a range of financial applications such as forecasting, portfolio optimisation and algorithmic trading. The course is very practical in its nature: much of the learning is achieved via a number (around 4) of assessed small mini-projects, and students are expected to develop solutions to problems using evolutionary computation techniques, evaluate these on real data sets, and compare them with other more traditional approaches. Consequently , a large amount of self-directed study and learning is expected.

Available only to MSc Quantitative Finance students.

  • Class code: CS975
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Assignment, Private Study

This class aims to provide tools and techniques for the effective analysis and design of business information systems, and enable students to develop an understanding of their respective advantages, disadvantages and applicability.

  • Class code: CS985
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study

The aim of this class is to equip students with a sound understanding of the principles of machine learning and a range of popular approaches, along with the knowledge of how and when to apply the techniques. The class balances a solid theoretical knowledge of the techniques with practical application via Python (and associated libraries) and students are expected to be familiar with the language. Aspects of the course will be highly mathematical and technical requiring strong math and programming ability (Python and PyTorch).

  • Class code: CS815
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study

This class aims to provide an overview of the application of evolutionary computation techniques – those which mimic natural evolutionary processes (genetic algorithms, genetic programming and neural networks in particular) – to a range of financial applications such as forecasting, portfolio optimisation and algorithmic trading. The course is very practical in its nature: much of the learning is achieved via a number (around 4) of assessed small mini-projects, and students are expected to develop solutions to problems using evolutionary computation techniques, evaluate these on real data sets, and compare them with other more traditional approaches. Consequently , a large amount of self-directed study and learning is expected.

This class is mandatory. 

  • Class code: CS986
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study

The aim of this class is to equip students with a sound understanding of the principles of machine learning and a range of popular approaches, along with the knowledge of how and when to apply the techniques. The class balances a solid theoretical knowledge of the techniques with practical application via Python (and associated libraries) and students are expected to be familiar with the language.

  • Class code: CS802
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study

This course will introduce students to the techniques involved in Deep Learning and Neural Nets. This class will teach students to have: an understanding of the problem of agents that learn from experience, an understanding of the key ideas of reinforcement learning, an understanding of the key ideas of convolutional neural networks and deep learning algorithms, an understanding of deep reinforcement learning, which is used in modern AI systems such as Google Deepmind’s Alpha Go program.

This class is mandatory.

  • Class code: CS885
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: Information Security Fundamentals, Security Protocols and Threat Models
  • Teaching methods: Lectures, Practical, Private Study

At the end of this module students should be able to have a deep understanding of theoretical knowledge about vulnerability types, security testing methodologies, and risk assessment. Students should be able to conduct vulnerability assessments using industry-standard tools and methodologies. Students will be able to conduct penetration tests on systems and applications to identify security weaknesses. Students will also be able to evaluate the risk associated with identified vulnerabilities and propose and implement strategies for mitigating security risks as well as be able to understand the legal and ethical issues in security testing.

  • Class code: CS886
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: Information Security Fundamentals, Security Protocols and Threat Models
  • Teaching methods: Lectures, Revision Lectures, Seminars/Tutorials, Laboratory, Private Study

The aim of CS886 is to provide students with sufficient grounding and experience over the extent to which formal methods can provide, at design time, strong mathematical guarantees about the correctness of our software programs and prevent routinely exploited vulnerabilities from occurring.

This class is not available as an elective.

  • Class code: CS887
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: Information Security Fundamentals, Security Protocols and Threat Models
  • Teaching methods: Lectures, Group Work, Online, Seminar/Tutorials, Private Study

Students should have a deep understanding of the state of the art in two different topic areas within cyber security based on the current research literature. Students should be able to read, understand, analyse, and evaluate  top academic papers in cyber security. Students should be able to clearly and concisely communicate research topics in cyber security to their peers and colleagues through engagement with the original literature via both reports and presentations. Students should be able to create new topics and questions for discussion by analysing gaps and potential improvements in the current research literature. Students should be able to place research topics in cyber security in their historical and current contexts and critique them effectively.

  • Class code: CS805
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 15 (7.5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Seminars/Tutorials, Private Study

A deeper understanding of symmetric and asymmetric encryption; a practical appreciation of operating system and host-based attacks and defences; software security; database and datacentre security; and an introduction to emerging security topics, such as cloud computing and the internet of things.

  • Class code: CS810
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 15 (7.5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Seminars/Tutorials, Private Study

A focus on cyber resilience and business continuity with an in-depth appreciation of the practical skills necessary for security monitoring and event management, and the design and application of procedures for restoring operations after security incidents while ensuring compliance with legal and regulatory requirements.

  • Class code: CS813
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 15 (7.5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Online study with two campus days.

The aim of this class is to provide an in depth look at Email, Web and Network attacks and defences by going through the various levels of the network stack, and covering both wired and wireless networks. We will also provide a more in-depth treatment of Cryptography, as it plays a fundamental role in achieving network security.

This class is not available as an elective. 

  • Class code: CS818
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Online, Private Study

The aim of this module is to endow students with an understanding of the new challenges posed by the advent of big data, as they refer to its modelling, storage, and access. It also ensures the students the key algorithms and techniques which are embodied in data analytics solutions and exposure to a number of different big data technologies and techniques, to show how they can achieve efficiency and scalability while also addressing design trade-offs and their impacts.

  • Class code: CS983
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study

This class aims to provide an overview of the application of evolutionary computation techniques – those which mimic natural evolutionary processes (genetic algorithms, genetic programming and neural networks in particular) – to a range of financial applications such as forecasting and portfolio optimisation. The course is very practical in its nature: much of the learning is achieved via a number (around 3) of assessed small mini-projects, and students are expected to develop solutions to problems using evolutionary computation techniques, evaluate these on real data sets, and compare them with other more traditional approaches. Consequently, a large amount of self-directed study and learning is expected.

Available only to MSc Quantitative Finance, MSc Fintech, MSc Data Analytics students.

  • Class code: CS984
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: Evolutionary Computation for Finance 2
  • Teaching methods: Lectures, Laboratory, Private Study

This class aims to build on the foundations CS983 – Evolutionary Computation for Finance 1 – to explore more advanced applications of evolutionary and natural computing, in particular algorithmic trading. The course is very practical in its nature: much of the learning is achieved via an assessed mini-projects, and students are expected to develop a solutions to problems using neural networks and evolutionary computation techniques, evaluate these on real data sets, and compare them with other more traditional approaches. Consequently, a large amount of self-directed study and learning is expected.

Available only to MSc Quantitative Finance students.

  • Class code: CS990
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study

The aim of the class is to provide students with a conceptual and practical understanding of data modelling, database design and database technology. On completion of this class students will be able to: display knowledge of the process of designing a database system, starting from an informal specification; display skill in formulating database queries using SQL; show an appreciation of the facilities and services which should be provided by a fully featured database management system; demonstrate knowledge of commonly occurring data models; demonstrate experience of using a relational database management system in a client-server environment; display knowledge of potential future developments in database technology.

  • Class code: CS800
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Seminars/Tutorials, Private Study, Project

This module aims to ensure that the student is aware of the legal, ethical, social and professional issues commensurate with professional practice within a digital health and care setting. 

  • Class code: CS979
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study

The class will provide students with a robust understanding of the technologies and principles underpinning predictive modelling, complex health data visualisation, data management and GDPR, knowledge representation, and decision support systems.

  • Class code: CS959
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Assignment, Private Study

This module aims to introduce students to the theories of digitisation and the concept of digital libraries; provide an understanding of digital library services and the role of information professionals in their operation; provide exposure to current and emerging technologies and their application in library and information settings.

  • Class code: CS962
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Seminars/Tutorials, Assignments, Private Study

This module aims to provide students with an understanding of the various library models and sectors. It will also introduce students to the range of services offered across the various library and information sectors, along with the challenges experienced. Finally, this module will provide an understanding of the role of libraries and information services within society.

  • Class code: CS952
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Assignment, Private Study

This module aims to provide conceptual and practical understanding of data modelling, database design and database technology. It will also give students practical experience of developing web-based applications that integrate database server interaction.

  • Class code: CS991
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: CS995 - Introduction to Programming Principles, CS994 - Object Oriented Programming
  • Teaching methods: Lectures, Laboratory, Assignment, Private Study

The module aims to introduce students to tools and techniques for developing software for mobile environments. Furthermore, students will become familiar with various evaluation techniques with respect to usability and accessibility.

This class is not an elective. 

  • Class code: CS992
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: CS990 - Database Fundamentals
  • Teaching methods: Lectures, Laboratory, Private Study

The aim of the class is to build on a basic understanding of the relational database approach, covering more complex SQL query design and efficient execution, as well as transactional design using database triggers/stored procedures or by embedding SQL code within other programming environments.

  • Class code: CS993
  • Level: 5
  • Semester (including exams): 2 (January to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: CS995 - Information Law, CS994 - Object Oriented Programming
  • Teaching methods: Lectures, Laboratory, Assignment, Private Study

The objectives of this module are to develop and understanding of: Software development lifecycles; User requirements, user stories and use cases; User interface design, data design, design patterns, Tools used to develop large-scale software projects in groups, Testing approaches and associated frameworks, Project management and quality assurance processes.

Full Year - Semester 1

  • Class code: CS103
  • Level: 1
  • Semester (including exams): Full year (September to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: Basic use of algebra, as might be gained by taking Standard Grade Mathematics or a similar course
  • Teaching methods: lectures, seminars, tutorials

Class descriptor

This class will help students to achieve a broad knowledge of the essence of computation and computational systems, as embodied by the notions of computable functions, formal languages and recursion, logic and computability and abstract machines.

  • Class code: CS105
  • Level: 1
  • Semester (including exams): Full year (September to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Practical

Class descriptor

This class will provide students with  a solid foundation in the principles of computer programming. On completing this class the student should have the necessary skills to be able to design, build and test a small system in a high-level language (Java in the current incarnation of the class).

  • Class code: CS101
  • Level: 1
  • Semester (including exams): Full Year (September-May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Practical

Class descriptor

This class will help students develop a broader perspective of computer science and to develop problem solving, team working, presentational skills, as well as personal and professional development skills.

  • Class code: CS104
  • Level: 1
  • Semester (including exams): Full Year (September-May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Occasional interactive Q&A sessions

Class descriptor

This class will help students to gain a broader understanding of the human and social aspects of  today's information and data-driven world in the context of research and scholarship, government, business, health, education.

  • Class code: CS106
  • Level: 1
  • Semester (including exams): Full Year (September-May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Seminars/Tutorials, Practical

Class descriptor

Semester 1 will enable the student to develop an understanding and appreciation of a computer system’s functional components – both hardware and software, their characteristics, their interactions, and their fundamental role in the manipulation of data. Semester 2 will  further the student’s knowledge of the design parameters of a typical computer system and the impact these have on the functionality, and implementation, of the hardware and software components.

  • Class code: CS112
  • Level: 1
  • Semester (including exams): Full Year (September to May)
  • Credits: 30 (15 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Seminars/Tutorials, Online

Class descriptor

The aim of the class is to give participants a solid foundation in Object-Oriented programming with Java which is probably the most widely used programming language. After completing this class participants will be able to: appreciate the role of a high-level language within the context of a computer system, understand the program development process, understand the principles of program design and demonstrate their practical application, Design as well as implement and test small software using a high-level language (currently Java) to conform to a specification, demonstrate familiarity with a sophisticated interactive development environment (IDE).

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development and BSc Hons Digital and Technology Solutions.

  • Class code: CS115
  • Level: 1
  • Semester (including exams): Full Year (September to May)
  • Credits: 30 (15 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: 12 tutorials, creating personal development plans and building an e-portfolio of evidence.

This class enables participants to apply aspects of their degree course in an industrial context and so to understand the complexities of commercial software development. After completing this class participants will be able to: apply taught theories

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development.

Full Year - Semester 2

  • Class code: CS208
  • Level: 2
  • Semester (including exams): Full Year (September to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS103 - Machines, Language and Computation, CS105 - Programming Foundations. It would also be useful to have CS207 - Advanced Programming
  • Teaching methods: Lectures, Seminars/Tutorials, Assignments, Private Study

This class will aim to equip students with the tools to model and measure computation. To build on CS103 Machines, Languages and Computation and develop further understanding of the mathematical foundations of computation. To foster an analytical and empirical appreciation of the behaviour of algorithms and the use of abstract data types.

  • Class code: CS207
  • Level: 2
  • Semester (including exams): Full Year (September to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS105 - Programming Foundations
  • Teaching methods: Lectures, Laboratory, Assignment, Private Study

This class will further the students’ skills in object-oriented programming, provide knowledge of key abstract data types along with their implementation and usage, and to provide experience in the development of  software and an introduction to design. The main goal is for students to be able to develop programs with specialized data structures and utilizing APIs from a specification, and being able to ensure and show how the system they developed matches the specification.

  • Class code: CS210
  • Level: 2
  • Semester (including exams): Full Year (September to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: Basic knowledge of programming in a high level language, computer organisation and machine language, such as might be gained from CS105 and CS106.
  • Teaching methods: Lectures, Laboratory, Assignment, Private Study

This class will enable students to: understand and program in the C programming language, create system programs in C for the Linux operating system, understand how modern operating system enable computer programs to run as processes. 

  • Class code: CS209
  • Level: 2
  • Semester (including exams): Full Year (September to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS104 - Information & Information Systems
  • Teaching methods: Lectures, Laboratory, Assignment, Private Study

This class will provide the student with a critical appreciation and understanding of how to model user activities and the data to support them, together with how to implement systems and databases to support user activities. 

  • Class code: CS274
  • Level: 2
  • Semester (including exams): Full Year (September to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Creating personal development plans and writing brief reports to add to an e-portfolio.

This class enables degree apprentices to demonstrate the application of aspects of their degree course within an industrial context, to record experience gained in the workplace and to develop their broader professional skills. This is achieved by undertaking personal development planning and building an e-portfolio of work-related evidence to show that they meet appropriate professional competencies.

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons Digital and Technology Solutions.

  • Class code: CS251
  • Level: 2
  • Semester (including exams): Full Year (September to May)
  • Credits: 30 (15 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS112 Programming 1 or equivalent experience (knowledge of Java programming).
  • Teaching methods: Seminars/Tutorials, Online, Assignment

The aim of the class is to further participants’ skills in object-oriented programming, provide knowledge of key abstract data types along with their implementation and usage, and to provide experience in the development of larger scale software. The main goal is for participants to be able to develop larger programs with specialised data structures and utilising APIs from a specification. Participants will also gain an analytical and empirical appreciation of the behaviour of algorithms and the use of abstract data types.

Available to participants taking UG Graduate Apprenticeship programmes such as BSc Hons IT: Software Development.

  • Class code: CS256
  • Level: 2
  • Semester (including exams): Full Year (September to May)
  • Credits: 30 (15 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Private Study, Assignment, Project

This class enables participants to demonstrate the application of aspects of their degree course within an industrial context, and to develop their professional skills by undertaking personal development planning and building an e-portfolio of work-related evidence to show that they meet various professional competencies.

Available to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development.

Full Year – Level 3

  • Class code: CS362
  • Level: 3
  • Semester (including exams): Full Year (September to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Placement, Private Study

This class enables participants to demonstrate the application of aspects of their degree course within an industrial context, to record experience gained in the workplace and to develop their broader professional skills. This is achieved by undertaking personal development planning and building an e-portfolio of work-related evidence to show that they meet appropriate professional competencies.

Available to participants taking the BSc Hons Digital and Technology Solutions programme.

Full Year - Level 4

  • Class code: CS408
  • Level: 4
  • Semester (including exams): Full Year (September to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS209 User & Data Modelling, CS308 Building Software Systems, C313 Computer Systems and Concurrency
  • Teaching methods: Lectures, Seminars/Tutorials, Laboratory, Assignment, Private Study

The aim of this class is to provide students with the opportunity to develop a security mind-set by introducing them to core material in the area of computer security. This should enable students to identify potential threats and vulnerabilities for a range of situations, and propose appropriate actions to mitigate these issues.

Not available as an elective

  • Class code: CS425
  • Level: 4
  • Semester (including exams): Full Year (September to May)
  • Credits: 60 (30 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: Participants need to have passed years 1-3 of the BSc Hons Digital and Technology Solutions degree or have undertaken the equivalent modules.
  • Teaching methods: Private Study, Assignment, Project

This class aims to develop participants' project management skills and advance their practical understanding of software development within a work-related project. Participants are required to undertake a significant individual work-based project with minimal supervision in an area of IT that is relevant to their job role.

Available only to participants taking the BSc Hons Digital and Technology Solutions Degree Apprenticeship.

  • Class code: CS460
  • Level: 4
  • Semester (including exams): Full Year (September to May)
  • Credits: 10 (5 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Participants will meet regularly with a Work Based Learning Advisor who will guide them in developing an e-portfolio of evidence. 

This class enables participants to demonstrate the application of aspects of their degree course within an industrial context, to record experience gained in the workplace and to develop their broader professional skills. This is achieved by undertaking personal development planning and building an e-portfolio of work-related evidence to show that they have gained the knowledge, skills and behaviours associated with the Digital and Technology Solutions Professional Degree Apprenticeship standard.

Available to participants taking BSc Digital and Technology Solutions (Business Analyst, Cyber Security Analyst, IT Consultant, Software Engineer pathways).

  • Class code: CS415
  • Level: 4
  • Semester (including exams): Full Year (September to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Private Study, Placement

This class aims to enable students to experience the application of aspects of their degree course in an industrial context and so to understand the complexities of commercial software development.

This module is only available to BSc Hons Software Engineering students.

Full Year – Level 5

  • Class code: CS806
  • Level: 5
  • Semester (including exams): Full Year (September to May)
  • Credits: 30 (15 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Seminars/Tutorials, Private Study

Students will demonstrate the application of aspects of the degree course within an industrial context and develop professional skills by undertaking personal development planning and building an e-portfolio of work-related evidence for various cyber security professional competencies.

  • Class code: CS811
  • Level: 5
  • Semester (including exams): Full Year (September to May)
  • Credits: 60 (30 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Project, Private Study

An in-depth appreciation of the skills necessary to conduct research in information security (surveying of literature, experimental design, data collection and analysis study design, quantitative and qualitative data analysis techniques, research project management, and research ethics), and their application within a dissertation on a work-related research project carried out under academic supervision.

  • Class code: CS980
  • Level: 5
  • Semester (including exams): Full Year (September to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Seminars/Tutorials, Group Work, Private Study

This module will provide students with an understanding of the digital health landscape and will draw on a range of case-study examples and technologies relevant to digital health interventions in health and social care contexts. It will highlight barriers and facilitators to digital health implementation and focus on best practice principles and frameworks to guide the development, implementation and evaluation of digital health interventions. Drawing on case study examples and expert insights from the field, the module will highlight digital health innovations in research contexts and real-world delivery models in health, social care and consumer contexts. Case study examples will range from small localised examples to wider scale national level implementation.

This class is a core module. 

  • Class code: CS961
  • Level: 5
  • Semester (including exams): Full Year (September to May)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Assignment, Private Study

This module aims to provide students with an understanding of the theory involved in analysing, representing and organising knowledge; provide students with practical skills in the application of this theory to domains of knowledge; introduce students to the functionality of LMS and the construction of MARC records.

Semester 3 - Level 4

  • Class code: CS416
  • Level: 4
  • Semester (including exams): 3 (June to August)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: None
  • Teaching methods: Placement, Private Study

This class will aim to enable the student to experience the application of aspects of their degree course in an industrial context and the group work which such experience requires. The objectives of this module are to: work within a professional software development team, apply and expand on taught curriculum, critically reflect on software engineering practices, improve quality of reporting (in written and verbal form).

This module is only available to MEng Computer Science and MEng Computer and Electronic Systems students.

  • Class code: CS552
  • Level: 5
  • Semester (including exams): 3 (June to August)
  • Credits: 20 (10 ECTS)
  • Level of study: Undergraduate
  • Prerequisites: CS416 - Industrial Placement 1
  • Teaching methods: Placement, Private Study

This class aims to enable the student to experience the application of aspects of their degree course in an industrial context and the group work which such experience requires. The objectives of the module are to: work within a professional software development team, apply and expand on taught curriculum, critically reflect on software engineering practices, improve quality of reporting, in written and verbal form.

This module is only available to MEng Computer Science and MEng Computer and Electronic Systems students who have already completed an industrial placement.

  • Class code: CS958
  • Level: 5
  • Semester (including exams): 3 (June to August)
  • Credits: 20 (10 ECTS)
  • Level of study: Postgraduate
  • Prerequisites: None
  • Teaching methods: Lectures, Laboratory, Private Study

This class aims to provide an overview of the application of evolutionary computation techniques – those which mimic natural evolutionary processes (genetic algorithms, genetic programming and neural networks in particular) – to a range of financial applications such as forecasting, portfolio optimisation and algorithmic trading. The course is very practical in its nature: much of the learning is achieved via a number (around 4) of assessed small mini-projects, and students are expected to develop solutions to problems using evolutionary computation techniques, evaluate these on real data sets, and compare them with other more traditional approaches. Consequently , a large amount of self-directed study and learning is expected.

Available only to MSc Quantitative Finance students.