An Introduction to Programming the Internet of Things (IOT) Specialization

Starts May 08

An Introduction to Programming the Internet of Things (IOT) Specialization

Create Your Own Internet of Things (IoT) Device

Design and create a simple IoT device in just six courses.

About This Specialization

Design, create, and deploy a fun IoT device using Arduino and Raspberry Pi platforms. This Specialization covers embedded systems, the Raspberry Pi Platform, and the Arduino environment for building devices that can control the physical world. In the final Capstone Project, you’ll apply the skills you learned by designing, building, and testing a microcontroller-based embedded system, producing a unique final project suitable for showcasing to future employers. Please note that this specialization does not offer discussion forums.

Created by:

courses
6 courses

Follow the suggested order or choose your own.

projects
Projects

Designed to help you practice and apply the skills you learn.

certificates
Certificates

Highlight your new skills on your resume or LinkedIn.

Courses
Beginner Specialization.
No prior experience required.
  1. COURSE 1

    Introduction to the Internet of Things and Embedded Systems

    Upcoming session: May 8 — Jun 12.
    Commitment
    4 weeks, 1-3 hours/week
    Subtitles
    English

    About the Course

    The explosive growth of the “Internet of Things” is changing our world and the rapid drop in price for typical IoT components is allowing people to innovate new designs and products at home. In this first class in the specialization you will learn the importance of IoT in society, the current components of typical IoT devices and trends for the future. IoT design considerations, constraints and interfacing between the physical world and your device will also be covered. You will also learn how to make design trade-offs between hardware and software. We'll also cover key components of networking to ensure that students understand how to connect their device to the Internet. Please note that this course does not include discussion forums. Upon completing this course, you will be able to: 1. Define the term “Internet of Things” 2. State the technological trends which have led to IoT 3. Describe the impact of IoT on society 4. Define what an embedded system is in terms of its interface 5. Enumerate and describe the components of an embedded system 6. Describe the interactions of embedded systems with the physical world 7. Name the core hardware components most commonly used in IoT devices 8. Describe the interaction between software and hardware in an IoT device 9. Describe the role of an operating system to support software in an IoT device 10. Explain the use of networking and basic networking hardware 11. Describe the structure of the Internet 12. Describe the meaning of a “network protocol” 13. Explain MANETs and their relation to IoT
  2. COURSE 2

    The Arduino Platform and C Programming

    Upcoming session: May 8 — Jun 12.
    Subtitles
    English

    About the Course

    The Arduino is an open-source computer hardware/software platform for building digital devices and interactive objects that can sense and control the physical world around them. In this class you will learn how the Arduino platform works in terms of the physical board and libraries and the IDE (integrated development environment). You will also learn about shields, which are smaller boards that plug into the main Arduino board to perform other functions such as sensing light, heat, GPS tracking, or providing a user interface display. The course will also cover programming the Arduino using C code and accessing the pins on the board via the software to control external devices. Please note that this course does not include discussion forums. Upon completing this course, you will be able to: 1. Outline the composition of the Arduino development board 2. Describe what it means to program the board's firmware 3. Read board schematics 4. Install Arduino IDE 5. Describe what "shields" are and how they are used 6. Specify the role of libraries in the use of shields 7. Compile and run a program 8. Name C Variables and Types 9. Name common C operators 10. Use conditionals and loops 11. Explain functions, their definition and invocation 12. Explain the implications of global variables 13. Undertake the Arduino build process 14. Describe the role of the tools behind the IDE 15. Describe how to invoke functions in classes 16. Explain the structure of an Arduino sketch 17. Access the pins of the Arduino 18. Differentiate between digital and analog pin 19. Debug embedded software 20. Explain the importance of controllability and observability in the debugging process 21. Describe common debugging architectures for embedded systems 22. Explain how the UART Serial communication protocol works 23. Describe how the Arduino Serial library performs serial communication
  3. COURSE 3

    Interfacing with the Arduino

    Upcoming session: May 8 — Jun 12.
    Commitment
    4 weeks of study, 2-3 hours/week
    Subtitles
    English

    About the Course

    Arduino senses the environment by receiving inputs from add-on devices such as sensors, and can control the world around it by adjusting lights, motors, and other actuators. In this class you will learn how and when to use the different types of sensors and how to connect them to the Arduino. Since the external world uses continuous or analog signals and the hardware is digital you will learn how these signals are converted back-and-forth and how this must be considered as you program your device. You'll also learn about the use of Arduino-specific shields and the shields software libraries to interface with the real world. Please note that this course does not include discussion forums.
  4. COURSE 4

    The Raspberry Pi Platform and Python Programming for the Raspberry Pi

    Upcoming session: May 8 — Jun 12.
    Subtitles
    English

    About the Course

    The Raspberry Pi is a small, affordable single-board computer that you will use to design and develop fun and practical IoT devices while learning programming and computer hardware. In addition, you will learn how to set up up the Raspberry Pi environment, get a Linux operating system running, and write and execute some basic Python code on the Raspberry Pi. You will also learn how to use Python-based IDE (integrated development environments) for the Raspberry Pi and how to trace and debug Python code on the device. Please note that this course does not include discussion forums.
  5. COURSE 5

    Interfacing with the Raspberry Pi

    Upcoming session: May 8 — Jun 12.
    Commitment
    4 weeks of study 2-4 hours/week
    Subtitles
    English

    About the Course

    The Raspberry Pi uses a variety of input/output devices based on protocols such as HDMI, USB, and Ethernet to communicate with the outside world. In this class you will learn how to use these protocols with other external devices (sensors, motors, GPS, orientation, LCD screens etc.) to get your IoT device to interact with the real world. Most physical devices use analog signals; however computer hardware is digital so in this class you will learn how these signals are converted back-and-forth and how this must be considered as you program your device. The basic design of a sensor-actuator system will also be covered. You will also learn how to build more sophisticated hardware systems using Raspberry Pi expansion boards to create fun and exciting IoT devices. Please note that this course does not include discussion forums.
  6. COURSE 6

    Programming for the Internet of Things Project

    Upcoming session: May 22 — Jun 26.
    Commitment
    4 weeks of study, 2-3 hours/week
    Subtitles
    English

    About the Capstone Project

    In this Capstone course, you will design a microcontroller-based embedded system. As an option, you can also build and test a system. The focus of your project will be to design the system so that it can be built on a low-cost budget for a real-world application. To complete this project you'll need to use all the skills you've learned in the course (programming microcontrollers, system design, interfacing, etc.). The project will include some core requirements, but leave room for your creativity in how you approach the project. In the end, you will produce a unique final project, suitable for showcasing to future potential employers. Note that for the three required assignments you do NOT need to purchase software and hardware to complete this course. There is an optional fourth assignment for students who wish to build and demonstrate their system using an Arduino or Raspberry Pi. Please also note that this course does not include discussion forums. Upon completing this course, you will be able to: 1. Write a requirements specification document 2. Create a system-level design 3. Explore design options 4. Create a test plan

Creators

  • University of California, Irvine

    As an independent school focused solely on the computer and information sciences, the UCI Donald Bren School of Information and Computer Sciences has a unique perspective on the information technology disciplines that allows us a broad foundation from which to build educational programs and research initiatives that explore the many applications of the computing discipline — from circuits and systems to software engineering and human aspects of computing.

    Since 1965, the University of California, Irvine has combined the strengths of a major research university with the bounty of an incomparable Southern California location. UCI’s unyielding commitment to rigorous academics, cutting-edge research, and leadership and character development makes the campus a driving force for innovation and discovery that serves our local, national and global communities in many ways.

  • Ian Harris

    Ian Harris

    Associate Professor

FAQs

More questions? Visit the Learner Help Center.