Course Syllabus

Class Information

  • COMPSCI 147: IoT SW AND SYSTEMS

Meeting Information

  • Room: SH 134
  • Day & time: Tu Th 9:30 - 10:50 am

Instructor Information

Sergio Gago-Masague

  • Email: sgagomas@uci.edu
  • Phone: (949) 824-7208
  • Office Hours: 1 - 2 pm Mondays
    (other times available by appointment)
  • Office Location: DBH 3208 and Calit2 4413
Sergio_Gago.jpeg

TA Information

Manuel Segura

  • Email: mesegur1@uci.edu
  • Office Location: Zoom (link)
  • Lab Sessions: Friday 11-11:50 am
  • Lab Session begins in week 2
  • Office Hour: Wednesdays 10-11am
profile.jpg

Hamidreza Alikhani

  • Email: hamidra@uci.edu
  • Office Location: Zoom (link)
  • Lab Sessions: Friday 12-12:50 
  • Lab Session begins in week 2
  • Office Hour: Wednesdays 11-1 pm Calit2 building (microsemi room)
Hamidra.jpeg

 

Online Course Resources

  • Canvas: Course schedule, slides, and assignments will be available through Canvas.
  • Piazza: Given the size of this course, we do not encourage asking course-related questions by email. For those, we have set up a public discussion forum on ED; we think it will be particularly useful for advice and tips as you work on your assignments and course topics.

Course Rationale

Advances in embedded and connected smart devices, systems, and technologies have created opportunities to connect every ‘thing’ to the Internet. The ability of the Internet of Things (IoT) to collect and connect data has brought efficient solutions in transforming various aspects of the industry and human society. To remain competitive and successful in the digital economy, CS undergraduates should have an understanding of what the IoT is. The purpose of this course is to present introductory IoT concepts and the basics of IoT design from the perspective of software and systems.

All CS undergraduate students with some programming skills and interest in IoTs are qualified to enroll in this course. This course is targeted at ICS students in their sophomore or junior years, although freshmen with advanced programming experience may also enroll in the course.

Course Overview

The goal of this course is to develop an introductory understanding of the hardware and software technologies, the communication protocols, and the security and privacy requirements underlying the Internet of Things (IoT) ecosystem, particularly, those using computing elements, and sensors and accessing cloud services. The students develop an appreciation of the technology capabilities and limitations of the hardware and software components for building things, and methods to evaluate design tradeoffs between different technology choices and use case requirements.

This course presents an introduction to IoT hardware and software technologies, the communication protocols, and the security and privacy requirements underlying the Internet of Things ecosystem, including sensors, embedded CPUs, networking, and accessing cloud services.

Students will be required to purchase a list of parts to be used during the course, with an estimated cost of approximately $120 per team of two students.

Course Topics

  1. Introduction to the Internet of Things era (industry-centric, e.g., process automation, and human-centric use cases, e.g., healthcare)
  2. Embedded Systems components (hardware, software, and connectivity mechanisms)
  3. Software for IoT: embedded software, networking, device interfaces, timing
  4. Networking of Internet of Things (e.g., Plug n Play, ad hoc, and standardization aspects,  and Web of Things)
  5. Embedded Systems Applications
  6. Security and privacy in the Internet of Things era

Course Objectives

Students should be able to:

  1. Demonstrate an understanding of the importance of and key features of Embedded Systems in the Internet of Things era.
  2. Demonstrate an understanding of embedded systems components.
  3. Demonstrate an understanding of embedded systems applications.
  4. Demonstrate an understanding of the principles of communication, networking, and programming in IoT applications
  5. Demonstrate the ability to build an IoT system ranging from wireless sensor nodes to gateways and cloud services

Class Structure and Readings

This is an undergraduate class with significant weekly hands-on lab exercises and a practical project component that emphasizes learning through doing. The course is designed as a lower-division course and is targeted at undergraduate students with a background in programming. With only 10 weeks in the quarter, there is an expectation that students identify projects very early and follow through various phases of project execution throughout the quarter. The student will acquire the knowledge required to complete their projects step by step in through weekly hands-on lab exercises. 40% of the course will be focused on hands-on lab exercises and logistics. Conceptual material will be covered in the other part of the course.

Suggested Readings (free access from the UCI network)

  • Internet-of-Things - From Hype to Reality, by A. Rayes, and S. Salam, Springer 2017 (reference book) download pdf here
  • Fog Computing in the Internet of Things, by A. Rahmani, P. Liljeberg, J. Preden, A. Jantsch, Springer 2017  download pdf book here
  • 6LoWPAN: The Wireless Embedded Internet, by Z. Shelby, C. Bormann, 2009 download pdf book here
  • IEEE Internet of Things: http://iot.ieee.org
  • IoT Fundamentals: Networking Technologies, Protocols, and Use Cases for the Internet of Things, by D. Hanes et al., Cisco Press, 2017. (optional reading)

Evaluation scheme

Students will be assessed based on three criteria:

  1. Labs and Hands-on Demonstrations - Students will perform weekly practical hands-on small projects in the lab and demonstrate them to the teacher or the TA:  40%)
  2. Quizzes on provided materials:  10%
  3. Project and Project Report – Students will do a Hands-on IoT system design and programming project that will span the whole quarter:  50%
  4. Extra-Credit: 3%
    3% Final Course Evaluation

Lab Assignments:

Each student will need to buy an entire IoT kit. The list of items will be published early week 1 on the following page:

Required IoT Components for each student

Labs will start in week 2 based on the course schedule. The list of labs is as follows:

  • Lab 0
  • Lab 1
  • Lab 2
  • Lab 3
  • Lab 4

Note: You can demonstrate lab completion by submitting a video instead of showing that in-person. However, attending the lab sessions is mandatory.

 Campus Resources

 

Course Summary:

Course Summary
Date Details Due