The Internet of Things (or, “IoT”) is a fabric that is connecting every object in the world. Currently there are two schools of thoughts regarding IoT, emphasizing — (1) IoT devices and networks, and (2) IoT data analytics. Understanding both is essential to designing an end-to-end IoT system that senses the physical world, talks to other IoT systems, and caters plethora of services that help us making decisions, save our time, make our lives more efficient, and keep us healthier.

Course Objectives

  • Learning tools (both HW and SW) to build an end-to-end IoT system.
  • Learning the state-of-the-art of the IoT and its related sub-fields.


  • Prof. Shahriar Nirjon, SN 256, nirjon@cs,unc,edu
  • Office Hours – by Appointments


  • Basic programming skills in C, python, and Java.
  • Basic understanding of electronic circuits, OS, networking, and statistical analysis.

Course Structure

  • Lectures – The instructor will deliver the lecture.
  • Labs – Students will build basic electronic circuits in the lab (e.g. Arduino). All labs will happen in Applied Engineering Lab (2nd floor, Sitterson Hall).
  • Spot Review – Reviewing an unknown paper within a limited time.
  • Presentation – A student will present a paper. Papers will be assigned at least 2 weeks before the date.
  • Review – Reviewing a paper at home. Bring a printed copy of the review and submit it before the paper is presented by the presenter.
  • Exam – Written exam. Syllabus will be based on papers and labs.
  • Project – Design, Implementation, and Evaluation of an IoT System


  • Class Participation/Reviews: 10%
  • Labs/Spot Review/Class Activity: 30%
  • Presentation: 20%
  • Exam: 15%
  • Project: 25%