CS G518: Internet of Things: Design and Development
About the course
CS G518 is a graduate level course that aims at providing a sound conceptual and hands-on foundation in the area of IoT. The course attempts to provide a balanced treatment of the mechanisms and environments of IoT and initiates senior CS students to the state-of-the-art in the area. At the end of this course, students should be able to conceptualize, analyze, and design IoT systems. We will learn the OSes, wireless network technologies, and programming languages that such systems utilize. We will use REST-ful APIs to retrieve data from sensors and use simple signal processing, Machine Learning, and Artificial Intelligence techniques to summarize the data.Prerequisites
Students should have completed the Computer Programming course and Operating Systems course before enrolling for CS G518Instructors
Prof. Sougata Sen (sougatas AT goa DOT bits DASH pilani DOT ac DOT in)Schedule
Classes hours: MWF 12 to 12:50 PMNo graduate level course can depend on only one book. Text books are being mentioned here only for providing a useful point of reference in keeping with the current practice.
T1: Arshdeep Bagha and Vijay Madisetti,”Internet of Things: A Hands-on Approach”, University Press (India) Pvt. Ltd. (2015) ISBN 10: 8173719543 ISBN 13: 9788173719547
T2: Surya Durbha and Jyoti Joglekar, “Internet of Things”, Oxford University Press, (2021), ISBN: 0190121092, 9780190121099
T3: Adrian McEwen and Hakim Cassimally, “Designing the Internet of Things”, Wiley Publication (2013), ISBN 9781118430651, 1118430654
T4: Qusay Hassan, “Internet of Things A to Z: Technologies and Applications” IEEE Press, Wiley (2018), ISBN: 978-111-945674-2
T5: Pete Warden and Daniel Situnayake, “TinyML” O’Reilly Publication (2019), ISBN: 9781492052043
This course will refer to several recent conference and journal papers. Details and link to these papers will be provided in Canvas.
Lec # | Date | Tag | Topic Covered | Due date for (all times are at 5 PM) | Slides / other resource link | Remarks |
1 | 23/8/2021 | Lec: Intro | Introduction to the course | - | ||
2 | 25/8/2021 | Lec: Intro | Logical diagram of IoT deployment; Levels of deployment | - |
Optional reading before class: Nam Bui et al. 2021. EBP: an ear-worn device for frequent and comfortable blood pressure monitoring. Commun. ACM 64, 8 (August 2021), 118–125. DOI:https://doi.org/10.1145/3470446 |
|
3 | 27/8/2021 | Lec: Intro | Application of IoT: home automation, smart cities, energy, agriculture, healthcare, environment, logistics, wildlife | - |
Recording (Links to an external site.) Complementary Applications Slide
|
Optional reading before class: Werner-Allen, Geoff, et al. "Fidelity and yield in a volcano monitoring sensor network." Proceedings of the 7th symposium on Operating systems design and implementation. 2006. |
30/8/2021 | Pro: Title due | Holiday: No class | Project group names and project title | |||
4 | 1/9/2021 | Lec: Intro | IoT protocol stack, IoT vs. CPS, IoT vs. M2M, IoT vs. IoV, IoT vs. V2X, IoT vs. WSN. |
|
||
5 | 3/9/2021 |
Lec: Design |
IoT design methodology: Specification and development |
Optional reading before class: Ngu, A. H., Gutierrez, M., Metsis, V., Nepal, S., & Sheng, Q. Z. (2016). IoT middleware: A survey on issues and enabling technologies. IEEE Internet of Things Journal, 4(1), 1-20. https://ieeexplore.ieee.org/abstract/document/7582463 |
||
6 | 6/9/2021 | Lec:Design&Dev | Understanding working and applications of Sensors and actuators | |||
7 | 8/9/2021 | Lec:Design&Dev | Understanding working and applications of Sensors and actuators; Available tools and techniques to develop IoT applications |
Optional reading before class: Daniel A. Winkler and Alberto E. Cerpa. 2019. WISDOM: watering intelligently at scale with distributed optimization and modeling. In Proceedings of the 17th Conference on Embedded Networked Sensor Systems (SenSys '19). Association for Computing Machinery, New York, NY, USA, 219–231. DOI:https://doi.org/10.1145/3356250.3360023 |
||
10/9/2021 | Pro: Abstract due | Holiday: No class | Project abstract and high level plan due | |||
11/9/2021 | Pap:Critique due | File | Charles E. Catlett, Peter H. Beckman, Rajesh Sankaran, and Kate Kusiak Galvin. 2017. Array of things: a scientific research instrument in the public way: platform design and early lessons learned. In Proceedings of the 2nd International Workshop on Science of Smart City Operations and Platforms Engineering (SCOPE '17). Association for Computing Machinery, New York, NY, USA, 26–33. DOI:https://doi.org/10.1145/3063386.3063771 | |||
8 | 13/9/2021 | Lec:Design&Dev |
Arduino tutorial — the hardware stack, what is MCU, what it does. Programming Arduino devices |
Hands-on session (if possible)
|
||
9 | 15/9/2021 | Lec:Dev&Prog | Arduino tutorial — the software stack. IoT middleware and firmware examples |
Tutorial Session |
||
10 | 17/9/2021 | Lec:Dev&Prog | Arduino programming and interfacing with sensors and GPIOs, |
Recording (Links to an external site.) UART Demo (Links to an external site.) |
||
11 | 20/9/2021 | Lec:Dev&Prog | Introduction to other IoT development platforms |
|
||
12 | 22/9/2021 | Lec:Dev&Prog | Programming IoT: Introduction to Python, | |||
13 | 24/9/2021 | Lec:Dev&Prog | Introduction to Raspberry Pi interfacing, | |||
25/9/2021 | Pap:Critique due | File | Palanivel A. Kodeswaran, Ravi Kokku, Sayandeep Sen, and Mudhakar Srivatsa. 2016. Idea: A System for Efficient Failure Management in Smart IoT Environments. In Proceedings of the 14th Annual International Conference on Mobile Systems, Applications, and Services (MobiSys '16). Association for Computing Machinery, New York, NY, USA, 43–56. DOI:https://doi.org/10.1145/2906388.2906406 | |||
14 | 27/9/2021 | Lec:Dev&Prog |
IoT design methodology: Specification and development; Architecture for IoT Middleware: Reference Model, Service-Based IoT, Cloud-Based IoT, Actor-Based IoT, Key Challenges for IoT Middleware |
Optional Reading: Suman Nath. 2012. ACE: exploiting correlation for energy-efficient and continuous context sensing. In Proceedings of the 10th international conference on Mobile systems, applications, and services (MobiSys '12). Association for Computing Machinery, New York, NY, USA, 29–42. DOI:https://doi.org/10.1145/2307636.2307640 |
||
15 | 29/9/2021 | Lec:Comm |
Architecture for IoT Middleware; Protocol stack for IoT: introduction to protocol stack, difference between OSI model and IoT protocol stack, understanding physical and link layer |
|||
16 | 1/10/2021 |
Lec:Comm Pro: Method |
Protocol stack for IoT: introduction to protocol stack, difference between OSI model and IoT protocol stack, understanding physical and link layers | Project: literature review and methodology due | ||
17 | 4/10/2021 | Lec:Comm | Wi-Fi HaLow, Bluetooth Low Energy, | |||
18 | 6/10/2021 | Lec:Comm | IPv4, IPv6, 6LoWPAN | |||
19 | 8/10/2021 | Lec:Comm |
CoAP, MQTT, XMPP
|
|||
9/10/2021 | Pap:Critique due | File | Sougata Sen and David Kotz. 2020. VibeRing: using vibrations from a smart ring as an out-of-band channel for sharing secret keys. In Proceedings of the 10th International Conference on the Internet of Things (IoT '20). Association for Computing Machinery, New York, NY, USA, Article 13, 1–8. DOI:https://doi.org/10.1145/3410992.3410995 | |||
20 | 11/10/2021 | Lec:Comm |
Impact on network performance due to IoTs; Interfacing with Cloud: introduction to cloud services for IoT, Uploading, storing and downloading data to/from IoT devices, |
|||
21 | 12/10/2021 | Lec:Comm | Potential solutions to network performance with NFV, SDN, VMs; Cloud, cloudlets, fogs | Friday routine followed on Tuesday | ||
22 | 13/10/2021 | Lec:ML | Processing data from IoT devices | |||
15/10/2021 | No class | |||||
18/10/2021 | No class | |||||
20/10/2021 | No class | |||||
22/10/2021 | No class | |||||
25/10/2021 | No class | |||||
23 | 27/10/2021 | Lec:tinyML | Introduction to Deep Learning and Tensorflow. | Optional reading: https://petewarden.com/2018/06/11/why-the-future-of-machine-learning-is-tiny/ |
||
24 | 29/10/2021 | Lec:TinyML | Using TensorFlowLite in IoT applications |
Recording (Links to an external site.) |
Optional reading: David, Robert, Jared Duke, Advait Jain, Vijay Janapa Reddi, Nat Jeffries, Jian Li, Nick Kreeger et al. "Tensorflow lite micro: Embedded machine learning on tinyml systems." arXiv preprint arXiv:2010.08678 (2020). https://arxiv.org/abs/2010.08678 |
|
30/10/2021 | Pap:Critique due | File | Swadhin Pradhan and Lili Qiu. 2020. RTSense: passive RFID based temperature sensing. In Proceedings of the 18th Conference on Embedded Networked Sensor Systems (SenSys '20). Association for Computing Machinery, New York, NY, USA, 42–55. DOI:https://doi.org/10.1145/3384419.3430729 | |||
1/11/2021 | No class | |||||
3/11/2021 | No class | |||||
5/11/2021 | No class | |||||
25 | 8/11/2021 |
Lec:TinyML Pap:Critique due |
Using TensorFlowLite in IoT applications | Valentin Radu, Catherine Tong, Sourav Bhattacharya, Nicholas D. Lane, Cecilia Mascolo, Mahesh K. Marina, and Fahim Kawsar. 2018. Multimodal Deep Learning for Activity and Context Recognition. Proc. ACM Interact. Mob. Wearable Ubiquitous Technol. 1, 4, Article 157 (December 2017), 27 pages. DOI:https://doi.org/10.1145/3161174 | ||
26 | 10/11/2021 | Lec:TinyML | Using TensorFlowLite in IoT applications | Hands-on session (if possible) | ||
27 | 12/11/2021 | Lec:Evaluation | Evaluating IoT systems. Understanding user studies, experimental setup, performance measures, data visualization approaches | No Class- Waves | ||
28 | 15/11/2021 |
Lec:Evaluation Pap:Critique due |
Evaluating IoT systems. Understanding user studies, experimental setup, performance measures, data visualization approaches | Paper critiquing: Hoang Truong et al. 2020. Painometry: wearable and objective quantification system for acute postoperative pain. In Proceedings of the 18th International Conference on Mobile Systems, Applications, and Services (MobiSys '20). Association for Computing Machinery, New York, NY, USA, 419–433. DOI:https://doi.org/10.1145/3386901.3389022 | ||
29 | 17/11/2021 | Lec:Wearables | Introduction to wearable computing, challenges in wearable computing, power and memory awareness |
Class discussion on: Likun Fang, Tobias Röddiger, Hongye Sun, Norbert Willenbacher, and Michael Beigl. 2020. FLECTILE: 3D-printable soft actuators for wearable computing. In Proceedings of the 2020 International Symposium on Wearable Computers (ISWC '20). https://doi.org/10.1145/3410531.3414307 (Links to an external site.)
Jingxian Wang, Chengfeng Pan, Haojian Jin, Vaibhav Singh, Yash Jain, Jason I. Hong, Carmel Majidi, and Swarun Kumar. 2019. RFID Tattoo: A Wireless Platform for Speech Recognition. Proc. ACM Interact. Mob. Wearable Ubiquitous Technol. 3, 4, Article 155 (December 2019), 24 pages. https://doi.org/10.1145/3369812 (Links to an external site.)
Sougata Sen, Sunghoon Ivan Lee, Robert Jackson, Rui Wang, Nabil Alshurafa, Josiah Hester, and Jeremy Gummeson. 2020. Towards Battery-Free Body Sensor Networks. In Proceedings of the 8th International Workshop on Energy Harvesting and Energy-Neutral Sensing Systems (ENSsys '20). https://doi.org/10.1145/3417308.3430275 (Links to an external site.) |
||
30 | 18/11/2021 | Lec:Wearables | Introduction to wearable computing, challenges in wearable computing, power and memory awareness |
Friday’s Time Table to be followed
Class discussion on:
T. Starner, "The challenges of wearable computing: Part 2," in IEEE Micro, vol. 21, no. 4, pp. 54-67, July-Aug. 2001, doi: 10.1109/40.946683. |
||
31 | 22/11/2021 | Lec:Battery-free | Introduction to intermittent computing. Understanding breakpoints during limited power availability. Use cases | Class discussion on: Lucia, Brandon, Vignesh Balaji, Alexei Colin, Kiwan Maeng, and Emily Ruppel. "Intermittent computing: Challenges and opportunities." In 2nd Summit on Advances in Programming Languages (SNAPL 2017). Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, 2017. Umesh, Sumanth, and Sparsh Mittal. "A survey of techniques for intermittent computing." Journal of Systems Architecture 112 (2021): 101859. https://www.sciencedirect.com/science/article/pii/S1383762120301430 |
||
32 | 24/11/2021 | Lec:Battery-free | Introduction to intermittent computing. Understanding breakpoints during limited power availability. Use cases |
Class discussion on: Seulki Lee, Bashima Islam, Yubo Luo, and Shahriar Nirjon. 2019. Intermittent Learning: On-Device Machine Learning on Intermittently Powered System. Proc. ACM Interact. Mob. Wearable Ubiquitous Technol. 3, 4, Article 141 (December 2019), 30 pages. DOI:https://doi.org/10.1145/3369837 |
||
33 | 26/11/2021 | Lec:Security | Introduction to security protocols for IoT. Application Security, approaches to preserve privacy, federated learning |
Class discussion on: Ammar, Mahmoud, Giovanni Russello, and Bruno Crispo. "Internet of Things: A survey on the security of IoT frameworks." Journal of Information Security and Applications 38 (2018): 8-27. |
||
34 | 29/11/2021 | Lec:Security | Introduction to security protocols for IoT. Application Security, approaches to preserve privacy, federated learning |
Class discussion on: David Kotz and Travis Peters. 2017. Challenges to ensuring human safety throughout the life-cycle of Smart Environments. In Proceedings of the 1st ACM Workshop on the Internet of Safe Things (SafeThings'17). DOI:https://doi.org/10.1145/3137003.3137012 |
||
35 | 1/12/2021 |
Lec:Case-Study
|
IoT design case studies: smart lighting, weather monitoring, forest fire detection, smart irrigation, IoT printer, IoT Health Care. |
H. -N. Dai, Z. Zheng and Y. Zhang, "Blockchain for Internet of Things: A Survey," in IEEE Internet of Things Journal, vol. 6, no. 5, pp. 8076-8094, Oct. 2019, doi: 10.1109/JIOT.2019.2920987. | ||
36 | 3/12/2021 | Pro: Presentation | Project Presentation by Groups 1,2,3,4,5 | |||
37 | 6/12/2021 | Pro: Presentation | Project Presentation by Groups 6,7,8,9,10 | |||
38 | 8/12/2021 |
Pro: Presentation Pro:Final |
Project Presentation as demo session by all Groups: Open to all | Research paper of project | Recording (Links to an external site.) |
Tools
Communication : SlackLMS: Canvas
Class: Google Meet