Course Syllabus

Class Information

  • COMPSCI 147: IoT SW AND SYSTEMS

Meeting Information

  • Lecture: Tu Th 12:30pm - 1:50 am @ICS174
  • Labs A: Mon/Wed 4:00pm - 4:50pm @ICS2-162
  • Labs B: Mon/Wed 5:00pm - 5:50pm @ICS2-162

Instructor Information

Sergio Gago-Masague

  • Email: sgagomas@uci.edu
  • Phone: (949) 824-7208
  • Office Hours: Mon 10am-noon
    Please let me know if you intend to come.
    (other times available by appointment)
  • Office Location: DBH 3064 or Calit2 4413, or Zoom
Sergio_Gago.jpeg

TA Information

Hamza Errahmouni Barkam

  • Email: herrahmo@uci.edu
  • Lab Sessions: Monday & Wednesday 4:00-5:50 pm @ ICS2-162
  • Office Hours: Monday & Wednesday 4:00-5:50 pm @ ICS2-162 @ same as lab sessions 
  • Other time possible: Mondays 11 am-12 pm @ DBH 3059A (make an appointment with email first)
Hamza-1.JPG

Tutor Information

Online Course Resources

  • Canvas: Course schedules, 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 beneficial 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 thrive in the digital economy, CS students should understand the IoT. 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 students with some programming skills and an interest in IoT are qualified to enroll in this course. 

Course Overview

This course aims 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, as well as methods to evaluate design tradeoffs between different technology choices and use case requirements.

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

Students will be required to purchase a list of parts to be used during the course, which is estimated to cost 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 embedded systems' importance and key features 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 communication, networking, and programming principles 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 undergraduate class has significant weekly hands-on lab exercises and a practical project component emphasizing learning through doing. The course is targeted at students with a background in programming. With only ten 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 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 one on the following page:

Required IoT Components for each student

Labs will start in week two 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 it in person. However, attending the lab sessions is mandatory.

 Campus Resources

 

Course Summary:

Course Summary
Date Details Due