Course Syllabus

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.

Course Staff

Instructors

Prof. Volodymyr Kindratenko

Graduate Teaching Assistants

Henry Gillespie (henryag2@illinois.edu)
Gregory Jun (hgjun2@illinois.edu)
Junhao Pan (jpan22@illinois.edu)
Neo Yuan (zehuay2@illinois.edu)

Class Time and Location

AL: 3017 ECEB, Tuesdays and Thursdays, 12:30pm - 13:50pm US Central Time by Prof. Volodymyr Kindratenko. Lectures will be recorded and posted on Mediaspace.

AB1 LAB: 4022 ECEB, Mondays, 10:00am - 11:50am; TA: Gregory Jun
AB2 LAB: 4022 ECEB, Mondays, 1:00pm - 2:50pm; TA: Neo Yuan
AB3 LAB: 4022 ECEB, Mondays, 4:00pm - 5:50pm; TA: Henry Gillespie

Reading Materials

Main reference book: Python Machine Learning: Machine Learning and Deep Learning with Python, Scikit-learn, and TensorFlow, 3nd Edition by Sebastian Raschka, Vahid Mirjalili

Secondary reference book: Internet of Things (A Hands-on-Approach), by Arshdeep Bahga, Vijay Madisetti

Getting Help

Office hours

Course instructor and TAs will have office hours offered in-person and on-line starting on the second week of the semester (week of 1/27). Watch this space for updates.

Discussion board

We will use Campuswire for Q&A. Sign up here if you are not yet enrolled. (You will be asked for a verification code, which is 2186.)

Course chatbot

Yes, we are providing a GPT-4 powered AI chatbot trained on ECE 479 course materials! You are welcome to use it to learn, not to cheat! You can start by asking the chatbot how to succeed in this class. :)

Please read this disclaimer before using the chatbot, this a very experimental technology and you must understand its limitations and agree to the provisions outlined in the disclaimer. 

You can use the chatbot in a couple of ways, just follow the corresponding links:

  • Q&A chatbot - in this mode the chatbot gives direct answers to the questions based on the course-related documentation.
  • Guided learning chatbot - in this mode the chatbot attempts to guide you toward the answer. This is a good way to get help so you can learn.

Grading

Grads and undergrads in the same grading pool. All grades will be posted in Canvas.

  • Midterm Exam: 20%
  • Final Exam: 25%
  • Labs: 35%
    • Lab 1: 7%; Lab 2: 10%; Lab 3: 18%
  • Homework: 12%
    • 3 homework assignments, each worth 4%
  • Popup in-class quizzes: 8%
    • 8 quizzes, 1% each

Late Submission

  • All lab reports and homework assignments will be due at 11:59 PM on the due date. Late submissions will be accepted with a 30 percent per day penalty (1 day = 70%, 2 days = 40%, 3 days = 10%, 4+ = 0%).
  • In the event of unexpected illness, job interviews, and family matters, students can contact the teaching staff with requests for extensions on assignments. For general conflicts, such as interviews, you must request an extension at least 48 hours before the assignment due date. For unexpected matters, such as sudden illness, shorter notice is acceptable with documentation (IE: a doctor’s note following an illness).

Lecture Schedule

Lecture slides can be found here. Reading materials can be found here and here. Lecture recordings can be found here.

Week Date  Activity Topic Reading
1 1/21/25 Lecture 1 Course Introduction Bahga & Madisetti, Chapter 1
1/23/25 Lecture 2 Introduction to IoT programming Bahga & Madisetti, Chapter 6
2 1/28/25 Lecture 3 Introduction of Cognitive Computing and ML Raschka & Mirjalili, Chapter 1
1/30/25 Lecture 4 IoT Enabling Technologies and IoT Devices
3 2/4/25 Lecture 5 Data Exploration and Feature Engineering
2/6/25 Lecture 6 Regression and KNN
4 2/11/25 Lecture 7 Clustering and SVM for Classification
2/13/25 Lecture 8 ANN: Perceptron, Logistic Regression, and MLP
5 2/18/25 Lecture 9 Deep Neural Networks
2/20/25 Lecture 10 Introduction to TensorFlow & PyTorch
6 2/25/25 Lecture 11 Introduction to TensorFlow Lite & Edge TPU
2/27/25 Lecture 12 DNN Compression & Quantization
7 3/4/25 Lecture 13 Modern DNNs for Classification, Detection and NLP
3/6/25 Lecture 14 Review for midterm
8 3/11/25 Midterm
3/13/25 Lecture 15 Introduction to GPU Architecture & Programming
Spring Break
9 3/25/25 Lecture 16 Latest GPU Architecture and Embedded GPUs
3/27/25 Lecture 17 Lab 3 Introduction and Examples
10 4/1/25 Lecture 18 FPGA Computing with HLS
4/3/25 Lecture 19 Co-design for Hardware Efficient DNN and DAC System Design Contest
11 4/8/25 Lecture 20 Embedded Systems for IoT: Embedded FPGAs, GPUs, and Others
4/10/25 Lecture 21 Transformer and ChatGPT
12 4/15/25 Lecture 22 IoT Security: A hardware and architecture-level overview

