INFR11146 - Internet of Things: Systems, Security and the Cloud (IoTSSC)

Course Description

This course will give students a theoretical and practical grounding in Internet of Things (IoT), covering IoT systems architecture, hardware platforms, embedded programming and debugging, networking paradigms for IoT, secure operation, cloud integration, and simple data analytics.

The course has a major coursework component, by which students will design, build, evaluate, document, and demonstrate an IoT prototype.

Further details are available on the DRPS page.


For 4th year students, Operating Systems (INFR09047) is a pre-requisite and they are strongly advised to also take Computer Communications and Networks (INFR10074).

MSc students taking IoTSSC who have not passed Operating Systems must have taken Informatics Research Review (INFR11136) or Research Methods in Security, Privacy, and Trust (INFR11188) and must have taken courses covering the following topics: Processes and threads; Thread synchronisation and semaphores; Deadlocks; Virtual Memory; Virtualisation; Internetworking, IP, IP addressing; ICMP, routing, NAT; UDP, TCP, congestion control; HTTP and DNS; Socket programming.

If you do not meet these pre-requisites and you have not been granted a concession, then you cannot take this course.

Students must have reasonable computer programming skills, and an interest in systems, security, and networking.


Due to the Covid-19 pandemic, the majority of activities will take place online. When safe to do so, some lectures may be organised in a hybrid fashion, i.e. taught on campus and streamed online. Students will be given sufficient advance notice in such circumstances.

With a few exceptions, lectures will be pre-recorded and broken into several modules. The expected learning outcomes during each week will be communicated at the start of the week, and quizzes will be published at the of the week, with a 1-week deadline to completion.

Labs will be organised in two groups, virtually over MS teams, as follows

Group 1Mondays10:0013:00
Group 2Tuesdays14:0017:00


Course Organiser Paul Patras (email:
Co-lecturer David Aspinall (email:
Teaching Assistant Zhibo Li
Lab Demonstrator Lorenzo Martinico


Lecture notes, lecture video recordings, lab material, coursework handout, as well as external resources will be made available via the course learn page.

Please note that the lectures do not cover all the relevant material in as much detail as the books or papers given in the recommended reading list. The list is approximate and we will often jump around through some of the contents discussed therein. Whilst the lectures are to help with understanding key concepts and to give you an opportunity to ask questions, you are expected to learn from the papers and books suggested, as well as from other related resources available online.

Remember there is a lot of reading required for this course! Even so, IoT has become a vast field and we will only be able to scratch the surface.


  1. Course Introduction. Coursework. Introduction to IoT.
  2. IoT System Architectures & Standards
  3. Intro to Embedded Systems. Hardware Platforms for IoT
  4. IoT Connectivity I (Bluetooth & ZigBee)
  5. IoT Connectivity II (Wi-Fi & LPWAN)
  6. Programming, Debugging , Hardware & Software Optimisation. TBC: Guest lecture - Lionel Saliou
  7. End-to-end networking. The Cloud.
  8. Guest lecture - Michael Glienecke
  9. IoT Security I (Threat modelling. HW Security. Code signing. Encryption)
  10. IoT Security II (Wireless security. Bluetooth Security. TLS)
  11. Current and Future trends of IoT
Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB, Scotland, UK
Tel: +44 131 650 2690, Fax: +44 131 651 1426, E-mail:
Please contact our webadmin with any comments or corrections.
Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh