Computer Science BSc (Hons)

Key information


comp-sci-2

Module details

Due to the impact of COVID-19 we're changing how the course is delivered.

Programme Year One

All single subject degree programmes offered by the Department of Computer Science share the same modules in Year One.


In Year 1 students will study one of the modules COMP101 (Intro. to Programming) or COMP105 (Programming Language Paradigms). The option deemed most suitable will be determined, typically (although not exclusively) through indications of reasonable prior exposure to programming. For example, students who have obtained a recognised entry qualification in a computing related subject (eg Computer Science A-level) will study COMP105. Students without such background will normally study COMP101, however, may (at the discretion of Programme Director of Studies) be permitted to enrol on COMP105 instead. All other Year 1 modules are required.

Year One Compulsory Modules

  • Analytic Techniques for Computer Science (COMP116)
    Level1
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting60:40
    Aims

    To equip students with an awareness of the range of methodologies that have been brought to bear in the treatment of computational issues.
    To provide practical experience in how various formal approaches can be used to address such issues.

    Learning Outcomes

    (LO1) Students will have a basic understanding of the range of techniques used to analyse and reason about computational settings.

    (LO2) Students will have the ability to solve problems involving the outcome of matrix-vector products as might arise in standard transformations.

    (LO3) Students will have the ability to apply basic rules to differentiate and integrate commonly arising functions.

    (LO4) Students will have a basic understanding of manipulating complex numbers and translating between different representations.

    (LO5) Students will have a basic understanding of the role of Linear algebra (including eigenvalues and eigenvectors) in computation problems such as web page ranking.

    (S1) Problem Solving - Numeracy and computational skills

    (S2) Problem Solving – Analysing facts and situations and applying creative thinking to develop appropriate solutions.

  • Computer Systems (COMP124)
    Level1
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting80:20
    Aims

    To introduce how computers function at the instruction operation level.
    To introduce the relationships between the instruction operation level and both the higher (software) and lower (hardware) levels.
    To introduce students to the structure and functionality of modern operating systems.
    To explain how the principal components of computer-based systems perform their functions and how they interact with each other.

    Learning Outcomes

    (LO1) Describe the structure and operation of computer hardware at the register transfer level.

    (LO2) Implement and reason about simple algorithms at the level of machine code.

    (LO3) Describe the overall structure and functionality of a modern operating system and its interactions with computer hardware and user processes.

    (LO4) Explain how modern operating systems and programming languages implement concurrency and the issues that arise when working with concurrent processes.

    (LO5) Use the Linux command line and describe how files, devices and processes are managed by the Linux kernel.

    (S1) Numeracy/computational skills - problem solving

  • Data Structures and Algorithms (COMP108)
    Level1
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting60:40
    Aims

    To introduce the notation, terminology, and techniques underpinning the study of algorithms.
    To introduce basic data structures and associated algorithms.
    To introduce standard algorithmic design paradigms and efficient use of data structures employed in the development of efficient algorithmic solutions.

    Learning Outcomes

    (LO1) Be able to describe the principles of and apply a variety of data structures and their associated algorithms;

    (LO2) Be able to describe standard algorithms, apply a given pseudo code algorithm in order to solve a given problem, and carry out simple asymptotic analyses of algorithms;

    (LO3) Be able to describe and apply different algorithm design principles and distinguish the differences between these principles;

    (LO4) Be able to choose and justify the use of appropriate data structures to enable efficient implementation of algorithms;

    (S1) Numeracy/computational skills - Reason with numbers/mathematical concepts

    (S2) Numeracy/computational skills - Problem-solving

    (S3) Critical thinking and problem-solving - Critical analysis

  • Designing Systems for the Digital Society (COMP107)
    Level1
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting0:100
    Aims

    To provide the students with a wide-ranging understanding of the discipline of computing, and to introduce students to concepts of professional ethics as well as social and legal aspects of computing.
    To equip the students with the communication, time and project management, and employability skills required for a computing professional.
    To allow the students to gain an understanding of the importance of appropriate and efficient system design strategies, at the conceptual and logical levels, and how to communicate them effectively to stakeholders.

    Learning Outcomes

    (LO1) Identify and appraise professional, ethical, legal and social issues related to the work of a professional within the IT industry with particular regard to the BCS Codes of Conduct and Practice.

    (LO2) Recognise employability and entrepreneurship skills that prepare students to undertake paid work experience during the course of their degree or independently

    (LO3) Identify, describe and discuss economic, historical, organisational, research, ethical, and social aspects of computing as a discipline and computing in practice;

    (LO4) Understand the importance of requirement analysis, and demonstrate the ability to extract, analyse and organise end-user requirements;

    (LO5) Identity and apply principles of system design, including database conceptual design, using ER and UML design methodologies;

    (LO6) Recognise database logical design principles, and issues related to database physical design;

    (S1) Effectively communicate in writing and orally in a variety of styles, including the presentation of coherent and persuasive intellectual accounts/arguments

    (S2) Develop the ability to work effectively in group to design a project from conception to deployment

    (S3) Develop the ability to manage time effectively and to organise own skills

    (S4) Reflect on their own learning and professional development by producing a professional portfolio recording the skills developed in the course, which they can enhance in subsequent modules

  • Foundations of Computer Science (COMP109)
    Level1
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting60:40
    Aims

    To introduce the notation, terminology, and techniques underpinning the discipline of Theoretical Computer Science.
    To provide the mathematical foundation necessary for understanding datatypes as they arise in Computer Science and for understanding computation.
    To introduce the basic proof techniques which are used for reasoning about data and computation.
    To introduce the basic mathematical tools needed for specifying requirements and programs

    Learning Outcomes

    (LO1) Understand how a computer represents simple numeric data types; reason about simple data types using basic proof techniques;

    (LO2) Interpret set theory notation, perform operations on sets, and reason about sets;

    (LO3) Understand, manipulate and reason about unary relations, binary relations, and functions;

    (LO4) Apply logic to represent mathematical statement and digital circuit, and to recognise, understand, and reason about formulas in propositional and predicate logic;

    (LO5) Apply basic counting and enumeration methods as these arise in analysing permutations and combinations.

    (S1) Application of numeracy – manipulation of numbers, general mathematical awareness and its application in practical contexts.

    (S2) Problem-solving – analysing facts and situations and applying creative thinking to develop appropriate solutions.

  • Introduction to Artificial Intelligence (COMP111)
    Level1
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting60:40
    Aims

    To provide an introduction to AI through studying search problems, reasoning under uncertainty, knowledge representation, planning, and learning in intelligent systems.
    To equip the students with an awareness of the main applications of AI and the history, philosophy, and ethics of AI.

    Learning Outcomes

    (LO1) Students should be able to identify and describe the characteristics of intelligent agents and the environments that they can inhabit.

    (LO2) Students should be able to identify, contrast and apply to simple examples the basic search techniques that have been developed for problem-solving in AI.

    (LO3) Students should be able to apply to simple examples the basic notions of probability theory that have been applied to reasoning under uncertainty in AI.

    (LO4) Students should be able to identify and describe logical agents and the role of knowledge bases and logical inference in AI.

    (LO5) Students should be able to identify and describe some approaches to learning in AI and apply these to simple examples.

    (S1) Problem-solving / critical thinking/ creativity analysing facts and situations and applying creative thinking to develop appropriate solutions.

    (S2) Literacy application of literacy, ability to produce clear, structured written work and oral literacy - including listening and questioning.

  • Object-oriented Programming (COMP122)
    Level1
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting0:100
    Aims

    To develop understanding of object-oriented software methodology, in theory and practice.
    To further develop sound principles in software design and software development.
    To understand basic concepts of software testing principles and software version control systems. 

    Learning Outcomes

    (LO1) Describe object hierarchy structure and how to design such a hierarchy of related classes.

    (LO2) Describe the concept of object polymorphism in theory and demonstrate this concept in practice.

    (LO3) Design and code iterators for collection-based data management.

    (LO4) Design simple unit tests using appropriate software tools.

    (LO5) Demonstrate concepts of event-driven programming and be able to design simple GUI to demonstrate this understanding.

    (LO6) Identify and describe the task and issues involved in the process of developing interactive products for people, and the techniques used to perform these tasks.

    (S1) Communication (oral, written and visual) - Report Writing

    (S2) Time and project management - Personal organisation

    (S3) Critical thinking and problem-solving - Critical analysis

    (S4) Numeracy/computational skills - Reason with numbers/mathematical concepts

