Internet of Things Garage

Undergraduate and Postgraduate Teaching




CM2211: Internet of Things (Undergraduate) - Core Module offered in Spring (YouTube) (Online)

CM2211 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. In CM2211 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 (Online)

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 CM2211(Undergraduate). In addition to meeting all requirements of CM2211, 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 Lab Book (Download)


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 Advanced Lab Book

This IOT Advanced Lab Book is primarily compiled to support the university courses on Internet of Things: Systems Design at postgraduate levels. It is designed to complement the IOT Lab Book. The IOT Lab Book primarily focuses on IoT systems development, combining microcontrollers, single-board computers and IoT cloud platforms. This Advanced Lab Book aims at data analytics, complex network design, and simulations.

First, we will introduce you to a very useful network simulation tool called CISCO Packet Tracer. It is a very comprehensive tool with a significant number of features and capabilities. In this advanced lab book, we will only touch the surface of this tool and introduce some of the most common features and how you could use the packet tracer tool to explore and learn more about networking in general and the Internet of Things. Please make sure to use these tutorials as a beginning and explore further using examples provided in the CISCO Packet Tracer tool itself.

Next, we will take you through a journey of IoT data science. Through a series of labs, we will introduce you to IoT data exploration using Python. Subsequently, we discuss conceptual and procedural elements of data cleaning and feature engineering tasks to detect anomalies in wind turbines using IoT sensor data. It is important to note that this is a very high-level sneak peek overview of the data science world in the context of IoT. Using a real-world example, these labs will give you sufficient background and conceptual knowledge to start exploring data science methods and techniques in detail by yourself. We do not try to teach a particular programming language or data science (though we try to provide links and references for students to develop their skills). It is up to the students to develop the gaps in their knowledge using the links.




Hall of Fame



2022