Internet of Things Garage

Undergraduate and Postgraduate Teaching




CM2306(S): Communications Networks (Undergraduate) - Core Module offered in Spring

CM2306 module will introduce the fundamental principles and emerging areas in computer and communication networks, covering the underlying technologies and protocols, implementation, and issues of network security. CM2306 is a double semester module where in the second/spring semester, CM2306(S), students will develop an understanding of how to design and develop an Internet of Things (IoT) system. This module aims to cover the end-to-end IoT systems design and development process which includes aspects such as architecture, wired and wireless connectivity, sensing and actuation, computation and analytics, human factors and interactions, privacy and security issues. The students will develop an understanding of how different design decisions may lead to different trade-offs. Further, students will also learn practical aspects such as device programming and debugging, cloud integration, and deployments. Additionally, students will undertake a team project to develop an IoT system to tackle a problem of their choice. The module content is structured under eight theme, namely, (1) Applications and Use cases, (2) Architectures, (3) Sensing and Actuation, (4) Networking and Communications, (5) Data management and analytics, (6) Privacy and Security, (7) Human Factors and Interactions, and (8) Design Strategies and Prototyping.


CMT223: Internet of Things: Systems Design (Postgraduate) - Elective Module offered in Spring

In this module students will develop an understanding of how to design and develop an Internet of Things (IoT) system. This module aims to cover the end-to-end IoT systems design and development process which includes aspects such as architecture, wired and wireless connectivity, sensing and actuation, computation and analytics, human factors and interactions, privacy and security issues. The students will develop an understanding of how different design decisions may lead to different trade-offs. Further, students will also learn practical aspects such as device programming and debugging, cloud integration, and deployments. Additionally, students will undertake a team project to develop an IoT system to tackle a problem of their choice. CMT223 (Postgraduate) is a strict superset of CM2306(S)(Undergraduate). In addition to meeting all requirements of CM2306, students enrolled in CMT223 will be expected to develop a non-trivial IoT system with advance features that go beyond what they learn during the module. Another difference is that CMT223 (Postgraduate) students are expected to write a group report in a conference paper format (6-8 pages). This covers a training needed to complete the full cycle of a methodical study in a short span of 12 weeks to produce a scientific report with evidence and interpretations for management decisions..



Internet of Things Labs


Students are provided with a lab book that explains each practical sessions steps by step. This lab book guides students through a series of labs. Each lab has its objectives. It expected that students should be able to complete each lab session within two hours (most of the time much less). This booklet does assume that students have some amount of networking knowledge. Further, it is important to mention that IoT by nature is a broad subject. Therefore, we cannot teach all the topics in-depth in a few lab sessions. For example, Arduino programming use C/C++ programming languages. However, we do not expect students to be an expert on C/C++ to follow the lab session. However, if the students have some background, they will find some known concepts in action and feel comfortable. If the student has never seen C/C++ before, they will, of course, feel nervous and sometimes will feel lost.


Throughout the lab book, we have provided explanations and external link and references to reading material. Especially if the students do not understand specific programming tasks such as C/C++, it may worth reading those links. Further, these link will provide guidance for students to explore the universe of IoT by their own, beyond the labs we have provided here. Finally, we would like to emphasis that this is not a programming course. Therefore, we do not try to teach a particular programming language (though we try to provide as much links and references for students to develop their skills). It is up to the students to develop the gaps in their knowledge by referring to the links we provided.



Internet of Things: Systems Design - Study Guide


This is not a textbook. Instead, it is a study guide. The objective of this book is to guide your learning process. There are multiple reasons why we put together this study guide. Internet of Things is a broad subject which is inspired by various more traditional and historic areas in computer science such as Embedded Systems, Electronics, Distributed Systems, Software Arcteuctures, Networking, Wireless Communication, Human-Computer Interaction, Security and so on. Additionally, IoT also overlaps some novel subject areas such as Data Science as well. As a result, IoT by nature a broad subject. The objective of an IoT module is to teach you what is unique about IoT. At the same time, the more you learn about the areas mentioned above, the more you will be able to understand and learn IoT better. However, due to time pressure, we cannot cover all these areas during a single module. One of the core objectives of this book is to guide you through the additional areas that may be useful to broaden your body of knowledge.


The primary mode of content delivery for these modules is via recorded lectures. Instead of recording our long lessons, we have divided the lessons into subtopics and recorded them separately. However, it is difficult to discuss additional material in video lectures as it would increase the length of a given lecture unnecessarily. This is where this study guide comes handy. Based on our experience, most students find it difficult to understand how the lab tutorial connect to the lectures and to the overall learning goals and objectives of the module. We will be using this study guide to explain these relationships, which may be not obvious to some students.