Year One Optional Modules

  • Introduction to Programming (COMP101)
    Level1
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting0:100
    Aims

    To introduce concepts and principles of problem solving by computer, and the construction of appropriate algorithms for the solution of problems. To demonstrate the principles underlying the design of high level programming languages. To give students experience and confidence in the use of a high level programming language to implement algorithms.

    Learning Outcomes

    (LO1) Be able to implement, compile, test and run programmes, to address a particular software problem.

    (LO2) Understand how to include arithmetic operators and constants in a program.

    (LO3) Be able to make use of libraries.

    (LO4) Demonstrate the ability to employ various types of selection constructs in a program.

    (LO5) Demonstrate the ability to employ repetition constructs in a program.

    (LO6) Be able to employ a hierarchy of libraries/modules to provide a solution to a given set of requirements.

    (LO7) Demonstrate the ability to use simple data structures like arrays in a program.

    (LO8) Specific learning outcomes are listed above. General learning outcomes: An understanding of the principles and practice of program analysis and design in the construction of robust, maintainable programs which satisfy their requirements; A competence to design, write, compile, test and execute straightforward programs using a high level language; An appreciation of the principles of procedural programming; An awareness of the need for a professional approach to design and the importance of good documentation to the finished programs.

    (S1) Communication (oral, written and visual) - Report writing

    (S2) Time and project management - Personal organisation

    (S3) Critical thinking and problem solving - Critical analysis

    (S4) Numeracy/computational skills - Reason with numbers/mathematical concepts

  • Programming Language Paradigms (COMP105)
    Level1
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting0:100
    Aims

    To introduce the functional programming paradigm, and to compare and contrastit with the imperative programming paradigm.
    To explore the common techniques that are employed to solve problems in a functional way.

    Learning Outcomes

    (LO1) Describe the imperative and functional programming paradigms including the differences between them.

    (LO2) Apply recursion to solve algorithmic tasks.

    (LO3) Apply common functional programming idioms such as map, filter and fold.

    (LO4) Write programs using a functional programming language.

    (S1) Time and project management - Personal organisation

    (S2) Communication (oral, written and visual) - Report writing

    (S3) Critical thinking and problem-solving - Critical analysis

    (S4) Numeracy/computational skills - Reason with numbers/mathematical concepts

Programme Year Two

In Year Two you continue to expand your knowledge of concepts and skills related to the core areas of software development and database development while starting to engage with subject material directly related to computer science.

You will take the four compulsory modules listed below, in addition to selected optional modules depending on if you wish to graduate with

  • BSc Computer Science
  • BSc Computer Science with Artificial Intelligence
  • BSc Computer Science with Algorithms and Optimisation
  • BSc Computer Science with Data Sciences

Year Two Compulsory Modules

  • Complexity of Algorithms (COMP202)
    Level2
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting70:30
    Aims

    To demonstrate how the study of algorithmics has been applied in a number of different domains. To introduce formal concepts of measures of complexity and algorithms analysis. To introduce fundamental methods in data structures and algorithms design. To make students aware of computationally hard problems and possible ways of coping with them.

    Learning Outcomes

    (LO1) At the conclusion of the module students should have an appreciation of the diversity of computational fields to which algorithmics has made significant contributions.

    (LO2) At the conclusion of the module students should  have fluency in using basic data structures (queues, stacks, trees, graphs, etc) in conjunction with classical algorithmic problems (searching, sorting, graph algorithms, security issues) and be aware of basic number theory applications, etc.

    (LO3) At the conclusion of the module students should  be familiar with formal theories providing evidence that many important computational problems are inherently intractable, e.g., NP-completeness.

  • Database Development (COMP207)
    Level2
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting70:30
    Aims

    To introduce students to
    - the problems arising from databases, including concurrency in databases, information security considerations and how they are solved;
    - the problems arising from the integration of heterogeneous sources of information and the use of semi-structured data;
    - non-relational databases and the economic factors involved in their selection;
    - techniques for analysing large amounts of data, the security issues and commercial factors involved with them.

    Learning Outcomes

    (LO1) Demonstrate an understanding of basic and advanced SQL topics;

    (LO2) At the end of this module the student will be able to identify and apply the principles underpinning transaction management within DBMS and the main security issues involved in securing transaction;

    (LO3) Illustrate the issues related to Web technologies as a semi-structured data representation formalism;

    (LO4) Interpret the main concepts and security aspects in data warehousing, and the concepts of data mining and commercial considerations involved in adopting the paradigm.

    (S1) Problem Solving - Numeracy and computational skills

    (S2) Problem solving – Analysing facts and situations and applying creative thinking to develop appropriate solutions.

  • Group Software Project (COMP208)
    Level2
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting0:100
    Aims

    Students will work in small groups to produce a working software system.
    The deliverables and working methods will be prescribed. The aims of the module are:
    1. to provide experience of group working;
    2. to provide experience of all aspects of the development of a moderately sized software system;
    3. to prepare students for their individual projects in the third year;
    4. to consolidate material from the first semester of the second year, in particular COMP201 and COMP207.

    Learning Outcomes

    (LO1) Show an awareness of the issues involved in working as part of a team.

    (LO2) Demonstrate improved personal, interpersonal and communication skills.

    (LO3) Demonstrate a more in depth understanding of the software development process.

    (LO4) An ability to specify the requirements of a software system.

    (LO5) Demonstrate some experience in the design of a software system.

    (LO6) Demonstrate practical experience in the implementation and testing of a moderately sized software system.

    (LO7) Show an awareness of the typical project management issues.

    (LO8) Understanding of the process and role of software documentation.

    (LO9) Experience in the writing of a sizeable report on a software project.

    (S1) Better interpersonal skills

    (S2) Awareness of the benefits of structuring the development process

    (S3) Better knowledge of the main design techniques

  • Software Engineering I (COMP201)
    Level2
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting60:40
    Aims

    The module is intended to develop an understanding of the problems associated with the development of significant computing systems (that is, systems that are too large to be designed and developed by a single person, and are designed to be used by many users) and to appreciate the techniques and tools necessary to develop such systems efficiently, in a cost-effective manner.

    Learning Outcomes

    (LO1) Realise the problems in designing and building significant computer systems;

    (LO2) Understand the need to design systems that fully meet the requirements of the intended users including functional and non functional elements;

    (LO3) Appreciate the need to ensure that the implementation of a design is adequately tested to ensure that the completed system meets the specifications;

    (LO4) Be fully aware of the principles and practice of an O-O approach to the design and development of computer systems;

    (LO5) Be able to apply these principles in practice;

    (LO6) Produce O-O requirements and design documentation in UML which demonstrates the features of good design such as loose coupling and high cohesion;

    (LO7) Be able to demonstrate how to effectively  implent an O-O design in an O-O languuge such as Java or Python;

    (S1) Information skills - Information accessing:[Locating relevant information] [Identifying and evaluating information sources]

    (S2) Skills in using technology - Using common applications (work processing, databases, spreadsheets etc.)

    (S3) Time and project management - Personal action planning

