High Performance Computing and Big Data
The aim of this unit is to develop students' knowledge in the areas of parallel and distributed processing, machine learning approaches for handling big data and current parallel programming models for high-performance computing and big data processing, such as MPI and MapReduce.
- Current and Emerging Trends - Evaluation of current and emerging trends underpinning parallel and distributed systems for high-performance computing and big data – paradigms and platforms, cloud computing.
- Features of Big Data - Feature extraction and dimensionality reduction approaches.
- Artificial Intelligence - Machine learning, AI approaches and their algorithms for handling big data e.g. images, graphs, text.
- Models and Applications - Programming models and applications for big data and High-performance computing, including MPI, OpenMP, Hadoop/MapReduce, NoSQL with case studies.
- Professional Context - Professional, legal, ethical, social and cultural issues in high performance computing of big data.
Advanced Computer Networks and Operating Systems
The unit covers advanced topics in computer networks and operating systems. It focuses on principles, architectures, and protocols used in modern large scale networked systems. Topics include:
- Wide area networks - Compare the characteristics of WAN technologies, including their switching type, throughput, media, security, and reliability; Describe several WAN transmission and connection methods.
- Virtual networking and remote access - Explain virtualization and identify characteristics of virtual components; Understand VPNs (virtual private networks) and the protocols they rely on; Identify the features and benefits of cloud computing and NaaS (network as a service).
- Wireless and mobile networking - Wireless links and network characteristics; WiFi: 802.11 Wireless LANs; Cellular internet access; IoT, Sensor networks.
- Network Management - The Infrastructure for Network Management; The Internet-Standard Management Framework; Quality of Service; Performance and Planning.
- Classic Operating Systems - Comparing the features and trade-offs of classic operating systems;
- Virtual Machines - Exploring the need for virtual machines and the means of their implementation;
- File Systems - Looking at strengths and weaknesses of different approaches to persistent storage;
- Distributed and Scalable Systems - Focusing on issues related to cloud computing and grid computing;
- Concurrency, Scheduling & Sharing - Timing and scheduling, particularly in distributed systems;
- Fault Tolerance - Looking at managing failure in distributed systems.
This unit will involve practical system creation or experimentation work in an area of computing other than digital media. The curriculum is specific to the project you choose but it will include seminars on skills and techniques required for successful design and implementation of research resources, time management, research presentation (oral, written, posters) and professional, legal and ethical issues in computing. Examination of a case study or project in an area appropriate to your intended dissertation work. Where appropriate, the implementation or experimentation may be work-based.
Likely Optional Units
Cryptography and Encryption
The unit covers theoretical discussion of the key encryption algorithms: Diffie-Hellman, RSA, Digital Signatures, modern symmetric cryptosystems DES and AES. Additionally we will code the algorithms and their variants in a modern programming language and implement cryptosystems over a computer network.
Classical Cryptography; Shannons Theory; Block Ciphers; Hash Functions; RSA Algorithm and variants; Discrete and Public-Key Algorithms; Signatures; Pseudo-random number generators; Identification Schemes and Entity Authentication; Key Distribution; Key Agreement Schemes.
Examines key aspects of Distributed Programming and Software Engineering aspects of Enterprise level applications.
- Distributed computing development [25%] - eg RMI, JMS, JNDI, Jini, Connection to remote services (eg JDBC)
- Use of a variety of distributed object programming methods [20%] - eg Web Services, REST, SOAP, Ajax, Spring Framework
- Object wrapping formats and APIs [10%] - e.g. XML, JSON etc
- Cloud based software development [20%] - e.g. PAAS, SAAS, IAAS
- Design Patterns, Refactoring, SE design techniques [25%]
Mobile and Ubiquitous Computing
Provides an understanding of the issues, technologies and concepts in mobile and ubiquitous infrastructures, particularly in wireless networks, context-awareness, sensors and programming mobile devices.
- Explore and evaluate mobile application development frameworks and tools: [50%]
- Principles in wireless communications: [5%]
- Research and practise in context and location awareness: [15%]
- Interfacing to sensors: [15%]
- Resource discovery and system configuration: [5%]
- Design of pervasive computing systems: [5%]
- Examining the literature related to the subject matter: [5%]
Data Management and Machine Learning
The aim of this unit is to develop the student’s knowledge in the areas of data management including online analytical processing; data architectures such as data warehousing and the process and application of machine learning algorithms to data.
- Data Management Overview [15%] - Example content includes database modelling/querying (relational/noSQL), graph data modelling, applications.
- Online Analytical Processing (OLAP) [15%] - Including the representation of multi-dimensional views of data; Technologies and Architectures; Categories of OLAP tools, Business Intelligence Tools.
- Data Warehousing [10%] - Methodologies, architectures, modelling techniques; Data Warehousing Project Management; The Extraction, Transformational and Loading Process;
- Machine Learning Overview [10%] - The machine learning process, Applications of machine Learning.
- Machine Learning Algorithms [50%] - For example, artificial neural networks, naïve bayes, decision trees, clustering, association rules, text mining, fuzzy systems, application, analysis and validation.