50.046 Cloud Computing and Internet of Things
Course Description
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 (ESP32), sensing technologies, IoT protocols (MQTT and CoAP), accessing and using cloud-based services, and the virtualization technologies behind cloud computing (virtual machines and containers). Students will learn how to design, develop, and deploy end-to-end cloud-based IoT applications, and to understand the fundamental technologies behind cloud computing.
Prerequisites
- 10.009 The Digital World (For Intake AY2019)
- 50.005 Computer System Engineering (recommended) or a strong foundation in computer systems
Learning Objectives
- To understand the related architecture designs and technologies of cloud computing
- To explain the overall architecture and key design principles of IoT systems, including both functional and non-functional aspects
- To design cloud-based IoT applications using proper cloud services
- To gain hands-on experience in key technologies for developing an IoT system, including sensor selection / interfacing, embedded system programming, use of suitable network protocols, and various cloud services (compute, storage, data analytics, management)
- To gain design experience in solving a real-world problem using IoT and cloud technologies
- To gain both the experience and confidence in learning a new IoT technology independently
Measurable Outcomes
- 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
- Work in a team to formulate a real-world problem that can be solved using IoT and cloud technologies, including design objectives, challenges, and constraints
- Apply suitable IoT and cloud technologies to develop a proof-of-concept system, and present the solution in the class with explanation of its key design considerations
- Apply new cloud services or sensors if relevant to the project
Topics Covered
- Sensors
- Embedded systems and RTOS
- Wireless networking for IoT
- Edge computing
- Accessing Cloud and using AWS services
- Virtual machine using KVM
- OpenStack
- Containers using Docker
Textbook(s) and/or Other Required Material
- ESP-IDF Programming Guide
- Agus Kurniawan, Learning AWS IoT, Packt Publishing, 2018
- Assigned reading materials regarding KVM, OpenStack, and Docker
- Peer reviewed research articles