This course covers existing and emerging IoT application domains, high-level programming for IoT devices, machine learning algorithms, and various computing systems that facilitate the rapid realization and growth of IoT. Topics include definition and characteristics of IoT; IoT enabling technologies; smart domains and applications; IoT systems; IoT design methodology; embedded GPU and FPGA for IoT; IoT servers and cloud; data analytics for IoT, cognitive computing, cognitive systems design, cognitive application workload, and various case studies such as smart city, smart agriculture, machine translation, and video captioning. Machine problems working with Raspberry Pi, hardware (FPGA and GPU), Amazon cloud, and IBM Node-RED and TJBot, together with homework assignments will be given to reinforce the understanding of the techniques and topics and train the students with practical skills.
Lecture Time: Tuesdays and Thursdays 11 am - 12:20 pm
Lecture Location: ECEB 1013
Location: ECEB 4022
- Session 1: Mondays 10 am - 11:55 am. TA: Qin Li.
- Session 2: Mondays 1 pm - 2:55 pm. TA: Vibhakar V Vemulapati.
- Session 3: Wednesdays 10 am - 11:55 am. TA: Anand Ramachandran, Xiaofan Zhang.
- Session 4: Wednesdays 1 pm - 2:55 pm. TA: Ashutosh Dhar, Yuhong Li.
- Lab 1 document: Lab 1
- Part III provided code: lab1_solver.py
- Demo: Feb 4 and Feb 6, in your lab session; Report due: Feb 7, 11:59 PM.
- Lab 2 document: Lab 2
- Demo: Feb 25 and Feb 27, in your lab session; Report due: Feb 28, 11:59 PM.
- Lab 3 document: Lab 3
- Part II provided code: lab_3_part2.zip
- Demo: April 1 and April 3, in your lab session; Report due: April 4, 11:59 PM.
- Lab 4 document: Lab 4
- Demo: April 29 and May 1, in your lab session; Report due: May 2, 11:59 PM.
- HW 1 document: HW 1
- Question 4 provided code: fire_detect.py
- Due in class on Feb. 12, 2019
- HW1 Solution: hw1_solution.pdf
|Jan. 15||Lecture 01: Introduction to IoT and Cognitive Computing||[slides]|
|Jan. 17||Lecture 02: Introduction to Raspberry Pi and Python||[slides]|
|Jan. 22||Lecture 03: IoT Enabling Technologies||[slides]|
|Jan. 24||Lecture 04: Introduction of IoT devices||[slides]|
|Jan. 29||Lecture 05: Smart domains and applications||[slides]|
|Jan. 31||Lecture 06: IoT Levels and Performance/Power Modeling||[slides]|
|Feb. 5||Lecture 07: Data Analytics for IoT Basics||[slides]|
|Feb. 7||Lecture 08: Data Analytics for IoT Regression & ANN-based Classification - Part 1||[slides]|
|Feb. 12||Lecture 09: Data Analytics for IoT Regression & ANN-based Classification - Part 2, TensorFlow||[slides]|
|Feb. 14||Lecture 10: FPGA for IoT - Part 1||[slides]|
|Feb. 19||Lecture 11: FPGA for IoT - Part 2||[slides]|
|Feb. 21||Lecture 12: DNN Compression and DAC Competition||[slides]|
|Lecture 13/14: GPU Programming|
|Mar. 5||Lecture 15: IoT Programming via Node-RED||[slides]|
|Mar. 7||Lecture 16: IoT Programming at Scale||[slides]|
|Mar. 14||Lecture 18: Convolutional Neural Networks on GPUs||[slides]|
|Mar. 26||Lecture 19: cuDNN, DL Frameworks||[slides]|
|Mar. 28||Lecture 20: DL Model Tools||[slides]|
|April 4||Lecture 21: Introduction to Lab 4 and Design Strategies||[slides]|
|April 9||Lecture 22: Acceleration on the Server-Scale POWER Platform||[slides]|
|April 11||Lecture 23: Near Memory Acceleration||[slides]|
|April 16||Lecture 24: Special Hardware for DNNs||[slides]|
|April 18||Lecture 25: GPU Tensor Cores||[slides]|
|April 23||Lecture 26: IoT Security: A hardware- and architecture-level overview||[slides]|
|April 25||Lecture 27: Guest Lecture by Prof. Michael Bailey||[slides]|
|April 30||Lecture 28: Summary||[slides]|
We use Piazza for Q & A.