Year Two Optional Modules

  • Advanced Object Oriented C Languages (COMP282)
    Level2
    Credit level7.5
    SemesterSecond Semester
    Exam:Coursework weighting0:100
    Aims

    1.    To introduce the notion of object orientation and illustrate the differences between unmanaged and managed coding techniques, through the introduction of two object-oriented variants of C; namely C++ and C#. 2.    To familiarise students with the use of advanced software development tools, and to illustrate the synergies between the use of graphical interface building tools and the use of programming languages. 3.    To introduce the notion of design patterns and their application to challenging programming problems, and to demonstrate their use in event-driven programming tasks.

    Learning Outcomes

    (LO1) Demonstrate the differences in the utilisation of object oriented principles in various C-based programming languages;

    (LO2) Develop applications using both C++ and C# within an industry-level development environment;

    (LO3) Demonstrate an understanding of the role of design patterns within software development;

    (LO4) Apply appropriate design patterns when developing event-driven, GUI-based applications, and to utilise graphical GUI development tools as part of this development.

    (S1) Learning Skills: Identify differences in the utilisation of object oriented principles in various C-based programming languages.

    (S2) Employability Skills: Develop applications within an industry-level development environment.

    (S3) Research Skills: Analyse existing programs.

    (S4) Research Skills: Design new structured programs.

    (S5) Research Skills: Debug and test programs.

  • Advanced Artificial Intelligence (COMP219)
    Level2
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting70:30
    Aims

    • To equip students with the knowledge about basic algorithms that have been used to enable the AI agents to conduct the perception, inference, and planning tasks;
    • To equip students with the knowledge about machine learning algorithms;
    • To provide experience in applying basic AI algorithms to solve problems;
    • To provide experience in applying machine learning algorithms to practical problems.

    Learning Outcomes

    (LO1) Ability to explain in detail how the techniques in the perceive-inference-action loop work.

    (LO2) Ability to choose, compare, and apply suitable basic learning algorithms to simple applications.

    (LO3) Ability to explain how deep neural networks are constructed and trained, and apply deep neural networks to work with large scale datasets.

    (LO4) Understand probabilistic graphical models, and is able to do probabilistic inference on the probabilistic graphical models.

    (S1) Self-management (readiness to accept responsibility (i.e. leadership), flexibility, resilience, self-starting, appropriate assertiveness, time management, readiness to improve own performance based on feedback/reflective learning.)

    (S2) Positive attitude (A 'can-do' approach, a readiness to take part and contribute; openness to new ideas and a drive to make these happen. Employers also value entrepreneurial graduates who demonstrate an innovative approach, creative thinking, bring fresh knowledge and challenge assumptions.)

    (S3) Application of numeracy (manipulation of numbers, general mathematical awareness and its application in practical contexts (e.g. measuring, weighing, estimating and applying formulae))

    (S4) Computer Science practice

  • Computer Aided Software Development (COMP285)
    Level2
    Credit level7.5
    SemesterSecond Semester
    Exam:Coursework weighting0:100
    Aims

    To introduce students to a range of techniques and tools used in modern, large-scale industrial software development. To describe how the development and deployment of high quality, robust products is supported through software develpment tools.

    Learning Outcomes

    (LO1) Perform software development tasks using the techniques of Automated Testing, Continuous Integration and Test Driven Programming

    (LO2) Use Ant, JUnit and Eclipse both individually and jointly as tools for Automated Testing, Continuous Integration and Test Driven Programming

    (S1) Information skills - Information accessing:[Locating relevant information] [Identifying and evaluating information sources]

    (S2) Skills in using technology - Using common applications (work processing, databases, spreadsheets etc.)

    (S3) Time and project management - Personal action planning

  • Computer-based Trading in Financial Markets (COMP226)
    Level2
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting70:30
    Aims

    To develop an understanding of financial markets at the level of individual trades. To provide an overview of the range of different computer-based trading applications and techniques. To introduce the key issues with using historical high-frequency financial data for developing computer-based trading strategies. To provide an overview of statistical and computational methods for the design of trading strategies and their risk management. To develop a practical understanding of the design, implementation, evaluation, and deployment of trading strategies.

    Learning Outcomes

    (LO1) Have an understanding of market microstructure and its impact on trading.

    (LO2) Understand the spectrum of computer-based trading applications and techniques, from profit-seeking trading strategies to execution algorithms.

    (LO3) Be able to design trading strategies and evaluate critically their historical performance and robustness.

    (LO4) Understand the common pitfalls in developing trading strategies with historical data.

    (LO5) Understand the benchmarks used to evaluate execution algorithms.

    (LO6) Understand methods for measuring risk and diversification at the portfolio level.

    (S1) Self-management (Readiness to accept responsibility (i.e. leadership), flexibility, resilience, self-starting, appropriate assertiveness, time management, readiness to improve own performance based on feedback/reflective learning.)

    (S2) Application of numeracy (Manipulation of numbers, general mathematical awareness and its application in practical contexts (e.g. measuring, weighing, estimating and applying formulae).)

    (S3) Problem solving (Analysing facts and situations and applying creative thinking to develop appropriate solutions.)

    (S4) Application of information technology (Basic IT skills, including familiarity with word processing, spreadsheets, file management and use of internet search engines.)

    (S5) Computer Science principles

    (S6) Computer Science practice

  • Computer Networks (COMP211)
    Level2
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting70:30
    Aims

    1. To introduce networked computer systems in general, and the Internet in particular.
    2. To introduce the basic principles that govern their operation.
    3. To introduce the design and organisation principles of successful computer networks.
    4. To introduce the key protocols and technologies that are used in the Internet.

    Learning Outcomes

    (LO1) Students should be able to describe and justify the OSI Reference Model and the key protocols that govern the Internet.

    (LO2) Students should be able to program applications and protocols for computer networks.

    (LO3) Students should be able to illustrate and debate the use and need of cryptographic techniques in nework security.

    (S1) Problem Solving - Numeracy and computational skills

    (S2) Problem solving – analysing facts and situations and applying creative thinking to develop appropriate solutions.

  • Decision, Computation and Language (COMP218)
    Level2
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting70:30
    Aims

    To introduce formal concepts of automata, grammars and languages.
    To introduce ideas of computability and decidability.
    To illustrate the importance of automata, formal language theory and general models of computation in Computer Science and Artificial Intelligence.

    Learning Outcomes

    (LO1) Define the relationship between language as an object recognised by an automaton and as a set of words generated by a formal grammar.

    (LO2) Apply standard translations between different models of computation.

    (LO3) Discuss the distinct types of formal grammar (e.g. Chomsky hierarchy) and the concept of normal form for grammars.

    (LO4) Illustrate the limitations (with respect to expressive power) of different automata and grammar forms.

    (LO5) Explain the difference between decidable and recognisable languages.

    (S1) Numeracy/computational skills - Reason with numbers/mathematical concepts

    (S2) Numeracy/computational skills - Problem solving

    (S3) Information skills - Information accessing:[Locating relevant information] [Identifying and evaluating information sources]

  • Distributed Systems (COMP212)
    Level2
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting70:30
    Aims

    This module is intended to provide an understanding of the technical issues involved in the design, analysis and evaluation of modern distributed systems and algorithms. Besides conveying the central principles involved in designing distributed systems, this module also aims to introduce the students to the main principles of distributed computing and of algorithms for distributed tasks.

    Learning Outcomes

    (LO1) An appreciation of the main principles underlying distributed systems: processes, communication, naming, synchronisation, consistency, fault tolerance, and security.

    (LO2) Familiarity with some of the main paradigms in distributed systems: object-based systems, file systems, and coordination-based systems.

    (LO3) Knowledge and understanding of the essential facts, concepts, principles and theories relating to Computer Science in general, and Distributed Computing in particular.

    (LO4) A sound knowledge of the criteria and mechanisms whereby traditional and distributed systems can be critically evaluated and analysed to determine the extent to which they meet the criteria defined for their current and future development.

    (LO5) An in depth understanding of the appropriate theory, practices, languages and tools that may be deployed for the specification, design, implementation and evaluation of both traditional and Internet related distributed computer systems.

    (S1) Numeracy/computational skills - Problem solving

  • Planning Your Career (COMP221)
    Level2
    Credit level7.5
    SemesterFirst Semester
    Exam:Coursework weighting0:100
    Aims

    This module aims to prepare students enteringthe work environment by providing them with the skills required to secure eitheran internship or a graduate job.

    Learning Outcomes

    (LO1) Students will gain the ability to critically reflect on andevaluate their skills in relation to prospective employers’ requirements andidentify their development needs;

    (LO2) Students will gain the ability to research career opportunities relevant to their degree specialism in relation to their own career aspirations using a range of media and approaches;

    (S1) Students will gain the ability to produce timely and effective applications

    (S2) Students will demonstrate effective oral and written communication skills appropriate to a role in IT

  • Principles of C and Memory Management (COMP281)
    Level2
    Credit level7.5
    SemesterSecond Semester
    Exam:Coursework weighting0:100
    Aims

    1. To introduce the issues of memory and memory management within the context of a system-level procedural programming language (C), and debugging tools that facilitate the inspection of state, stack and heap usage during code execution.
    2. To familiarise students with a contemporary system-level procedural programming language (C).
    3. To demonstrate principles, provide indicative examples, develop problem-solving abilities and provide students with experience and confidence in the use of algorithms with consideration and management of memory usage within a contemporary software setting.

    Learning Outcomes

    (LO1) At the end of the module the student should be able to: analyse and explain the use of memory resources within software applications, including memory usage on the stack during function calls and heap-based dynamic memory management.

    (LO2) Use debugging tools to inspect memory usage, and to assist in the development of software.

    (LO3) Develop applications within the C programming language, including use of command-line driven C development tools.

    (LO4) Deal with underlying memory-based issues in using dynamic data-structures through the implementation and management of at least one familiar datastructure using the C programming language.

    (S1) IT skills

    (S2) Problem solving/ critical thinking/ creativity analysing facts and situations and applying creative thinking to develop appropriate solutions.

  • Principles of Computer Games Design and Implementation (COMP222)
    Level2
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting70:30
    Aims

    1. To introduce the main issues surrounding the computer games architecture.
    2. To introduce the fundamental concepts underpinning computer games development (game physics, game artificial intelligence, content generation).
    3. To provide practical experience of software engineering associated with computer games.

    Learning Outcomes

    (LO1) Have an understanding of different design issues related to computer games development: game structure, game engine, physics engine;

    (LO2) Have an appreciation of the fundamental concepts associated with game development: game physics, game artificial intelligence, content generation;

    (LO3) Have the ability to implement a simple game using an existing game engine.

    (S1) Problem solving

    (S2) Application of numeracy

    (S3) Application of information technology tools

  • Scripting Languages (COMP284)
    Level2
    Credit level7.5
    SemesterSecond Semester
    Exam:Coursework weighting0:100
    Aims

    To provide students with an understanding of the nature and role of scripting languages.
    To introduce students to some popular scripting languages and their applications.
    To enable students to write simple scripts using these languages for a variety of applications.

    Learning Outcomes

    (LO1) Develop server-side web-based applications using an appropriate scripting language, with emphasis on concurrent use of such applications.

    (LO2) Develop computer-based or client-side web-based applications using an appropriate scripting language.

    (S1) Effective information retrieval skills (including use of the WWW and the evaluation of information retrieved from such sources).

    (S2) The ability to use general IT facilities effectively.

    (S3) The ability to manage their own learning and development, and time management and organisational skills.

  • Software Development Tools (COMP220)
    Level2
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting80:20
    Aims

    To introduce students to a range of techniques and tools, beginning to be used in modern, large-scale industrial software development.
    To provide coverage of tools already being used in industrial settings.
    To describe how the development and deployment of high quality, robust products is supported through software development tools.

    Learning Outcomes

    (LO1) Express the general ideas, advantages, and methods of using software development tools

    (LO2) Use Ant, JUnit and Eclipse both individually and jointly as tools for Automated Testing, Continuous Integration and Test Driven Programming

    (LO3) Solve problems related to Automated Testing, Continuous Integration and Test Driven Programming using software development tools JUnit, Ant and Eclipse.

    (S1) Information skills - Information accessing:[Locating relevant information] [Identifying and evaluating information sources]

    (S2) Skills in using technology - Using common applications (work processing, databases, spreadsheets etc.)

    (S3) Time and project management - Personal action planning

  • Cyber Security (COMP232)
    Level2
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting60:40
    Aims

    1. To provide students with understanding of the main problems in security, confidentiality and privacy in computers and in networks, and the reasons for their importance. 2. To enable students to understand the main approaches adopted for their solution and/or mitigation, together with the strengths and weaknesses of each of these approaches. 3. To develop knowledge and skills in practical applications of available security solutions. 4. To introduce students to theoretical foundations of cybersecurity and attract their attention to the open problems requiring further research.

    Learning Outcomes

    (LO1) Understand the main problems in security, confidentiality andprivacy in computers and in networks, and the reasons for theirimportance;

    (LO2) Understand the main approaches adopted for their solutionand/or mitigation, together with the strengths and weaknessesof each of these approaches;

    (LO3) Understand the main encryption algorithms and security protocols;

    (LO4) Understand the main principles of prevention, detection and mitigation of computer network security threats

    (LO5) Appreciate the applications of cryptographic algorithms and security protocols

    (S1) Problem solving skills

    (S2) IT skills

    (S3) Digital scholarship participating in emerging academic, professional and research practices that depend on digital systems

    (S4) Information technology (application of) adopting, adapting and using digital devices, applications and services

    (S5) Positive attitude/ self-confidence A 'can-do' approach, a readiness to take part and contribute; openness to new ideas and the drive to make these happen

    (S6) Problem solving/ critical thinking/ creativity analysing facts and situations and applying creative thinking to develop appropriate solutions.

    (S7) Learning skills online studying and learning effectively in technology-rich environments, formal and informal

  • Introduction to Data Science (COMP229)
    Level2
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting70:30
    Aims

    1. To provide a foundation and overview of modern problems in Data Science.
    2. To describe the tools and approaches for the design and analysis of algorithms for da-ta clustering, dimensionally reduction, graph reconstruction from noisy data.
    3. To discuss the effectiveness and complexity of modern Data Science algorithms.
    4. To review applications of Data Science to Vision, Networks, Materials Chemistry.

    Learning Outcomes

    (LO1) describe modern problems and tools in data clustering and dimensionality reduction,

    (LO2) formulate a real data problem in a rigorous form and suggest potential solutions,

    (LO3) choose the most suitable approach or algorithmic method for given real-life data,

    (LO4) visualise high-dimensional data and extract hidden non-linear patterns from the data.

    (S1) Critical thinking and problem solving - Critical analysis

  • App Development (COMP228)
    Level2
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting60:40
    Aims

    To provide guidelines, design principles and experience in developing applications for small, mobile devices, including an appreciation of context and location aware services.  To develop an appreciation of interaction modalities with small, mobile devices through the implementation of simple applications and use cases. To be aware of current developments of mobile interface technologies.

    Learning Outcomes

    (LO1) At the end of the module, the student will have a working understanding of the characteristics and limitations of mobile hardware devices including their user-interface modalities.

    (LO2) The ability to develop applications that are mobile-device specific and demonstrate current practice in mobile computing contexts.

    (LO3) A comprehension and appreciation of the design and development of context-aware solutions for mobile devices. 

    (S1) Problem solving skills

    (S2) Numeracy

    (S3) Commercial awareness

  • Programming Language Paradigms (COMP105)
    Level1
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting0:100
    Aims

    To introduce the functional programming paradigm, and to compare and contrastit with the imperative programming paradigm.
    To explore the common techniques that are employed to solve problems in a functional way.

    Learning Outcomes

    (LO1) Describe the imperative and functional programming paradigms including the differences between them.

    (LO2) Apply recursion to solve algorithmic tasks.

    (LO3) Apply common functional programming idioms such as map, filter and fold.

    (LO4) Write programs using a functional programming language.

    (S1) Time and project management - Personal organisation

    (S2) Communication (oral, written and visual) - Report writing

    (S3) Critical thinking and problem-solving - Critical analysis

    (S4) Numeracy/computational skills - Reason with numbers/mathematical concepts

