Skip to main content

Cloud Computing


  • Credit value: 15 credits at Level 7
  • Module convenor and tutor: Stelios Sotiriadis
  • Prerequisite: Principles of Programming or equivalent knowledge of a programming language such as Python
  • Assessment: a programming assignment with report (30%) and two-hour examination (70%)

Module description

The module will introduce the concepts of distributed computing systems, scalability and development and configuration of complex large scale systems. You will learn how to develop and deploy modern applications on the cloud.

You will be introduced to a variety of modern tools and technologies including use of virtual machines and containers, configuration of distributed systems, deployment of NoSQL systems, development of RESTFul services with Python and other. Finally, the module concludes with an introduction to big data systems by focusing on the Hadoop MapReduce ecosystem.

Please note, this is a highly technical module with a heavy programming lab schedule.

indicative module Syllabus

  • Cloud computing concept
  • Use of Linux environments and command line interface
  • Cloud services and virtualisation
  • Web services, REST and authorisation protocols
  • Using Python frameworks to develop APIs
  • Distributed and parallel systems with Python
  • Cloud data storage systems and NoSQL systems
  • Container systems
  • Service Oriented Architectures
  • Distributed systems configuration
  • Introduction to big data and Hadoop MapReduce framework
  • Hadoop MapReduce application development
  • Scaling cloud applications
  • Introduction to the Internet of Things using cloud systems

    Learning objectives

    By the end of this module, you will be able to:

    • understand complex distributed computing systems algorithms
    • use Linux systems and the command line interface
    • demonstrate development of RESTFul services using Python frameworks (such as Flask and Django)
    • use authorisation protocols (e.g. OAuth v2)
    • configure NoSQL sytems (such as MongoDB and Apache Cassandra)
    • demonstrate development of parallel and concurrent processing software with Python
    • deploy and configure containerised systems (e.g. using Docker)
    • conceptualise Service Oriented Architectures
    • understand distributed services as distributed configuration, synchronisation, naming and other (e.g. using Apache Zookeeper)
    • understand how to develop scalable applications (e.g. by using load balancers and messaging systems)
    • understand Hadoop MapReduce framework.