Intro.
to Internet of Things, Fall 2020
Instructor: Prof. Ying-Dar Lin, ydlin@cs.nctu.edu.tw
Lecture hours: 10:10-12:40 Mondays (1CDX at ED302)
Course homepage: http://speed.cis.nctu.edu.tw/~ydlin/course/cn/iot/iot.html
Course Overview:
The course is organized into 3 main parts, comprising of a total of 11 chapters. Part I
covers the building blocks of Internet of Things (IoTs) and their characteristics. A
taxonomy of IoT systems is comprising of various IoT levels with increasing levels of
complexity. Domain specific Internet of Things and their real-world applications are
described. A generic design methodology for IoT is presented. An IoT system
management approach using NETCONF-YANG is described. Part II introduces the
reader to the programming aspects of Internet of Things with a view towards rapid
prototyping of complex IoT applications. Python is chosen as the primary programming
language for this course, and an introduction to Python is also included within the text to
bring readers to a common level of expertise. We describe packages, frameworks and
cloud services including the WAMP-AutoBahn, Xively cloud and Amazon Web Services
which can be used for developing IoT systems. We choose the Raspberry Pi device as the
examples. Reference architectures for different levels of IoT applications are examined in
detail. Case studies with complete source code for various IoT domains including home
automation, smart environment, smart cities, logistics, retail, smart energy, smart
agriculture, industrial control and smart health, are described. Part III introduces the
reader to advanced topics on IoT including IoT data analytics and Tools for IoT. Case
studies on collecting and analyzing data generated by Internet of Things in the cloud are
described.
The loading for students includes (1) Q&A in flipped classroom (number of
questions and answers are counted), (2) two-person project demo: 3 assignments (video
demo with verbal explanation of the codes) and 1 final demo with a report (video demo
grown from 3 assignments with verbal explanation of the codes, a 6-page written report),
and (3) open-book final exam. Course slides are downloadable from the course
homepage. Class lectures are in English. In each week of 3 hours, the first two hours
would be lectured by the instructor while the third hour is flipped classroom where Q&A
is conducted by students with the instructor being the moderator.
Textbook:
Internet of Things: A Hands-on Approach, Arshdeep Bahga and Vijay Madisetti, Hands
On Books Series, August 2014. http://www.hands-on-books-series.com/iot.html; online
resources: http://www.hands-on-books-series.com/students.html
Grading: Q&A in flipped classroom 21%, assignment video demo (x3) 24%, project
final video demo with a written report 25%, open-book final exam 30%
Prerequisite: Familiarity with a high-level programming language. (Python is used in
this course. A brief tutorial on Python is given in the class for chapter 6.)
1
Important dates:
10/5 (Mon): distribution of Raspberry Pi devices to students + a list of available sensors
10/26 (Mon): 1-page project proposal, with topic, objective, and spec for assignments 1,
2, 3, and final demo
10/26, 11/23, 12/14 (Mon): uploaded video demo for assignments 1, 2, and 3
12/21 (Mon): open-book final exam
1/4 (Mon): uploaded final video demo and a 6-page report with topic, objective,
specification, system design, module implementation, demonstration, and reference
Course Outline:
Part I Introduction and Concepts
1 Introduction to Internet of Things (9/14)
2 Domain Specific IoTs (9/21)
3 IoT and M2M (9/28)
Assignment 1: Connecting sensors to Raspberry Pi (lecture: 10/5, video demo: 10/26)
1-page project proposal (10/26)
4 IoT System Management with NETCONF-YANG (10/12)
Part II Developing Internet of Things
5 IoT Platforms - Design Methodology (10/19)
6 IoT Systems - Logical Design using Python (10/26)
7 IoT Physical Devices & Endpoints (11/2)
Assignment 2: Storing sensor data to the cloud (lecture: 11/9, video demo: 11/23)
8 IoT Physical Servers & Cloud Offerings (11/16)
9 Case Studies Illustrating IoT Design (11/23)
Assignment 3: Computing sensor data on the cloud (lecture: 11/30, video demo: 12/14)
Part III Advanced Topics
10 Data Analytics for IoT (12/7)
11 Tools for IoT (12/14)
Open-book final exam (12/21)
Final video demo and report (1/4)
Appendix A Setting up Raspberry Pi
Appendix B Setting up Ubuntu VM
Appendix C Setting up Django