Module Code | CS7NS2 |
Module Name | Internet of Things |
ECTS Weighting [1] | 5 ECTS |
Semester Taught | Semester 2 |
Module Coordinator/s | Stefan Weber |
Module Learning Outcomes
On successful completion of this module, students should be able to:
- 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;
- 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;
- 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;
- Critically assess hardware, software and communication technologies and architectures relating to Internet of Things applications with respect to performance, applicability, compatibility, reliability and security;
- 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 Component | Brief Description | Learning Outcomes Addressed | % of Total | Week Set | Week Due |
Group Project | Software Project (specific to IoT) | LO1, LO2, LO3 | 70% | Week 1 | Week 12 |
Individual Essay | Reflection in Issues in IoT | LO4, LO5 | 30% | Week 1 | Week 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 |
Lecture | 26 hours |
Laboratory | 0 hours |
Tutorial or seminar | 4 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 Hours | 113 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