Programme Year Three

A major part of your studies in Year Three will be an individual project in computer science that you undertake. The project will provide you with an opportunity to work in a guided but independent fashion to explore a substantial computer science problem in depth, making practical use of principles, techniques and methodologies acquired elsewhere in the programme.

In addition, you take a selection of optional modules from the indicative list below depending on if you wish to graduate with

  • BSc Computer Science
  • BSc Computer Science with Artificial Intelligence
  • BSc Computer Science with Algorithms and Optimisation
  • BSc Computer Science with Data Sciences

Year Three Compulsory Modules

  • Honours Year Computer Science Project (COMP390)
    Level3
    Credit level30
    SemesterWhole Session
    Exam:Coursework weighting0:100
    Aims

    • To provide the opportunity for students to successfully complete a self-directed project culminating in a detailed written dissertation and either an original piece of software or a research contribution derived from the practical application of technology.
    • To allow students to reflect on and use tools and techniques acquired from other taught modules within the programme.
    • To encourage students to consider and address the legal and ethical issues surrounding their project topic and relate these to the professional standards of the Chartered Institute for IT.
    • To enable students to demonstrate technical competency and proficiency with time management, risk assessment, project planning and communication.

    Learning Outcomes

    (LO1) Conduct background reading, research and user analysis (where appropriate) to develop a set of requirements and give wider context for a complex technical project.

    (LO2) Demonstrate competence in project planning, risk assessment, time management, independent study, and adaptability in the event of unexpected problems.

    (LO3) Produce a design for an accessible and usable piece of software that meets the needs of its users, or a detailed plan of research activity that uses technology to investigate a hypothesis, using industry standard notation where appropriate.

    (LO4) Implement a technically competent piece of software or use technology to conduct an in-depth piece of research, following a recognised method and using contemporary tools and techniques.

    (LO5) Evaluate project outcomes with reference to the original objectives, the wider background context, and the expectations of the Chartered Institute for IT.

    (LO6) Articulate the legal, social, ethical and professional issues surrounding an extended project, and follow relevant professional codes of practice.

    (LO7) Communicate technical information clearly and succinctly to a broad, non-specialist audience via a range of media.

    (LO8) Structure and write an extended formal and technical document (dissertation) to a standard expected of a professional in Computer Science.

    (S1) Ability to organise workloads to plan and manage a piece of work spanning an extended period of time.

    (S2) Ability to use library resources and conduct relevant searches for literature.

    (S3) Ability to use information technology (digital fluency).

    (S4) Ability to succinctly communicate complex concepts to a wide audience.

    (S5) Ability to think critically and solve complex problems.

