Course Syllabus

Class Information

  • COMPSCI 147: IoT SW AND SYSTEMS

Meeting Information

  • Lecture A: Tu Th 09:30am - 10:50 am @SH174
  • Lecture B: Tu Th 11:00 am - 12:20pm @SH128
  • Labs A: Fri 2:00pm - 4:50pm @ICS2-162
  • Labs B: Fri 9:00am - 11:50am @ICS2-170

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

Yang Ni

  • Email: yni3@uci.edu
  • Lab Sessions: Friday 2:00-4:50 pm @ ICS2-162
  • Office Hour: Friday 2-5pm @ same as lab sessions 
  • Other time possible: Tuesday 11am-12pm @ DBH 3059A (make an appointment with email first)
DSC_1445.JPG

Manuel Segura

  • Email: mesegur1@uci.edu
  • Lab Sessions: Friday 9-noon @ ICS2-170
  • Office Hours: Friday noon - 2pm @ same as lab sessions 
  • Other time possible (by appointment): Thursday 2pm - 3pm @ TBD or Zoom 
PXL_20220601_214939883.PORTRAIT-scaled.jpg

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

Neel Ramesh

  • Email: neelr1@uci.edu
  • Lab Sessions: Friday 9-noon
  • Office Hours: Monday & Wednesday 1-2 @ ICS 225

NeelRamesh.jpeg

Oscar Tran

  • Email: otran2@uci.edu
  • Office Location: same as lab sessions
  • Lab Sessions: Friday 2-5 pm
  • Office Hours: Tuesday and Thursday 4-5 pm Temporarily @Science 490 or if room not available Zoom, will update here if different room or Zoom will be used 12/5 Room 527 4-5pm

OscarTran.png

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.

 

COURSE POLICIES

Attendance: Since participation plays a key role in learning, students are expected to watch all recordings for each class meeting. Students are responsible for the material referred to during lectures/recordings and linked to the course environment (Canvas). 

If you join the class later in the quarter, you must complete all missed work immediately.

E-mail Policies: We don’t recommend using email to ask course-related logistics or technical questions. Students can ask questions during the instructor’s and assistants’ office hours. We have also set up a more public discussion forum on Ed Discussion; we think EdD will be beneficial for advice and tips as you work on your assignments.

You can contact us by email for specific personal matters. You will usually get a response within a day (perhaps a bit longer on the weekends). We will never intentionally ignore a message, so if you don't receive a response, write again; sometimes, overactive spam filters snag a legitimate message. Course-specific subject lines and your UCInet Email address will help your messages be noticed.

We may also send course announcements on Canvas and by email to the official course mailing list, so you should check your email daily.

 Late Assignment Policy: Due dates are usually 11:59 pm local time on the day an assignment is due. Late homework will be accepted for one week after the due date with the following penalties:

  1. -1% for every late hour on the first 24 hours after the due date
  2. flat 25% from after that until one week after the due date

No late homework will be accepted one week or more after the due date.

 Sick Policy: Sicknesses will be treated on a case-by-case basis. If you are unable to honor a deadline or a quiz due to sickness, please get some documentation from a health care provider to assist me in maintaining fairness to the other students in the class.

 Academic Honesty/Principles of Community:  Please familiarize yourself with the latest UCI academic honesty policy: http://www.reg.uci.edu/navigation/policies.html.

You must always credit sources for any work you use that isn’t your own, including code, text from books, answers from friends, and content generated by AI. Plagiarism occurs when you fail to acknowledge the source. If you plagiarize, you risk receiving a failing grade for the course at the instructor’s discretion. Our academic system relies on proper citation. If an assignment requires original work, citing a source does not satisfy the requirements. If in doubt, ask your instructor for guidance.

Accommodation Policies: If you need accommodation to participate in this course, please get in touch with the Disability Services Center at (949) 824-7494 as soon as possible to better ensure that such accommodations are implemented in a timely fashion. Please review the policies on accommodation at: http://disability.uci.edu/

 

 Campus Resources

 

Course Summary:

Course Summary
Date Details Due