Course Information
This course includes in-depth coverage on existing and emerging IoT application domains, machine learning and deep neural networks, TPU (tensor processing unit), GPU, and FPGA programming and optimization techniques for deep learning acceleration, and various computing systems that facilitate the rapid realization and growth of IoT. Detailed topics include definition and characteristics of IoT; IoT enabling technologies; smart domains and applications; IoT systems; IoT design methodology; machine learning and deep learning; embedded TPU, GPU and FPGA for IoT; IoT servers and cloud; data analytics for IoT; cognitive computing; cognitive systems design; cognitive application workload; IoT security; hands-on learning experience to build IoT systems; and various case studies such as smart home and IoT for healthcare. Three lab projects are designed for working with Raspberry Pi, edge TPU, and cloud computing with increasing complexities. Specifically, Lab 3 offers structured flexibility for students to design and experiment with their own IoT systems.
Machine problems working with Raspberry Pi, edge TPU, and cloud computing, together with homework assignments will be given to reinforce students' understanding and learning of the techniques and topics.
Lecture Time: Tuesdays and Thursdays 11 am - 12:20 pm
Lecture Location: 114 Transportation Building
Lab Location: 4022 Electrical & Computer Eng Bldg
Instructors
TAs
Junhao Pan
jpan22@illinois.edu
Yuhong Li
leeyh@illinois.edu
Neo Yuan
zehuay2@illinois.edu
Gregory Jun
hgjun2@illinois.edu
Syllabus
Click here to access the syllabus.
Office Hours
- Professor Chen: Tuesdays 4:00 pm - 5:00 pm at CSL 250
- Professor Kindratenko: Fridays 4:00 pm - 5:00 pm at NCSA 3050E
- Neo Yuan: Mondays & Wednesdays 9:00 am - 10:00 am at ECEB 4022
- Greg Jun: Wednesdays 2:00 pm - 3:00 pm at CSL 403
- Yuhong Li: Tuesdays 2:00 pm - 4:00 pm at ECEB 4022
- Junhao Pan: Thursdays & Fridays 1:00 pm - 2:00 pm at ECEB 4022
Labs
- Session 1: Mondays 10 am - 11:50 am. TA: Neo Yuan
- Session 2: Mondays 1 pm - 2:50 pm. TA: Yuhong Li
- Session 3: Mondays 4 pm - 5:50 pm. TA: Junhao Pan, Greg Jun
Lab 1
- Lab 1 document: Lab 1
- Demo: Mon, Feb 12, in your lab sessions; Report due: Mon, Feb 12, 11:59 PM on Canvas.
Lab 2
- Lab 2 document: Lab 2
- Demo: Mon, Mar 18, in your lab sessions; Report due: Wed, Mar 20, 11:59 PM.
Lab 3
- Lab 3 document: Lab 3
- Lab 3 Mini-lab FPGA: Instructions, Code
- Proposal due: March 31th, 11:59 PM
- Middle Checkpoint: April 15th
- In-class presentation: April 18th, 23rd, and 25th<\li>
- Presentation Schedule, Presentation Upload
- Final Demo: May 6th
- Report due: May 6th, 11:59 PM
Homework
HW1
- Homework 1 is released, due 2/7 11:59 pm on Canvas.
- Homework 1 LaTex Source
- Please type your answers as much as you can and submit one pdf.
- Homework 1 Answers will be released soon.
- Homework 1 Answers
HW2
- Homework 2 is released, due 3/1 11:59 pm
- Homework 2 LaTex Source
- Please type your answers as much as you can and submit one pdf.
- Homework 2 Answers
HW2
- Homework 2 is released, due 3/1 11:59 pm
- Homework 2 LaTex Source
- Please type your answers as much as you can and submit one pdf.
- Homework 2 Answers
HW3
- Homework 3 is released, due 4/15 11:59 pm
- Homework 3 LaTex Source
- Please type your answers as much as you can and submit one pdf.
- Homework 3 Answers
Exam
- Midterm Exam: 3/5 11:00 AM - 12:20 PM in class
- Practice midterm
- Practice midterm answers
- Midterm Answers
Quiz
Lectures
Date | Title | Slides | Reference |
---|---|---|---|
Jan. 16 | Lecture 01: Course Introduction | [slides] | |
Jan. 18 | Lecture 02: Introduction to IoT programming | [slides] | |
Jan. 23 | Lecture 03: Introduction of Cognitive Computing and ML | [slides] | [recording] |
Jan. 25 | Lecture 04: IoT Enabling Technologies and IoT Devices | [slides] | |
Jan. 30 | Lecture 05: Data Exploration and Feature Engineering | [slides] | |
Feb. 1 | Lecture 06: Regression and KNN | [slides] | |
Feb. 6 | Lecture 07: Clustering and SVM for Classification | [slides] | |
Feb. 8 | Lecture 08: ANN: Perceptron, Logistic Regression, and MLP | [slides] | |
Feb. 13 | Lecture 09: Deep Neural Networks | [slides] | |
Feb. 15 | Lecture 10: Introduction to TensorFlow & PyTorch | [slides] | |
Feb. 20 | Lecture 11: Introduction to TensorFlow Lite & Edge TPU | [slides] | |
Feb. 22 | Lecture 12: DNN Compression & Quantization | [slides] | |
Feb. 27 | Lecture 13: Modern DNNs for Classification, Detection and NLP | [slides] | |
Mar. 7 | Lecture 15: Introduction to GPU Architecture & Programming | [slides] | |
Mar. 19 | Lecture 16: Latest GPU Architecture and Embedded GPUs | [slides] | > |
Mar. 21 | Lecture 17: FPGA Computing with HLS | [slides] | |
Mar. 26 | Lecture 18: Lab 3 Introduction and Examples | [slides] | |
Mar. 28 | Lecture 19: Co-design for Hardware Efficient DNN and DAC System Design Contest | [slides] | |
Apr. 2 | Lecture 20: Embedded Systems for IoT: Embedded FPGAs, GPUs, and Others | [slides] | |
Apr. 4 | Lecture 21: Transformer and ChatGPT | [slides] | |
Apr. 9 | Lecture 22: IoT Security: A hardware and architecture-level overview | [slides] | |
Apr. 11 | Lecture 23: IoT Cybersecurity | [slides] | |
Apr. 16 | Lecture 24: Trusted Execution Environment for Accelerators | [slides] | |
Apr. 30 | Lecture 25: Final Review | [recording] |
Q & A
We use Campuswire for Q & A. Please register with code 9947.