4/17/25

Lecture 23

IoT Cybersecurity

13 4/22/25 Lecture 24 Trusted Execution Environment for Accelerators
4/24/25 Student presentations for Lab 3 (1)
14 4/29/25 Student presentations for Lab 3 (2)
5/1/25 Student presentations for Lab 3 (3)
15 5/6/25 Lecture 25 Review for final exam
5/12/25 Final Exam

Assignments

Labs

Three structured machine-problem labs:

  1. Learn the basics of Python programming and NumPy library; practice Python programming skills with basic image processing operations, including image cropping, Gaussian Filtering, up/down sampling; implement classical data analytics algorithms with Python and NumPy; and practice REST communications with Python API.
  2. Familiarize with the Raspberry Pi 4 system; learn CNN (convolutional neural network) training and inferencing of FashionNet with TensorFlow/Keras; practice neural network quantization and deploy the quantized model on Coral edge TPU for acceleration; develop CNNs for facial detection and identification.
  3. Design and implement an IoT or cognitive computing system for real applications. There are two different tracks for students to choose from. One will focus on designing an IoT system based on the Raspberry Pi + edge TPU kit; the other will focus on accelerating cognitive computing applications on various computing platforms including GPUs and FPGAs. Student can pick either one of the two tracks. There will be in-class presentations by each team.
Release date Demo date (in your lab sessions) Report due (on Canvas by midnight) Lab files
Lab 1 1/23/25 (Th) 2/17/25 (M) 2/19/25 (W) lab1
Lab 2 2/18/25 (T) 3/24/25 (M) 3/26/25 (W)
Lab 3 3/25/25 (T) 5/5/25 (M) 5/7/25 (W)
Proposal due: 3/30/35 (Su) Middle Checkpoint: 4/22/25 (M) In-class presentation: 4/24/25 (Th), 4/29/25 (T), 5/1/25 (Th)

Homework

Please type your answers as much as you can and submit one pdf via Canvas.

Release date Due date HW files
HW 1 1/30/25 (Th) 2/12/25 (W)
HW 2 2/20/25 (Th) 3/5/25 (W)
HW 3 3/27/25 (Th) 4/16/25 (W)

Exams

There are two exams in total: midterm and the final exam.

Midterm Exam Final Exam

When: 12:30-13:50pm, Tuesday, March 11

Where: in class

What: TBD

How: paper-based 

Alternative Exam Time: as arranged  

Study materials: see Files/MT

When: 1:30-4:30pm, Monday, May 12

Where: TBD

What: TBD

How: paper-based

Alternative Exam Time: as arranged  

Study materials: see Files/Final

Cheating and Academic Integrity

We take cheating very seriously. If we catch you cheating, or helping someone cheat, the penalty will not be less than a zero on the applicable assignment and the incident will be reported to the College.

The Student Code defines cheating as:

Using or attempting to use in any academic exercise materials, information, study aids, or electronic data that the student knows or should know is unauthorized (§1-402(a))

and notes that:

Substantial portions of the same academic work may not be submitted for credit more than once or by more than one student without authorization. (§1-402(a)(4))

The student code also disallows facilitation of cheating, prohibiting

Helping or attempting to help another to commit an infraction of academic integrity, where one knows or should know that through one’s acts or omissions such an infraction may be facilitated. (§1-402(c))

Cheating is an offense to the entire academic ecosystem: you, your classmates, and the course staff. It creates extra work for the course staff, it creates grading imbalances for your classmates, and it prevents you from learning the material that the rest of your academic career is built on.