CS7NS2 – Internet of Things

Module CodeCS7NS2
Module Name Internet of Things
ECTS Weighting [1]5 ECTS
Semester TaughtSemester 2
Module Coordinator/s  Stefan Weber

Module Learning Outcomes

On successful completion of this module, students should be able to:

  1. Design, implement and debug application firmware for a low power hardware platform using standard and emerging frameworks, operating systems and tools, while demonstrating awareness of resource limitations, real-time constraints and performance;
  2. Design, implement and evaluate appropriate wireless communication strategies, using existing technologies and standards, for an Internet connected multi-sensor/actuator system with a limited energy budget;
  3. Employ existing middleware solutions, architectural principles and platforms to construct a small-scale prototype Internet of Things application exhibiting multi-node sensing, actuation and device management;
  4. Critically assess hardware, software and communication technologies and architectures relating to Internet of Things applications with respect to performance, applicability, compatibility, reliability and security;
  5. Critically assess the value and appropriateness of existing and proposed Internet of Things applications.

Module Content

Specific topics addressed in this module may include:

  • Introduction to the Internet of Things: definition, origins and scope;
  • Low-power, embedded architectures and platforms;
  • Programming for low energy consumption;
  • Embedded operating systems and SDKs (e.g. Contiki, MyNewt, mbed);
  • Low-power, wireless communication technologies (e.g. Bluetooth LE);
  • Architectural models and protocols for Internet connectivity (e.g. 6Lo*);
  • Application protocols and data representation (e.g. CoAP, MQTT, CBOR);
  • Resource discovery;
  • Management and maintenance (e.g. LWM2M).

Teaching and Learning Methods

In this module, students will explore the prevailing vision for an Internet of Things in a practical, pragmatic manner. The foundation of the module will be the end-to-end implementation of a prototype Internet of Things application, from the development of firmware for a low-power, constrained platform, to the integration of multiple “things” in a practical application.


Reflecting this end-to-end approach, the module will explore relevant hardware platforms and firmware development techniques, tools and frameworks to support the implementation of embedded “things”. Following on from this, the module will consider relevant wireless communication technologies, as well as strategies and standard protocols for connecting “things” to the Internet. Lastly, relevant platforms and middleware for discovering and managing things and combining their functionality in practical applications will be explored.


Underlying themes will include the need to consider the constraints of low-power devices and communication technologies in particular, as well as issues such as scalability, reliability and security. Finally, while exploring the prevailing vision for an Internet of Things, students will be encouraged to recognize that predictions relating to new technologies often follow a “hype cycle”. Furthermore, the module will seek to emphasize that the “Internet of Things” is not a new technology but rather a vision built on the application of concepts and technologies in areas such as wireless sensor networks and embedded systems, among others.

Assessment Details

Assessment ComponentBrief Description Learning Outcomes Addressed% of TotalWeek SetWeek Due
Group Project Software Project (specific to IoT)LO1, LO2, LO3
80%Week 1Week 12
Individual Essay Reflection in Issues in IoT
LO4, LO5
20%Week 1Week 7

Reassessment Details

Reassessment will be based on 100% coursework.

Contact Hours and Indicative Student Workload

Contact Hours (scheduled hours per student over full module), broken down by: 33 hours
Lecture26 hours
Laboratory0 hours
Tutorial or seminar4 hours
Invited talks from industry 3 hours
Independent Study (outside scheduled contact hours), broken down by:80 hours
Preparation for classes and review of material (including preparation for examination, if applicable)76 hours
Completion of assessments (including examination, if applicable)4 hours
Total Hours113 hours

Recommended Reading List

Module Pre-requisites

Prerequisite modules: N/A

An ability to program, at a level typical for graduate Computer Science students. The module will use the C programming language extensively so students should be familiar with either C or C++ before starting the module.

Other/alternative non-module prerequisites: N/A

Module Co-requisites

N/A

Module Website

Blackboard