This module is designed to provide students with solid technical knowledge and skills to build Internet of Things (IoT) systems. The course has a significant practical element in that the overwhelming majority of the technical content will be delivered during lab sessions in which students are expected to complete exercises involving system design, device programming, cloud development and data analysis

Full Description:

ATTENTION: This is an intensive, highly interactive and very hands-on course. The course is delivered in a flipped-lecture format. This means that students need to carry out pre-work and read the background theory before coming to the sessions. Most of these sessions are workshops during which students will actively work on programming and development tasks.

Pre-requisites:

It is expected that students will have a background in electronic engineering, computer systems engineering or a related subject. The following are essential:

Knowledge of basic electronics design (for example, ADCs/DACs, PWM, voltage dividers).
	Experience programming devices using C / C++.
	Familiarity with the OSI model and the seven abstraction layers.
The following are considered a strong advantage:

Experience programming Arduino and/or Raspberry Pi devices.
	Experience carrying out data analysis in MATLAB or Python.
	Experience programming in HTML and/or JavaScript.
	Familiarity with networking and TCP/IP.
NOTE: Students will be required to make use of all the above knowledge and skills during the course to configure sensors, program edge computing platforms, carry out development in the cloud and perform data analytics. The practical experience acquired will be essential to completing the group project.

 

Structure:

A systems engineering approach is adopted throughout the course reviewing the key technologies employed at different levels of the IoT stack and how they are integrated to form complete IoT systems.

A number of devices, platforms and software tools will be introduced during the course from different vendors. Examples include:

Sensors layer: Arduino IDE (https://www.arduino.cc/en/software) and MKR1010 board.
	Connectivity layer: SmartMesh Power and Performance Estimator (by Dust Networks).
	Data analytics: MATLAB (from MathWorks) and Python (using Jupiter notebooks in Anaconda).
	Cloud development: IBM Cloud and associated tools.
Pre-work:

Students will be expected to carry out pre-work and pre-reading throughout the course to setup and familiarise themselves with the platforms and tools that will be used during the course, as well as to learn the background theory required to complete the workshops successfully. Further details will be provided nearer to the start date of the course.

Intended Learning Outcomes:

On completion of this course, students should be able to:

Explain the definition and usage of the term “Internet of Things” in different contexts.
	Know the key components that make up an IoT system.
	Differentiate between the levels of the IoT stack and be familiar with the key technologies and protocols employed at each layer of the stack.
	Apply the knowledge and skills acquired during the course to build and test a complete, working IoT system involving prototyping, programming and data analysis.
	Understand where the IoT concept fits within the broader ICT industry and possible future trends.
	Appreciate the role of big data, cloud computing and data analytics in a typical IoT system.
Course Content:

Introduction to the Internet of Things

	What is the IoT and why is it important?
		Elements of an IoT ecosystem.
		Technology and business drivers.
		IoT applications, trends and implications.
	
 

Sensors and sensor nodes

	Sensing components and devices.
		Sensor modules, nodes and systems.
	
 

Connectivity and networks

	Wireless technologies for the IoT.
		Edge connectivity and protocols.
		Wireless sensor networks.
	
 

Analytics and applications

	Data analytics at the edge and in the cloud.
		Databases, cloud analytics, applications and services.
	
 

Practical IoT exercises
Assessment:

Assessment is via a 100% coursework-based project. Coursework deliverables include a system demonstration, a project presentation and a final project report. Coursework deliverables will be examined both through group work and through individual contribution.

Recommended Reading:

J. Biron and J. Follett, “Foundational Elements of an IoT Solution”, O'Reilly Media, 2016.
	A. Al-Fuqaha, M. Guizani, M. Mohammadi, M. Aledhari and M. Ayyash, “Internet of Things: A Survey on Enabling Technologies, Protocols, and Applications,” in IEEE Communications Surveys & Tutorials, vol. 17, no. 4, pp. 2347-2376, Fourth quarter 2015.
	A. Gerber and J. Romeo, “Key concepts and skills for getting started in IoT”, IBM Developer, 2017 (updated in 2020)
	Keysight Technologies, “The Internet of Things: Enabling Technologies and Solutions for Design and Test”, Application Note, 2016.