Computer Science BSc (Hons)

Key information


comp-sci-2

Computer Science is a broad area which includes designing and building hardware and software systems for a wide range of purposes and processing, structuring and managing various kinds of information.

Covering all aspects of computer science, including the underlying principles and theory, this programme will ensure that when you graduate you will know what is and isn’t possible with computers and be able to find solutions to the problems you will encounter in your professional life.

You can choose to maintain a mixture of modules throughout your degree or follow a specialist’s pathway in artificial intelligence, algorithms and optimisation or data science.

The programme covers a range of compulsory modules including: Programming in Java, Computer systems, Databases, Software engineering, Algorithmic foundations, Complexity of algorithms and decision and Computation and language. You then choose from a selection of modules representing the cutting-edge of computer science today.

These cover topics such as Biocomputation, Introduction to computational game theory and Complex social networks, amongst others. This degree includes a second year group software project and a final year individual project.

Interested in finding out more? Jiayun shares her experience on the course, below.

 
"There are many excellent professors who can mentor you. In addition, there will be a team work in the second semester of the second year of computer science in Liverpool, In which we can design an app freely,which can better cultivate my teamwork spirit."
Kang Jiayun, Computer Science, Y2.
 

As XJTLU students will join Year 2 at The University of Liverpool, this PDF provides relevant module information for the following programme(s):

Cover for EEE 2+2

View the 2+2 Electrical Engineering, Electronics and Computer Science brochure.

Programme Year Two

In Year Two you will 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 four core modules, in addition to selected optional modules.

Year Two Compulsory Modules

  • 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.

  • 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.

  • 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

  • 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

Programme Year Three

A major part of your studies in Year Three will be an individual project in computer science that you will 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.

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

  • Corporate Reporting and Analysis (ACFI302)
    Level3
    Credit level15
    SemesterSecond Semester
    Exam:Coursework weighting60:40
    Aims

    This module aims to develop students understanding of financial reporting to an advanced level by building upon the knowledge and skills gained in earlier financial reporting modules.  Complex IFRS on topics such as share based payments and deferred tax will be looked at.
    This module also aims to develop students consolidated accounting skills by looking at complex business combinations.
    This module also aims to develop an understanding of financial statement analysis using financial reporting and business strategy skills developed in this and earlier modules.
    This module aims to give students an appreciation of the ethical and professional issues an accountant may face in practice and develop an understanding of how to deal with those issues.

    Learning Outcomes

    (LO1) Students will be able to prepare and evaluate single company financial statements, or extracts thereof, in accordance with IFRS for complex transactions.

    (LO2) Students will be able to account for complex business combinations in accordance with International Accounting Standards.

    (LO3) Students will be able to analyse and interpret financial statements and other financial information and draw appropriate conclusions.

    (LO4) Students will learn to appraise ethical, CSR and professional issues for an accountant undertaking work in corporate reporting and recommend courses of action.

    (S1) Problem solving skills

    (S2) Numeracy

    (S3) Commercial awareness

    (S4) Organisational skills

    (S5) Communication skills

    (S6) International awareness

    (S7) Lifelong learning skills

    (S8) Ethical awareness

  • 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

  • Mobile Computing (COMP327)
    Level3
    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 (including interface design for non-standard display surfaces) through the implementation of simple applications and use cases.

    To introduce wireless communication and networking principles, that support connectivity to cellular networks, wireless internet and sensor devices.

    To understand the use of transaction and e-commerce principles over such devices to support mobile business concepts.

    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 - Numeracy and computational skills

    (S2) Problem solving – analysing facts and situations and applying creative thinking to develop appropriate 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