
ECE 479: IoT and Cognitive Computing
Spring 2023
Course Information
This course includes in-depth coverage of existing and emerging IoT application domains, machine learning and deep neural networks, GPU and FPGA programming, optimization techniques for deep learning acceleration, and various computing systems that facilitate the rapid realization and growth of IoT. Detailed topics include the definition and characteristics of IoT; IoT enabling technologies; smart domains and applications; IoT systems; IoT design methodology; machine learning and deep learning; embedded 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.
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: 1310 Digital Computer Laboratory
Lab Location: 4022 Electrical & Computer Eng Bldg
Instructors
TAs
Syllabus
Click here to access the syllabus.
Office Hours
- Professor Chen: Tuesdays 4:00 pm - 5:00 pm at CSL 250
- Neo Yuan: Mondays 3:00 pm - 4:00 pm at ECEB 4022
- Yuhong Li: Tuesdays 2:00 pm - 4:00 pm at ECEB 4022
- Greg Jun: Thursdays 2:00 pm - 3:00 pm at CSL 403
- Junhao Pan: Fridays 10:00 am - 12:00 pm at ECEB 4022
Labs
- Session 1: Mondays 10 am - 11:50 am. TA: Junhao Pan
- Session 2: Mondays 1 pm - 2:50 pm. TA: Neo Yuan, Greg Jun
- Session 3: Mondays 4 pm - 5:50 pm. TA: Yuhong Li
Lab 1
- Lab 1 document: Lab 1
- Demo: Mon, Feb 13, in your lab sessions; Report due: Tues, Feb 14, 11:59 PM.
- Jan 23 Lab slides: Slides
Lab 2
- Lab 2 document: Lab 2
- Demo: Mon, Mar 27, in your lab sessions; Report due: Tues, Mar 28, 11:59 PM.
Lab 3
- Lab 3 document: Lab 3
- Lab 3 Mini-lab FPGA: Instructions, Code
- Proposal due: April 7th, 11:59 PM
- Checkpoint: April 17th
- In-class presentation: Schedule
- Final Demo: May 1st
- Report due: May 2nd, 11:59 PM
Homework
HW1
- Homework 1 is released, due 2/7 11:59 pm
- Homework 1 Answers
HW2
- Homework 2 is released, due 3/7 11:59 pm
- Homework 2 Answers
HW3
- Homework 3 is released, due 4/23 11:59 pm
- Homework 3 Answers
Exam
- Midterm Exam: 3/9 11:00 AM - 12:20 PM in class
- Practice midterm
Lectures
Date | Title | Slides | Reference |
---|---|---|---|
Jan. 17 | Lecture 01: Course Introduction | [slides] | |
Jan. 19 | Lecture 02: Introduction to IoT programming | [slides] | |
Jan. 24 | Lecture 03: Introduction of Cognitive Computing and ML | [slides] | [recording] |
Jan. 26 | Lecture 04: IoT Enabling Technologies and IoT Devices | [slides] | [recording] |
Jan. 31 | Lecture 05: Data Exploration and Feature Engineering | [slides] | [recording] |
Feb. 2 | Lecture 06: Regression and KNN | [slides] | [recording] |
Feb. 7 | Lecture 07: Clustering and SVM for Classification | [slides] | [recording] |
Feb. 9 | Lecture 08: ANN: Perceptron, Logistic Regression, and MLP | [slides] | [recording] |
Feb. 16 | Lecture 09: Deep Neural Networks | [slides] | [recording] |
Feb. 21 | Lecture 10: Introduction to TensorFlow & PyTorch | [slides] | [recording] |
Feb. 23 | Lecture 11: Introduction to TensorFlow Lite & Edge TPU | [slides] | [recording] |
Feb. 28 | Lecture 12: DNN Compression & Quantization | [slides] | [recording] |
Mar. 2 | Lecture 13: Modern DNNs for Classification, Detection and NLP | [slides] | [recording] |
Mar. 7 | Midterm Review | [recording] | |
Mar. 21 | Lecture 15: Introduction to GPU Architecture & Programming | [slides] | [recording] |
Mar. 23 | Lecture 16: Latest GPU Architecture and Embedded GPUs | [slides] | [recording] |
Mar. 28 | Lecture 17: FPGA Computing with HLS | [slides] | [recording] |
Mar. 30 | Lecture 18: Embedded FPGAs, PYNQ Environment | [slides] | [recording] |
Apr. 4 | Lecture 19: Co-design for Hardware Efficient DNN and DAC System Design Contest | [slides] | [recording] |
Apr. 6 | Lecture 20: Lab 3 Introduction and Examples | [slides] | [recording] |
Apr. 11 | Lecture 21: Transformer and ChatGPT | [slides] | [recording] |
Apr. 13 | Lecture 22: IoT Security: A hardware and architecture-level overview | [slides] | [recording] |
Apr. 18 | Lecture 23: IoT Cybersecurity | [slides] | [recording] |
Apr. 20 | Lecture 24: Trusted Execution Environment for Accelerators | [slides] | [recording] |
Apr. 25 | Lecture 25: Lab 3 Presentation 1 | [slides] | [recording] |
Apr. 27 | Lecture 26: Lab 3 Presentation 2 | [slides] | [recording] |
May. 2 | Lecture 27: Final Review | [recording] |
Q & A
We use Piazza for Q & A.