Big Data and High Performance Computing MSc

  • Programme duration: Full-time: 12 months   Part-time: 24 months
  • Programme start: September 2020
  • Entry requirements: You will need a 2:1 honours degree (or above) in Computer Science, Software Engineering, Mathematics or Physics.
Big Data and High Performance Computing msc

Module details

Compulsory modules

Research Methods in Computer Science (COMP516)
LevelM
Credit level15
SemesterFirst Semester
Exam:Coursework weighting0:100
Aims

1. To provide a deep and systematic undersanding of the nature and conduct of CS research. 2. To enhance existing transferable key skills. 3. To develop high order transferable key skills. 4. To equip students with the ability to undertake independent research. 5. To remind students of the Legal, Social, Ethical and Profesional (LSEP) issues applicable to the computer industry.

Learning Outcomes

(LO1) Have an understanding of how established techniques of research and enquiry are used to extend, create and interpret knowledge in Computer Science.

(LO2) Have a conceptual understanding sufficient to:(i) evaluate critically current research and advanced scholarship in Computer Science and (ii) propose possible alternative directions for further work.

(LO3) Be able to: (i) deal with complex issues at the forefront of the academic discipline of Computer Science in a manner, based on sound judgements, that is both systematic and creative, (ii) demonstrate self-direction and originality in tackling and solving problems within the domain of Computer Science, (iii) act autonomously in planning and implementing solutions in a professional manner and (iv) define, plan, and/or carry out a project related to research and to communicate conclusions clearly to both specialists and non-specialists.

(LO4) Make use of the qualities and transferable skills necessary for employment requiring:(i) the exercise of initiative and personal responsibility, (ii) decision making in complex and unpredictable situations, (iii) scientific risk identification, assessment and control, and (iv) the independent learning ability required for continuing professional development.

(LO5) Understand and participate within the professional, legal, social and ethical framework within which they would be expected to operate as professionals within the IT industry.

(LO6) Have the skills set to be able to continue to advance their knowledge and understanding, and to develop new skills to a high level, with respect to continuing professional development as a "self-directed life-long learner" across the discipline of Computer Science.

(S1) Communication (oral, written and visual) - Presentation skills – oral

(S2) Communication (oral, written and visual) - Listening skills

(S3) Communication (oral, written and visual) - Academic writing (inc. referencing skills)

(S4) Time and project management - Project planning

(S5) Research skills - Ethical awareness

Applied Algorithmics (COMP526)
LevelM
Credit level15
SemesterSecond Semester
Exam:Coursework weighting75:25
Aims

The main aim of this module is to lay down a strong context for research explorations in the field of algorithms. This is done through a rigorous study of selected algorithmic solutionswith application to related fields requiring analysis of large data (bioinformatics, networking, data compression, etc). This will be done by provision of the rationale for the use of algorithmic design and analysis methods, and also an in-depth, systematic and critical study of several important algorithmic challenges residing on the border of the theory of abstract algorithms and engineering of applied algorithmic solutions.

Learning Outcomes

(LO1) Critical awareness of algorithmic problems and as well as research issues in the context of engineering of efficient algorithmic solutions.

(LO2) Clear understanding of the relation (including differences) between the goals in the design of efficient abstract and applied algorithmic solutions.

(LO3) Ability to understand and assimilate research literature relating to the application of algorithmic techniques.

(LO4) Ability to undertake small software projects.

(LO5) Ability to communicate (within and outside of Algorithms/CS community) problems related to efficiency of algorithmic solutions

(S1) Critical thinking and problem solving - Critical analysis

(S2) Critical thinking and problem solving - Problem identification

(S3) Critical thinking and problem solving - Evaluation

(S4) Critical thinking and problem solving - Creative thinking

(S5) Numeracy/computational skills - Problem solving

Data Mining and VIsualisation (COMP527)
LevelM
Credit level15
SemesterSecond Semester
Exam:Coursework weighting75:25
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 implementation of data mining applications.

(LO3) The ability to 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 - Critical analysis

Multi-core and Multi-processor Programming (COMP528)
LevelM
Credit level15
SemesterFirst Semester
Exam:Coursework weighting0:40
Aims

To provide students with a deep, critical and systematic understanding of key issues and effective solutions for parallel programming for systems with multi-core processors and parallel architectures.
To develop students appreciation of a variety of approaches to parallel programming, including using MPI, OpenMP and CUDA. 
To develop the students skills in parallel programming using MPI, OpenMP and CUDA.
To develop the students skills in parallelization of existing serial code.

Learning Outcomes

(LO1) At the end of the module students should be able to:  Explain the concepts of multi-core processors and systems and parallel architectures,  their advantages and challenges of their programming.

(LO2) Appraise the differences between various programming techniques and programming patterns available for parallel programming for multi-core systems and parallel architectures. 

(LO3) Design parallel multi-threaded programs using the most appropriate for a particular application approach, using one of MPI, OpenMP, CUDA, or a combination of thereof.  

