Distributed Computing Systems Engineering MSc
Please note that there is still time to apply for courses starting in September 2017, subject to course availability.
About the course
This course runs in Germany.
This course covers a range of essential topics related to distributed computing systems. Yet these modules are not isolated; each one takes its place in the field in relation to others.
The emphasis in the course is to build the connections between topics, enabling software engineers to achieve co-operation between distinct autonomous systems under constraints of cost and performance requirements.
The course is suitable for:
- Recent graduates in Electrical or Electronic Engineering or Computer Science, who wish to develop their skills in the field of distributed computing systems.
- Practicing engineers and computer professionals who wish to develop their knowledge in this area.
- People with suitable mathematical, scientific or other engineering qualifications, usually with some relevant experience, who wish to enter this field.
The past few years have witnessed that Grid computing is evolving as a promising large-scale distributed computing infrastructure for scientists and engineers around the world to share various resources on the Internet including computers, software, data, instruments.
Many countries around the world have invested heavily on the development of the Grid computing infrastructure. Many IT companies have been actively involved in Grid development. Grid computing has been applied in a variety of areas such as particle physics, bio-informatics, finance, social science and manufacturing. The IT industry has seen the Grid computing infrastructure as the next generation of the Internet.
The aim of the programme is to equip high quality and ambitious graduates with the necessary advanced technical and professional skills for an enhanced career either in industry or leading edge research in the area of distributed computing systems.
Specifically, the main objectives of the programme are:
- To critically appraise advanced technologies for developing distributed systems;
- To practically examine the development of large scale distributed systems;
- To critically investigate the problems and pitfalls of distributed systems in business, commerce, and industry.
This module aims to advance knowledge on computer networks. Topics to be covered in this module include OSI reference model, Physical and Data Link Layer Protocols, TCP/IP Networking, IPv6, Routing Protocols, Asynchronous Transfer Mode (ATM) Networks, Packet Delay and Queuing Analysis, IP Quality of Services (Integrated Service Model and Differentiated Service Model), Resource Reservation Protocol (RSVP), Multi-Protocol Label Switching (MPLS), IP Multicasting, Network Application Layer Protocols such as HTTP, DNS, SNMP.
Network Security and Encryption
Introduces what is achievable through the use of security engineering, and presents the practical techniques and algorithms that are currently important for the efficient and secure use of distributed /Grid computing systems. Topics include Introduction to Security Engineering, Classical Cryptography (Monoalphabetic and Polyalphabetic Ciphers, Transposition, Substitution, Linear Transformation), Computational Fundamentals of Cryptosystems (Computational Complexity and Intractability, Modular Arithmetic and Elementary Number Theory), Modern Symmetric Key Cryptography (Feistel Ciphers, DES, Triple-DES and AES),Public Key Cryptography (The Diffie-Hellman Key Exchange Algorithm, Public Key Infrastructures, X.509 Certificates, PK Systems such as RSA and Elliptic Curves), Multilevel Security (the Bell-LaPadula Security Policy Model, the Biba Model, the NRL Pump), Multilateral Security (Compartmentation and the Lattice Model, the Chinese Wall, the BMA Model), Protecting e-Commerce Systems.
Distributed Systems Architecture
Presents a comprehensive evaluation of the design philosophies, fundamental constructs, performance issues and operational principles of distributed systems architectures, covering applications, algorithms and software architecture, engineering issues and implementation technology. Topics to be covered in this module include System Architecture (Bus Systems, High Performance I/O, Memory Hierarchies, Memory Coherence and File Coherence), Distributed Database, Processor Architecture, File Services, Inter-Process Communication, Naming Services, Resource Allocation and Scheduling, Distributed System Case Studies.
Project and Personal Management
Introduces a range of formal methods and skills necessary to equip the student to function effectively at the higher levels of project management. Covers the need for the development of project management skills in achieving practical business objectives.
High Performance Computing and Big Data
The main of this module is to provide students with a solid foundation in High Performance Computing (HPC) and its role in data intensive science and engineering
applications. Topics to be covered in this module include Introduction (high performance computing, high throughput computing, highly scalable computing), Parallel programming concepts (data partition and granularity, load balancing, programming models), HPC paradigms (cluster computing, grid computing and cloud computing), Shared memory programming (OpenMP), Distributed memory programming (MPI), MapReduce programming model, NoSQL database systems (Cassandra and MongoDB), Cloud computing infrastructures (Amazon EC2 Cloud) and HPC applications.
The main aims of this module are to build knowledge on analysis methodologies for software system design and to raise awareness of the challenges in the design of complex software systems. Topics to be covered in this module include Requirements Engineering (documenting requirements, user stories, use cases and scenarios); Universal Modelling Language (UML)
(UML use case, class, sequence, activity, state, component and deployment diagrams, UML models), Analysis and Design Process (user story realisation, object-oriented modelling, incremental refinement); Design Principles (software architecture, separation of concerns, design patterns, object-oriented design practices, refactoring); Testing (unit testing, test-driven development, functional testing).
Embedded Systems Engineering
The main aim of the module is to provide a detailed knowledge of real-time computing for embedded and control computer systems. Topics to be covered in this module include the design of embedded software computer systems, embedded system design using hardware description languages (HDL) such as VHDL
in the design of embedded systems, advanced design tools (e.g. System C, MATLAB) to specify, simulate, and synthesize designs; implementations strategies and limitations e.g. FPGA, DSP chips and micro processors, performance measurement, benchmarking and tools for system simulation testing and debugging; applications and case studies for embedded FPGAs
based systems will be presented; design of low-cost, high-performance embedded systems; hard and soft real-time computer system design for uniprocessor embedded system applications and distributed realtime systems; characterising real-time systems, performance measure, task assigning, scheduling, fault tolerant scheduling, run-time, real-time data bases, real-time communication (CAN, FlexRay, Realtime-Ethernet) and inter process communication and synchronization.
The main aims of the module are to understand a full range of state-of-the-art intelligent systems techniques, and to raise critical awareness of the issues affecting the performance of intelligent systems. Topics to be covered in this module include Intelligent Computation Techniques (fuzzy logic: concepts, membership functions, inference methods and design; neural networks (NN): representations, topology, learning methods; neuro-fuzzy systems (NF): design, topology, training, comparison to NN; genetic algorithms: representations, genetic operators, selection schemes, fitness & population evaluation, constraint handling, learning and evolution; swarm intelligence: particle swarm, ant colony optimisation); Intelligent Data Processing Techniques (data classification: supervised learning of classifiers; clustering: fuzzy c-mean clustering; data mining: utilisation of NN and GA to explore new features in the data; genome data processing: gene analysis based on NN, gene analysis based on NF; signal processing: adaptive filter design using genetic algorithms); and Applications bioinformatics, medical imaging & visualisation, pattern recognition & biometrics, computer vision, future trends).
A stimulating and challenging part of the MSc programme. It provides the opportunity to apply the knowledge learnt in the taught part of the programme and to specialise in one aspect, developing students’ deep understanding and expertise in Distributed Systems related area of their choice. Students may carry out their projects wholly within the University, but industrial based projects are encouraged.
Read more about the structure of postgraduate degrees at Brunel
and what you will learn on the course.