The Internet of Things and its integration with cloud computing are transforming our world in a fundamental way. This course teaches some of the essential IoT and cloud computing technologies from the ground up. Specific topics covered include IoT devices programming (Arduino), sensing technologies, IoT protocols (Zigbee, LPWAN, MQTT), and cloud-based IoT architectures and platforms. Students will learn how to design, develop, and deploy end-to-end cloud-based IoT applications, by identifying various performance bottlenecks and using proper cloud computing services to make the IoT architecture scalable.
- 10.009 The Digital World (For Intake AY2019) or [NEW] Data Driven World (For Intake AY2020 and subsequent batches)
- 50.005 Computer System Engineering (recommended) or a strong foundation in computer systems
- Be able to explain the function principles of IoT device components, the design of IoT protocols, and the related architecture designs and technologies of cloud computing.
- Be able to design cloud-based IoT applications and choose the proper cloud services.
- Be able to analyze and optimize commercial cloud computing setups with respect to performance parameters.
- List the functions of different IoT and cloud computing components.
- Use various sensors, embedded device libraries, IoT protocols, and cloud services.
- Develop skills in systematic testing and debugging.
- Identify bottlenecks of given IoT architectures.
- Apply multiple cloud computing services to make IoT architectures scalable.
- Discuss pros and cons of several cloud computing setups given performance constraints. Based on this reasoning, select and justify a component to be deployed among choices.
- Design and implement a cloud-based IoT project for a problem comprising sensing tasks and cloud processing of the sensor measurements.
- Cloud Computing: Concepts, Technology & Architecture, Thomas Erl, et al., Prentice-Hall, 2013
- Getting Started with Arduino: The Open Source Electronics Prototyping Platform (Make) 3rd Edition by Massimo Banzi and Michael Shiloh
- Exploring Arduino: Tools and Techniques for Engineering Wizardry 1st Edition by Jeremy Blum