(LO4) Design and implement reasonably sophisticated parallel multi-threaded programs demonstrating reasonable scalability on multi-core and parallel systems  using MPI, OpenMP, or CUDA, or the combination of thereof. 

(LO5) Analyse and evaluate the efficiency and scalability of parallel multi-threaded programs for multi-core parallel systems.

(S1) Improving own learning/performance - Personal action planning

(S2) Communication (oral, written and visual) - Presentation skills

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

(S4) Critical thinking and problem solving

(S5) Information skills - Critical reading

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

(S7) Numeracy/computational skills - Problem solving

Big Data Analysis (COMP529)
LevelM
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

Big Data Group Project (COMP530)
LevelM
Credit level15
SemesterSecond Semester
Exam:Coursework weighting0:100
Aims

To provide experience of working and collaborating in a software development team (in the context of HPC and Big Data).
To provide experience of all aspects of the declopment of a HPC solution to a Big Data problem.
To prepare students for their individual end of programme project (COMP702).
To consolidate material from the first semester, specifically material from COMP528 and COMP529.

Learning Outcomes

(LO1) An in depth and critical understanding of the operation of software development teams, the interpersonal skills required and the issues involved in working as part of a team.

(LO2) Knowledge of how to specify and design HPC solutions to Big Data problems.

(LO3) Knowledge of how to implement and test HPC solutions to Big Data problems.

(LO4) An overall understanding of the process of developing HPC solutions to Big Data problems.

(LO5) An ability to demonstrate practical experience in the realisation of HPC solutions to Big Data problems.

(LO6) A critical understanding of the importance of software documentation and its creation.

(S2) Communication (oral, written and visual) - Presentation skills - written

(S3) Time and project management - Project planning

(S4) Critical thinking and problem solving - Critical analysis

(S5) Working in groups and teams - Group action planning

(S6) Working in groups and teams - Time management

(S7) Commercial awareness - Relevant understanding of organisations

Optimisation (COMP557)
LevelM
Credit level15
SemesterFirst Semester
Exam:Coursework weighting0:25
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) The ability to recognise potential research opportunities and research directions

(LO2) The ability to read, understand and communicate research literature in the field of optimisation.

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

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

(LO5) A critical awareness of current problems and research issues in the field of optimisation.

(S1) Critical thinking and problem solving - Critical analysis

(S2) Communication (oral, written and visual) - Presentation skills – oral

MSc Project (COMP702)
LevelM
Credit level60
SemesterSummer (June-September)
Exam:Coursework weighting0:100
Aims

To give students the opportunity to work in a guided but independent fashion to explore a substantial problem in depth, making practical use of principles, techniques and methodologies acquired elsewhere in the programme.
To give experience of carrying out a large piece of individual work and in producing a dissertation.
To enhance communication skills, both oral and written.

Learning Outcomes

(LO1) After completing the module students should be able to: Investigate and specify a substantial problem in the domain of Computer Science, to place it in the context of related work including, as appropriate, Computer Science reserach, and to produce a plan to address this problem

(LO2) Make use of the qualities and transferable skills necessary for the conduct of a Computer Science project: (i) the exercise of initiative and personal responsibility, (ii) decision making in complex situations, (iii) risk identification (including, as appropriate, commercial and scientific risk), assessment and control, and (iv) the independent learning ability required for continuing professional development

(LO3) Demonstrate effective time management, self-direction and originality in carrying out a project in the domain of Computer Science

(LO4) Locate and make use of information relevant to a given IT project

(LO5) Design a solution to a substantial IT problem

(LO6) Implement and test potential solutions to IT problems

(LO7) Evaluate critically, as relevant to the project, current research and advanced scholarship in Computer Science, evaluate their own work, and participate effectively in the process of peer review of other projects

(LO8) Conduct and evaulate critically the project within the professional, legal, social and ethical framework in Computer Science and Sortware Engineering

(LO9) Prepare and deliver formal presentations

(LO10) Prepare and deliver a demonstration of software

(LO11) Structure and write a dissertation describing their project

(S1) Communication (oral, written and visual) - Presentation skills – oral

(S2) Communication (oral, written and visual) - Presentation skills - written

(S3) Communication (oral, written and visual) - Academic writing (inc. referencing skills)

(S4) Time and project management - Project planning

(S5) Critical thinking and problem solving - Critical analysis

(S6) Critical thinking and problem solving - Evaluation

(S7) Commercial awareness - Ability to analyse/balance risk and reward

Optional modules

Machine Learning and Bioinspired Optimisation (COMP532)
LevelM
Credit level15
SemesterSecond Semester
Exam:Coursework weighting75:25
Aims

