ECE 479
ECE 479 - IoT and Cognitive Computing
Spring 2025
| Title | Rubric | Section | CRN | Type | Hours | Times | Days | Location | Instructor |
|---|---|---|---|---|---|---|---|---|---|
| IoT and Cognitive Computing | ECE479 | AB1 | 73609 | LAB | 0 | 1000 - 1150 | M | 4022 Electrical & Computer Eng Bldg | Volodymyr Kindratenko Gregory Jun |
| IoT and Cognitive Computing | ECE479 | AB2 | 73610 | LAB | 0 | 1300 - 1450 | M | 4022 Electrical & Computer Eng Bldg | Volodymyr Kindratenko Neo Yuan |
| IoT and Cognitive Computing | ECE479 | AB3 | 73611 | LAB | 0 | 1600 - 1750 | M | 4022 Electrical & Computer Eng Bldg | Volodymyr Kindratenko Henry Aaron Gillespie |
| IoT and Cognitive Computing | ECE479 | AL | 73445 | LEC | 4 | 1230 - 1350 | T R | 3017 Electrical & Computer Eng Bldg | Volodymyr Kindratenko |
See full schedule from Course Explorer
Official Description
Subject Area
- AI: AI Software and Hardware Systems
Course Director
Goals
The aim of this course is to provide an introduction to the design and implementation of IoT systems, including elements of cognitive computing, data analytics, and machine learning. Through laboratory assignments and homework assignments, students have an opportunity to build IoT systems for various application domains and explore elements of cognitive computing in the context of IoT architecture.
Topics
- 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
- Machine learning and deep learning
- Cognitive computing
- Cognitive systems design
- Cognitive application workloads
- IoT security
Detailed Description and Outline
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.
Computer Usage
Machine problems involve working with Raspberry Pi, edge TPU, FPGA and GPU development boards, and cloud computing.
Reports
Laboratory assignments require submitting detailed reports.
Lab Projects
Three structured machine-problem labs:
- 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.
- 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.
- 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.
Lab Equipment
- Raspberry Pi + edge TPU kit
- GPUs and FPGAs
- Other specialized edge computing platforms, sensors, actuators
- Cloud computing
Lab Software
- Python-based development tools
- SDKs and APIs for specific development kits
Topical Prerequisites
C programming, Basic data structures, Introduction to computer organization
Texts
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
Required, Elective, or Selected Elective
Elective
Course Goals
This course provides an introduction to the fields of IoT and cognitive computing, enabling students to design, implement, and evaluate IoT solutions with elements of cognitive computing using various edge devices and cloud computing infrastructure.
Instructional Objectives
By the end of this course, students will be able to:
- Understand the Foundations of IoT and Cognitive Computing (1)
- Define the Internet of Things and cognitive computing, and explain their key characteristics and enabling technologies.
- Analyze and Design IoT Systems (2)
- Apply IoT design methodologies to develop systems across smart domains such as smart cities, smart homes, and healthcare.
- Implement Machine Learning and Deep Learning Techniques (2)
- Utilize machine learning and deep learning models in the context of IoT applications.
- Leverage Embedded and Cloud Technologies (1, 7)
- Employ embedded GPUs, FPGAs, and cloud-based servers to support IoT system functionality and scalability.
- Apply Data Analytics in IoT Contexts (6)
- Use data analytics tools and techniques to extract insights from IoT-generated data.
- Design and Evaluate Cognitive Systems (2, 6)
- Develop cognitive computing applications and evaluate their workloads and system designs.
- Address IoT Security Challenges (1, 7)
- Identify and mitigate security risks in IoT systems.
- Gain Hands-On Experience with Real Devices (5, 7)
- Build and test IoT systems through lab-based machine problems using actual IoT computing devices.
- Integrate Knowledge Through Case Studies (1, 2, 6, 7)
- Analyze real-world case studies to understand the practical applications and challenges of IoT and cognitive computing.