Year Three Optional Modules

  • Biocomputation (COMP305)
    Level3
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting70:30
    Aims

    To introduce students to some of the established work in the field of neural computation.

    To highlight some contemporary issues within the domain of neural computation with regard to biologically-motivated computing particularly in relation to multidisciplinary research.

    To equip students with a broad overview of the field of evolutionary computation, placing it in a historical and scientific context.

    To emphasise the need to keep up-to-date in developing areas of science and technology and provide some skills necessary to achieve this.

    To enable students to make reasoned decisions about the engineering of evolutionary ('selectionist') systems.

    Learning Outcomes

    (LO1) Account for biological and historical developments neural computation

    (LO2) Describe the nature and operation of MLP and SOM networks and when they are used

    (LO3) Assess the appropriate applications and limitations of ANNs

    (LO4) Apply their knowledge to some emerging research issues in the field

    (LO5) Understand how selectionist systems work in general terms and with respect to specific examples

    (LO6) Apply the general principles of selectionist systems to the solution of a number of real world problems

    (LO7) Understand the advantages and limitations of selectionist approaches and have a considered view on how such systems could be designed

    (S1) Improving own learning/performance - Reflective practice

    (S2) Improving own learning/performance - Self-awareness/self-analysis

    (S3) Critical thinking and problem solving - Critical analysis

    (S4) Critical thinking and problem solving - Evaluation

    (S5) Critical thinking and problem solving - Synthesis

    (S6) Critical thinking and problem solving - Problem identification

    (S7) Critical thinking and problem solving - Creative thinking

    (S8) Research skills - All Information skills

    (S9) Research skills - Awareness of /commitment to academic integrity

    (S10) Numeracy/computational skills - Numerical methods

    (S11) Numeracy/computational skills - Problem solving

    (S12) Skills in using technology - Information accessing

  • Communicating Computer Science (COMP335)
    Level3
    Credit level15
    SemesterWhole Session
    Exam:Coursework weighting0:100
    Aims

    1. To enable key transferrable skills such as communication and team working within an educational context
    2. To provide first-hand experience of developing and delivering lessons in Computer Science at Key Stage 4
    3. To encourage and inspire a new generation of Computer Science teachers, and provide role models for pupils who visit the university as part of its widening participation agenda

    Learning Outcomes

    (LO1) Understand the UK education system, including Key Stages and the National Curriculum in Computing.

    (LO2) Appreciate the widening participation and outreach agenda of the university.

    (LO3) Apply appropriate safeguarding protocols when working with young people.

    (LO4) Communicate a computer science topic in a classroom setting, using a delivery style appropriate to the age and ability of pupils.

    (LO5) Critically reflect on the effectiveness of an activity given feedback from those who took part.

  • Complex Information Networks (COMP324)
    Level3
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting70:30
    Aims

    To understand the software development opportunities offered by the emergence of these networks, through the study of information retrieval algorithms like the one used by Google. To understand the application development possibilities offered by social networks environments like Facebook. To understand how elementary graph-theoretic concepts may help understanding the structure and certain properties (like the "mysterious" small world phenomenon, or the resilience to failures) of such networks.

    Learning Outcomes

    (LO1) At the end of this module students should be able to explain the most common metrics and techniques of complex network analysis and classification.

    (LO2) Explain the most recent applications of these techniques in the area of social and technological networks.

    (LO3) Be able to identify the main issues, techniques, and tools needed for the development of applications in the area of social networks.

    (S1) Learning Skills: Design appropriate social network solutions and interface or extend the designs of existing social network infrastructures.

    (S2) Learning Skills: Identify and analyse complex network characteristics.

    (S3) Learning Skills: Identify and interpret domain and societal requirements for the deployment of network solutions.

    (S4) Learning Skills: Combine knowledge from other algorithmic course to solve specific network design and analysis problems.

    (S5) Employability Skills: Evaluate existing software systems and infrastructures

    (S6) Employability Skills: Present a technological solution within a broader context

    (S7) Research Skills: Establish the potential of social networking technologies in specific contexts and domains.

    (S8) Research Skills: Articulate appropriate frameworks for the analysis of particular social networks.

  • Computational Game Theory and Mechanism Design (COMP326)
    Level3
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting70:30
    Aims

    To provide an understanding of the inefficiency arising from uncontrolled, decentralized resource allocation.

    To provide a foundation for modelling various mechanism design problems together with their algorithmic aspects.

    To provide the tools and paradigms for the design and analysis of efficient algorithms/mechanisms that are robust in environments that involve interactions of selfish agents.

    To review the links and interconnections between algorithms and computational issues with selfish agents.

    Learning Outcomes

    (LO1) Have a systematic understanding of current problems and important concepts in the field of computational game theory.

    (LO2) Ability to quantify the inefficiency of equilibria.

    (LO3) The ability to formulate mechanism design models or network games for the purpose of modeling particular applications.

    (LO4) The ability to use, describe and explain appropriate algorithmic paradigms and techniques in context of a particular game-theoretic or mechanism design problem.

    (S1) Critical Thinking and Problem Solving - Critical Analysis

    (S2) Information Skills - Critical Reading

    (S3) Numeracy - Computational Skills - Problem Solving

    (S4) Critical thinking and problem solving - Creative thinking

    (S5) Numeracy/computational skills - Reason with numbers/mathematical concepts

  • Efficient Sequential Algorithms (COMP309)
    Level3
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting70:30
    Aims

    To learn some advanced topics in the design and analysis of efficient sequential algorithms, and a few key results related to the study of their complexity.

    Learning Outcomes

    (LO1) At the conclusion of the module students should have an understanding of the role of algorithmics within Computer Science.

    (LO2) Have expanded their knowledge of computational complexity theory.

    (LO3) Be aware of current research-level concerns in the field of algorithm design.

    (S1) Problem Solving - Numeracy and computational skills

    (S2) Problem solving – Analysing facts and situations and applying creative thinking to develop appropriate solutions.

  • Formal Methods (COMP313)
    Level3
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting100:0
    Aims

    As more complex computational systems are used within critical applications, it is becoming essential that these systems are formally specified.  Such specifications are used to give a precise and unambiguous description of the required system. While this is clearly important in criticial systems such as industrial process management and air/spacecraft control, it is also becoming essential when applications involving E-commerce and mobile code are developed. In addition, as computational systems become more complex in general, formal specification can allow us to define the key characteristics of systems in a clear way and so help the development process.

    Formal specifications provide the basis for verification of properties of systems. While there are a number of ways in which this can be achieved, the model-checking approach is a practical and popular way to verify the temporal properties of finite-state systems. Indeed, such temporal verification is widely used within the design of critical parts of integrated circuits, has recently been used to verify parts of the control mechanism for one of NASA’s space probes, and is now beginning to be used to verify general Java programs.

    Learning Outcomes

    (LO1) Understand the principles of standard formal methods, such as Z;

    (LO2) Understand the basic notions of temporal logic and its use in relation to reactive systems;

    (LO3) Understand the use of model checking techniques in the verification of reactive systems;

    (LO4) Be aware of some of the current research issues related to formal methods.

  • Image Processing (ELEC319)
    Level3
    Credit level7.5
    SemesterFirst Semester
    Exam:Coursework weighting100:0
    Aims

    To introduce the basic concepts of digital image processing and pattern recognition.

    Learning Outcomes

    (LO1) Knowledge and understanding of Human Vision

    (LO2) Knowledge and understanding of Image Histogram and its application

    (LO3) Knowledge and understanding of Image Transformation methods and their applications

    (LO4) Knowledge and understanding of Shapes and Connectivity

    (LO5) Knowledge and understanding of Morphologocal Operations and their applications

    (LO6) Knowledge and understanding of Noise Filtering methods in Image Processing

    (LO7) Knowledge and understanding of Image Enhancement techniques

    (LO8) Knowledge and understanding of Image Segmentation and its applications

    (LO9) Knowledge and understanding of Image Compression methods

    (LO10) Knowledge and understanding of Frequency Domain Image Analysis

    (S1) On successful completion of the module, students should be able to show experience and enhancement of the following key skills: Independent learning Problem solving and design skills

    (S2) After successful completion of the module, the student should have: The ability to apply relevant image enhancement techniques to a given problem. The necessary mathematical skills to develop standard image processing algorithms. The necessary Software skills (using MATLAB) to apply image processing methods and techniques on images.

  • Introduction to Computational Game Theory (COMP323)
    Level3
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting70:30
    Aims

    To introduce the student to the notion of a game, its solutions, concepts, and other basic notions and tools of game theory, and the main applications for which they are appropriate, including electricity trading markets.

    To formalize the notion of strategic thinking and rational choice by using the tools of game theory, and to provide insights into using game theory in modeling applications.

    To draw the connections between game theory, computer science, and economics, especially emphasizing the computational issues.

    To introduce contemporary topics in the intersection of game theory, computer science, and economics.

    Learning Outcomes

    (LO1) A student will understand the notion of a strategic game and equilibria, and understand the characteristics of main applications of these concepts;

    (LO2) Given a real world situation a student should be able to identify its key strategic aspects and based on these be able to connect them to appropriate game theoretic concepts;

    (LO3) A student will understand the key connections and interactions between game theory, computer science and economics;

    (LO4) A student will understand the impact of game theory on its contemporary applications, and be able to identify the key such application areas;

    (S1) Numeracy/computational skills - Problem solving

    (S2) Critical thinking and problem solving - Creative thinking

    (S3) Numeracy/computational skills - Reason with numbers/mathematical concepts

  • Knowledge Representation and Reasoning (COMP304)
    Level3
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting75:25
    Aims

    1. To introduce Knowledge Representation as a research area;
    2. To give a complete and critical understanding of the notion of representation languages and logics.;
    3. To study description logics and their use;
    4. To study epistemic logics and their use;
    5. To study the trade-off between expressive power and computational complexity of reasoning.

    Learning Outcomes

    (LO1) Translate between English and the languages of modal and description logics.

    (LO2) Explain whether formulas of propositional, modal and description logic are true or valid.

    (LO3) Analyse simple scenarios involving knowledge, and represent them in modal and description logics.

    (LO4) Apply formal proof methods in description logics.

    (S1) Problem Identification

    (S2) Critical Analysis

    (S3) Solution Synthesis

    (S4) Evaluation of Problems and Solutions

  • Multi-agent Systems (COMP310)
    Level3
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting100:0
    Aims

    To introduce the student to the concept of an agent and multi-agent systems, and the main applications for which they are appropriate.

    To introduce the main issues surrounding the design of intelligent agents.

    To introduce the main issues surrounding the design of a multi-agent society.

    To introduce a contemporary platform for implementing agents and multi-agent systems.

    Learning Outcomes

    (LO1) Understand the notion of an agent, how agents are distinct from other software paradigms (eg objects) and understand the characteristics of applications that lend themselves to an agent-oriented solution;

    (LO2) Understand the key issues associated with constructing agents capable of intelligent autonomous action, and the main approaches taken to developing such agents;

    (LO3) Understand the key issues in designing societies of agents that can effectively cooperate in order to solve problems, including an understanding of the key types of multi-agent interactions possible in such systems;

    (LO4) Understand the main application areas of agent-based solutions, and be able to develop a meaningful agent-based system using a contemporary agent development platform.

  • Neural Networks (ELEC320)
    Level3
    Credit level7.5
    SemesterSecond Semester
    Exam:Coursework weighting100:0
    Aims

    Understand the basic structures and the learning mechanisms underlying neural networks within the field of artificial intelligence and examine how synaptic adaptation can facilitate learning and how input to output mapping can be performed by neural networks.

    Obtain an overview of linear, nonlinear, separable and non separable classification as well as supervised and unsupervised machine learning.

    Learning Outcomes

    (LO1) Learning  the advantages and main characteristics of neural networks in relation to traditional methodologies. Also, familiarity with different neural networks structures and their learning mechanisms.

    (LO2) Understanding of the neural network learning processes and their most popular types, as well as  appreciation of how neural networks can be applied to artificial intelligence problems.

    (S1) On successful completion of this module the student should be able to pursue further study in artificial intelligence and more advanced types of neural networks.

    (S2) On successful completion of this module the student should be able to analyse numerically the mathematical properties of most major network types and apply them to artificial intelligence problems.

    (S3) On successful completion of this module the student should be able to approach methodically artificial intelligence problems and understand the principal mathematics of learning systems.

  • Ontologies and Semantic Web (COMP318)
    Level3
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting70:30
    Aims

    To provide guidelines, concepts and models for designing and evaluating applications utilising advanced web technologies To introduce Artificial Intelligence and Semantic Web techniques which can be applied to the application of advanced web technologies To introduce the notion of semantic web applications intended to be used by software.

    Learning Outcomes

    (LO1) At the conclusion of the module students shouldHave an understanding of the basic formal methods and techniques for designing and implementing advanced web applications

    (LO2) Have an appreciation for Artificial Intelligence and Semantic Web research related to advanced web technology applications

    (LO3) Be able to apply specific methods and techniques in the design and development of an application of advanced web technology for a case study

    (S1) Information skills - trustability of information sources

    (S2) Numeracy/computational skills - Problem solving

    (S3) Information skills - Critical thinking

  • Optimisation (COMP331)
    Level3
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting70:30
    Aims

    To provide a foundation for modelling various continuous and discrete optimisation problems.
    To provide the tools and paradigms for the design and analysis of algorithms for continuous and discrete optimisation problems.
    Apply these tools to real-world problems.
    To review the links and interconnections between optimisation and computational complexity theory.   
    To provide an in-depth, systematic and critical understanding of selected significant topics at the intersection of optimisation, algorithms and (to a lesser extent) complexity theory, together with the related research issues. 

    Learning Outcomes

    (LO1) A conceptual understanding of current problems and techniques in the field of optimisation.

    (LO2) The ability to formulate optimisation models for the purpose of modelling particular applications.

    (LO3) The ability to use appropriate algorithmic paradigms and techniques in context of a particular optimisation model. 

    (S1) Critical thinking and problem solving - Critical analysis

  • Autonomous Mobile Robotics (COMP329)
    Level3
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting0:100
    Aims

    To introduce the student to the concept of an autonomous agent.

    To introduce the key approaches developed for decision-making in autonomous systems.

    To introduce the key issues with uncertainty of sensors and actuators/motors on modern robot platforms.

    To introduce the key issues surrounding the development of autonomous robots.

    To introduce a contemporary platform for experimental robotics.

    Learning Outcomes

    (LO1) Ability to explain the notion of an agent, how agents are distinct from other software paradigms (e.g., objects), and judge the characteristics of applications that lend themselves to an agent-oriented solution.

    (LO2) Identify the key issues associated with constructing agents capable of intelligent autonomous action.

    (LO3) Describe the main approaches taken to developing such agents.

    (LO4) Describe how Bayesian belief revision can overcome the uncertainty that is inherent with sensors and actuators, due to real-world non-determinism.

    (LO5) Identify key issues involved in building agents that must sense and act within the physical world.

    (LO6) Program and deploy autonomous robots for specific tasks.

    (S1) Problem Solving - Numeracy and computational skills

    (S2) Problem solving – Analysing facts and situations and applying creative thinking to develop appropriate solutions.

  • Software Engineering II (COMP319)
    Level3
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting100:0
    Aims

    The overall aim of this module is to introduce students to a range of advanced, near-research level topics in contemporary software engineering. The actual choice of topics will depend upon the interests of the lecturer and the topics current in the software engineering research literature at that time. The course will introduce issues from a problem (user-driven) perspective and a technology-driven perspective – where users have new categories of software problems that they need to be solved, and where technology producers create technologies that present new opportunities for software products. It will be expected that students will read articles in the software engineering research literature, and will discuss these articles in a seminar-style forum.

    Learning Outcomes

    (LO1) At the end of the module, the student will: Understand the key problems driving research and development in contemporary software engineering (eg the need to develop software for embedded systems).

    (LO2) Be conversant with approaches to these problems, as well as their advantages, disadvantages, and future research directions.

    (LO3) Understand the key technological drivers behind contemporary software engineering research (eg the increased use of the Internet leading to the need to engineer systems on and for the web).

    (LO4) Be able to present, analyse, and give a reasoned critique of articles in the software engineering research literature.

    (LO5) Be able to read and understand articles in the research literature of software engineering.

  • Technologies for E-commerce (COMP315)
    Level3
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting100:0
    Aims

    To introduce the environment in which e-commerce takes place, the main technologies for supporting e-commerce, and how these technologies fit together.

    To introduce security as a major issue in secure e-commerce, and to provide an overview of security issues.

    To introduce encryption as a means of ensuring security, and to describe how secure encryption can be delivered.

    To introduce issues relating to privacy.

    To introduce auction protocols and negotiation mechanisms as emerging e-commerce technologies.

    Learning Outcomes

    (LO1) Understand the main technologies behind e-commerce systems and how these technologies interact;

    (LO2) Understand the security issues which relate to e-commerce;

    (LO3) Understand how encryption can be provided and how it can be used to ensure secure commercial transactions;

    (LO4) Understand implementation aspects of e-commerce and cryptographic systems;

    (LO5) Have an appreciation of privacy issues;

    (LO6) Understand auction protocols and interaction mechanisms.

  • Computer Forensics (COMP343)
    Level3
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting70:30
    Aims

    To provide a firm foundation to the field of information retrieval.

    To develop an systematic understanding of the theory and practice of computer forensics.

    To develop the skills and knowledge to undertake a forensic computing investigation in a systematic manner utilising existing methods, tools and techniques.

    Learning Outcomes

    (LO1) Demonstrate a systematic and thorough understanding of the theoretical concepts, processes and role of a computer forensics investigator in the organisation and law enforcement.

    (LO2) Ability to Apply an appropriate and systematic approach to initiating and conducting a forensic investigation.

    (LO3) Ability to select appropriate tools and techniques to recover and analyse material from a range of sources

    (LO4) Demonstrate a critical awareness of issues and requirements for dealing with evidence.

    (LO5) Demonstrate a critical awareness of issues and requirements when analysing and evaluating physical and forensic computing data evidence.

    (S1) Self-management readiness to accept responsibility (i.e. leadership), flexibility, resilience, self-starting, appropriate assertiveness, time management, readiness to improve own performance based on feedback/reflective learning.

    (S2) Literacy application of literacy, ability to produce clear, structured written work and oral literacy - including listening and questioning.

    (S3) Computer Science practice

  • Big Data Analytics (COMP336)
    Level3
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting60:40
    Aims

    To introduce the student to middleware often used in Big Data analytics.
    To introduce the student to implementing algorithms using such middleware.

    Learning Outcomes

    (LO1) Understanding of Algorithmic approaches for handling batch and streaming analysis

    (LO2) Understanding of middleware that can be used to enable algorithms to scale up to analysis of large datasets.

    (LO3) Understanding of the impact of the middleware on how algorithms are articulated.

    (S1) Numeracy/computational skills - Reason with numbers/mathematical concepts

    (S2) Communication (oral, written and visual) - Following instructions/protocols/procedures

  • Computer VIsion (COMP338)
    Level3
    Credit level15
    SemesterFirst Semester
    Exam:Coursework weighting70:30
    Aims

    To provide an introduction to the topic of Computer Vision.
    To present fundamental problems in both 2D and 3D vision, and to explain a variety of classical and emerging approaches to overcome them.
    To develop the practical skills necessary to build computer vision applications.

    Learning Outcomes

    (LO1) Demonstrate an understanding of the theoretical and practical aspects of image representations.

    (LO2) Describe state-of-the-art techniques for image classification, image search, image segmentation, object detection, and object tracking.

    (LO3) Describe the foundation of image formation with the pinhole camera model and how they project the 3D world to 2D images.

    (LO4) Apply the principles of deep neural networks to various vision problems such as classification, detection, and semantic segmentation.

    (LO5) Demonstrate and apply the practical skills necessary to build computer vision applications.

  • Data Mining and VIsualisation (COMP337)
    Level3
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting70:30
    Aims

    To provide an in-depth systematic and critical understanding of some of the current research issues at the forefront of the academic research domain of data mining.

    Learning Outcomes

    (LO1) A critical awareness of current problems and research issues in Data Mining

    (LO2) A comprehensive understanding of current advanced scholarship and research in data mining and how this may contribute to the effective design and pmplementation of data mining applications.

    (LO3) The ability of consistently apply knowledge concerning current data mining research issues in an original manner and produce work which is at the forefront of current developments in the sub-discipline of data mining.

    (LO4) A conceptual understanding sufficient to evaluate critically current research and advanced scholarship in data mining.

    (S1) Critical thinking and problem solving - Problem identification

    (S2) Critical thinking and problem solving - Ciritcal analysis

  • High Performance Computing (COMP328)
    Level3
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting80:20
    Aims

    1. For students to understand the motivation and opportunities of high performance computing, and to have sufficient understanding of topics in order to use HPC facilities;

    2. For students to appreciate challenges of obtaining peak performance and how to tackle such challenges;

    Learning Outcomes

    (LO1) to gain an appreciation of the needs for parallel computing and High Performance Computing (HPC)

    (LO2) to be able to read & understand parallel programmes written by others

    (LO3) to be able to design and implement parallel programmes, using a variety of paradigms, and to run them on a real world HPC facility

The programme detail and modules listed are illustrative only and subject to change.


Teaching and Learning

Teaching is by a mix of formal lectures, small group tutorials and supervised laboratory-based practical sessions. Students also undertake individual and group projects. Key problem solving skills and employability skills, like presentation and teamwork skills, are developed throughout the programme.