In this module we focus on learning agents that interact with an initially unknown world. Since the world is dynamic this module will put strong emphasis on learning to deal with sequential data unlike many other machine learning courses. The aims can be summarised as:
To introduce and give an overview to state of the art bio-inspired self-adapting methods. 
To enable students to not only learn to build models with reactive input/output mappings but also build computer programs that sense and perceive their environment, plan, and make optimal decisions. 
To familiarise students with multi-agent reinforcement learning, swarm intelligence, deep neural networks, evolutionary game theory, artificial immune systems and DNA computing.
To demonstrate principles of bio-inspired methods, provide indicative examples, develop problem-solving abilities and provide students with experience to apply the learnt methods in real-world problems.

Learning Outcomes

(LO1) A systematic understanding of bio-inspired algorithms that can be used for autonomous agent design and complex optimisation problems.

(LO2) In depth insight in  the mathematics of biologically inspired machine learning and optimisation methods.

(LO3) A comprehensive understanding of the benefits and drawbacks of the various methods.

(LO4) Demonstrate knowledge of using the methods in real-world applications (e.g. logistic problems).

(LO5) Practical assignments will lead to hands on experience using tools as well as coding of own algorithms.

Safety and Dependability (COMP524)
LevelM
Credit level15
SemesterSecond Semester
Exam:Coursework weighting75:24
Aims

1. To provide a critical and in-depth understanding of all aspects of software safety and dependability; including issues realting to security, reliability and trustworthiness.
2. To provide a broad understanding of the state-of-the-art software engineering techniques currently used to address safety and dependability issues.
3. To provide an overview of the contemporary research issues relating to software safety and dependability.

Learning Outcomes

(LO1) At the end of the module, a student will understand some of the problems associated with the use of computer software in critical applications where safety, security and trust are issues.

(LO2) At the end of the module, a student will understand some of the contemporary mechanisms for ensuring dependability and reliability.

(LO3) At the end of the module, a student will understand a variety of approaches to the design and development of safe and dependable systems.

(LO4) At the end of the module, a student will understand formal verification techniques in relation to the assessment of safety and dependability.

(LO5) At the end of the module, a student will  be aware of some of the contemporary research problems in the areas of safety, security, dependability and trust.

(S1) Working in groups and teams - Group action planning

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

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

(S4) Numeracy/computational skills - Problem solving

(S5) Communication skills - Presenting

(S6) Problem solving - Co-designing a program and a correctness proof

(S7) Problem solving - Model (MDP) design analysis

(S8) Business and customer awareness - Brief discussion of the cost of software bugs and the cost of applying formal techniques

(S9) Information Technology (IT) skills - Formulating (probabilistic) models as Markov chains and decision processes, and using of-the-shelf tools for their analysis

Reasoning About Action and Change (COMP525)
LevelM
Credit level15
SemesterSecond Semester
Exam:Coursework weighting75:24
Aims

1. Give the student a feel for several formalisms that deal with change
2. Show how logics can be used to specify and verify dynamic systems
3. Give students a deeper knowledge of the semantics of such systems
4. Develop awareness of the usual trade-off between expressivity and complexity of logical languages.

Learning Outcomes

(LO1) Provide formal specifications, using a logical language, of informal problem descriptions.

(LO2) Verify simple properties of models.

(LO3) Produce simple logical proofs.

(LO4) Understand how temporal logics relate to each other.

(LO5) Understand and use model checkers.

(LO6) Understand and be able to explain and fomulate properties (such as "safety", "fairness" and "liveness") of systems and be able to formulate simple instances of them.

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

(S2) Numeracy/computational skills - Problem solving

Algorithmic Game Theory (COMP559)
LevelM
Credit level15
SemesterSecond Semester
Exam:Coursework weighting75:25
Aims

1. To provide an understanding of the inefficiency arising from uncontrolled, decentralized resource allocation.
2. To provide a foundation for modelling various mechanism design problems together with their algorithmic aspects.
3. 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.
4. To review the links and interconnections between algorithms and computational issues with selfish agents.
5. To provide an in-depth, systematic and critical understanding of selected significant topics related to algorithmic game theory, together with the related research issues.

Learning Outcomes

(LO1) Have a critical awareness ofcurrent problems, important concepts and research issues in  the field ofalgorithmic game theory. 

(LO2) Systematic knowledge andability to quantify the inefficiency of equilibria.

(LO3) Systematic knowledge andability to formulate mechanism design models or network games for the purpose of modeling particularapplications.

(LO4) Detailed understanding andability to use, describe and explain appropriate algorithmic paradigms and techniques in context of aparticular game-theoretic or mechanism design problem.

(LO5) Critical ability to read,understand and communicate research literature in the field of algorithmic game theory.  

(LO6) Critical ability torecognise potential research opportunities and research directions in the field of algorithmic game theory.

(S1) Communication (oral, written and visual) - Presentation skills – oral

(S2) Communication (oral, written and visual) - Presentation skills - written

(S3) Communication (oral, written and visual) - Presentation skills - visual

(S4) Critical thinking and problem solving - Critical analysis

(S5) Information skills - Critical reading

(S6) Business and customer awareness

(S7) Computer science principles