Home > Teaching > CS 664: IoT System Design

CS 664: IoT System Design

Internet of Things (IoT) has gained prominence with the ever increasing connected devices,  sensor systems and capability of computing resources. Thanks to the advancement of fabrication technology which has now made IoT devices and systems integral part of our daily life.

An IoT system typically comprises of smart sensor nodes to collect data either real-time or offline, data communication over a network and the back-end data management & processing to extract intelligent information. The typical use cases of IoT are wearables, smart homes, smart vehicles, traffic prediction & control, weather monitoring & forecasting, indoor location-based services, health monitoring of machines & structures, augmented/virtual reality etc. Consumers and industries are the beneficiaries of such applications.


Course Objectives:

The focus of this introductory course would be “the smart sensor node” with emphasis on design, requirement, data interfacing and capabilities. The course would cover engineering fundamentals, blended with good industrial practices, which lead to the first-time success of the design and development of sensor node. API development, cloud computing, and data analysis would also be covered in brief. Lab sessions and case studies will supplement the classroom interactions.

After completing this course, students will be in a position to understand various building blocks and working of state-of-the-art IoT systems. Students would also gain enough insights to conceive and build IoT systems on their own.


Recommended books:

There is no textbook for the course. The following material will be used for reference.

  1. Internet of Things: A Hands-on Approach, By Arshdeep Bahga and Vijay Madisetti
  2. Introduction to Embedded Systems: A Cyber-Physical Systems Approach, By Edward Ashford Lee and Sanjit Arunkumar Seshia
  3. Introduction to Computation and Programming using Python, by John Guttag
  4. Python documentation: https://www.python.org/doc/
  5. Android developer: https://developer.android.com/training/index.html
  6. Recent publications for case studies


  1. Fundamentals of Computing (Esc101)
  2. Introduction To Electronics (Esc201)
  3. Basic knowledge of Digital Electronics and Microprocessors (CS220 or EE370 or equivalent)
  4. Consent of the Instructor