Course Information
This course includes in-depth coverage on existing and emerging IoT application domains, machine learning with neural networks, hardware programming and optimization techniques for acceleration, and other various computing systems that facilitate the rapid realization and growth of IoT.
We cover a wide range of relevant topics on IoT and Cognitive computing, including definition and characteristics of IoT, IoT-enabling technologies, smart domains and applications, IoT systems and design methodology, embedded hardware devices for IoT, data analytics for IoT, IoT security, machine learning algorithms, cognitive systems and design methodology, cognitive application workload, and case studies such as smart city, smart agriculture, and smart home.
We have a series of homework and lab assignments this semester. Homework aims to summarize and reinforce the materials and knowledge which we cover in the lectures. In the lab assignments, we work with Raspberry Pi and Edge TPU to construct a smart IoT system. We have designed three labs that guide the students step-by-step toward a complete IoT system that involves machine learning, hardware acceleration, and IoT system integration.
Due to the COVID-19 pandemic, we offer this course online synchronously via Zoom this semester. We will arrange the required devices and materials to be distributed by the college. The office hours and lab sessions are also held online via Zoom. We also encourage students to post questions and discuss the materials on Piazza.
Lecture Time: Tuesdays and Thursdays 11 am - 12:20 pm
Lecture Location: Link to Zoom
Instructors
TAs
Syllabus
Click here to access the syllabus.
Office Hours
- Professor Chen or Professor Xiong: 3 am - 4 pm on Tuesday
- Mang Yu: 1 pm - 3 pm on Friday
- Jack Li: 9:30 am - 10:30 am on Wednesday and 3:00 pm - 4:00 pm on Thursday
- Junhao Pan: 1 pm - 3 pm on Tuesday
Labs
- Session 1: Mondays 10 am - 11:55 am. TA: Junhao Pan, Mang Yu
- Session 2: Mondays 1 pm - 2:55 pm. TA: Jack Li, Mang Yu
Lab 1
- Lab 1 document and materials.
- 02/01 Morning Lab recording is here. Afternoon Lab recording is here.
- 02/08 Morning Lab recording is here. Afternoon Lab recording is here.
- 02/22 Afternoon Lab recording is here.
Lab 2
- Lab 2 document and materials.
- 03/01 Morning Lab recording is here. Afternoon Lab recording is here.
- 03/15 Afternoon Lab recording is here.
Lab 3
- Lab 3 document, Node-RED template, and extra credit track 1 material.
- 04/05 Morning Lab recording is here. Afternoon Lab recording is here.
Homework
HW1
- 02/04 Homework 1 is released
- 03/01 Solution to Homework 1 is released
HW2
- 03/01 Homework 2 is released
- 03/14 Solution to Homework 2 is released
HW3
- 04/08 Homework 3 is released
- 05/04 Solution to Homework 3 is released
Exam
- Midterm Exam: 3/16 11:00 AM - 12:20 PM
- 04/13 Midterm grade released on Compass
- Midterm solution
- Final Exam: 5/9 8:00 AM - 11:00 AM
- Final Exam Questions Released
Lectures
Date | Title | Slides | Reference |
---|---|---|---|
Jan. 26 | Lecture 01: Course Introduction | [slides] | [recording] |
Jan. 28 | Lecture 02: IoT-Enabling Technologies and Devices | [slides] | [recording] |
Feb. 2 | Lecture 03: Introduction to Sensor Programming, Python, and Raspberry Pi | [slides] | [recording] |
Feb. 4 | Lecture 04: Introduction of Cognitive Computing and ML | [slides] | [recording] |
Feb. 9 | Lecture 05: Data Exploration and Feature Engineering | [slides] | [recording] |
Feb. 11 | Lecture 06: Regression and KNN | [slides] | [recording] |
Feb. 16 | Lecture 07: Clustering and SVM for Classification | [slides] | [recording] |
Feb. 18 | Lecture 08: ANN: Perceptron, Logistic Regression, and MLP | [slides] | [recording] |
Feb. 23 | Lecture 09: Deep Neural Networks | [slides] | [recording] |
Feb. 25 | Lecture 10: Introduction to TensorFlow & PyTorch | [slides] | [recording] |
Mar. 2 | Lecture 11: Introduction to TensorFlow Lite & Edge TPU | [slides] | [recording] |
Mar. 4 | Lecture 12: DNN Compression & Quantization | [slides] | [recording] |
Mar. 9 | Lecture 13: Modern DNNs for Classification, Detection and NLP | [slides] | [recording] |
Mar. 11 | Lecture 14: Midterm Review | [recording] | |
Mar. 18 | Lecture 15: Smart Systems for IoT | [slides] | [recording] [Midterm] |
Mar. 23 | Lecture 16: Cloud and Edge Computing in IoT & IoT Programming via Node-RED | [slides] | [recording] |
Mar. 25 | Lecture 17: IoT Programming at Scale | [slides] | [recording] |
Mar. 30 | Lecture 18: Introduction to GPU Programming | [slides] | [recording] |
Apr. 1 | Lecture 19: Latest GPU Architecture and Embedded GPUs | [slides] | [recording] |
Apr. 6 | Lecture 20: FPGA for IoT Computing | [slides] | [recording] |
Apr. 8 | Lecture 21: Embedded FPGA, PYNQ Environment | [slides] | [recording] |
Apr. 15 | Lecture 22: DNN Inference Acceleration with FPGA and Roofline Model | [slides] | [recording] |
Apr. 20 | Lecture 23: Co-design for Hardware Efficient DNN (SkyNet) and DAC System Design Contest | [slides] | [recording] |
Apr. 22 | Lecture 24: IoT Security: A hardware and architecture-level overview | [slides] | [recording] |
Apr. 27 | Lecture 25: IoT Cybersecurity | [slides] | [recording] |
Apr. 29 | Lecture 26: The AI Revolution - A Tale of Three NAIS Areas | [slides] | [recording] |
May 4 | Lecture 27: Final Review | [recording] |
Q & A
We use Piazza for Q & A.