Academics
  /  
Courses
  /  
Descriptions
COMP_ENG 395, 495: Internet of Things and Edge Computing


VIEW ALL COURSE TIMES AND SESSIONS

Prerequisites

Helpful but not required: experience with embedded systems and microprocessors (e.g. COMP_ENG 346, 347, 366, 355), basic understanding of signals and systems (e.g. COMP_SCI 213, ELEC_ENG 222); knowledge of communication systems (e.g. ELEC_ENG 307) and data structures (e.g. COMP_SCI 214).

Description

Edge Computing is a new paradigm shift in IoT systems, where computing occurs within (or near) a IoT device or sensor. Devices have become increasingly more connected with the ability to transmit data to the cloud or centralized servers. Should collected data be sent off to the cloud? Should it be kept local at the “edge”? Where should computation be performed? When designing a connected device, there are numerous tradeoffs regarding where the compute should occur, how data is transmitted, what data is needed where, etc.

This course presents a view of the tasks required in connected systems beginning with data collection, storage and movement of data, and tradeoffs regarding computing on data at the “edge” rather than in the cloud or centralized servers. The course focuses on developing the necessary skillsets to solve real-world design challenges for IoT and connected applications, using industry-standard methodologies.

We will first explore collecting input data from sensors, using hands-on labs with basic sensors such as temperature sensors and accelerometer data. We will then discuss storage of the data and design decisions related to where the stored data should reside, whether locally on the IoT device itself or in the cloud / remote server. We will then explore topics related to edge compute and benefits that can be achieved: data transmission reduction, latency reduction, responsiveness. Design tradeoffs such as data precision and accuracy will be explored as well as power efficiency.

We will also discuss how Deep Learning inference can be implemented at the edge rather than in the cloud. This can be combined with discussion of using imaging/video as an input sensor and how transmitting video up to the cloud quickly becomes costly and difficult to scale.

INSTRUCTORS: Dr. James Moawad

RECOMMENDED TEXT: TBD

TEACHING ASSISTANT: TBD

COURSE GOALS:

When a student completes this course, s/he should be able to:

•     Understand what is meant by the term “edge” within a connected system.

•     Explain options for where computation can be performed within a connected system.

•     Understand the tradeoffs associated with performing compute in the cloud or a centralized server cluster.

•     Explain the reasons why it may be advantageous to compute at the edge.

•     Know how to reduce compute complexity in order to fit within the compute envelope of edge devices.

•     Build a device which performs edge compute and sends resulting decimated data to the cloud.

LAB PROJECTS: This course is project oriented. Students will gain experience in software programming for hardware architectures using commercial off-the-shelf ARM SoC FPGA boards and IoT sensors. Students will use industry standard computer-aided design tools to develop, simulate and synthesize the hardware designs. Each student will have the opportunity to design several projects individually and work in groups for the final project.

COMPUTER USAGE: Students will utilize the Intel Quartus and Microsoft Azure. Intel Quartus is available to download for free or may be used in the CG50 computer labs. A free Azure for Students account on Microsoft Azure will need to be created. 

GRADING: 

Grading is team-based, and is composed of the following: 

  • 50 % Weekly Labs (5)
  • 30% Final Project & Presentation
  • 20% Class Participation

CLASS SCHEDULE:

Week 1:

·      Lecture 1: Connected Devices; Edge vs. Cloud; software vs. hardware

·      Lab 1: Using an ARM Cortex-A9 System

Week 2:

·      Lecture 2: Physical computing: Sensors, actuators, data generation

·      Lab 2: Getting Started with Linux on ARM Cortex-A9

Week 3:

·      Lecture 3: Tradeoffs: power, bandwidth, latency, costs, etc.

·      Lab 3: Developing Linux Programs that Communicate with Wifi and Bluetooth Low Energy (BLE)

Week 4:

·      Lecture 4: Computational Complexity: Precision vs. Accuracy, Quantization

·      Lab 4: Image Edge Detection on Microsoft Azure (cloud) vs. locally

Week 5:

·      Lecture 5: Computing architectures: CPU, GPU, custom HW engines (FPGA)

·      Lab 5: Gathering data from sensors and sending summary data to the cloud

Week 6:

·      Lecture 6: Quantization, Floating-Point, Fixed-Point Architectures  

·      Final Project Proposal Due

Week 7:

·      Lecture 7: Deep Learning

Week 8-10:

·      Final Project