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.
This course is part of the An Introduction to Programming the Internet of Things (IOT) Specialization
Offered By


About this Course
Skills you will gain
- Arduino
- C Programming
- Debugging
Offered by

University of California, Irvine
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.
Syllabus - What you will learn from this course
Arduino Environment
This module provides an introduction to the Arduino environment which is composed of three things: the Arduino board, the Arduino IDE, and the Arduino-compatible shields together with their libraries. We first investigate the board, discussing all of its main components, inputs, and outputs. We discuss how each component is used and we examine the board schematic to see how they are connected. We then discuss the Arduino Integrated Development Environment (IDE) which is used primarily to write, compile, and upload code. We survey the interface of the IDE and discuss how to install and use it. We also examine the use of shields to extend the functionality of an Arduino-based system. We discuss how shield libraries provide a useful abstraction to facilitate programming.
C Programming
This module covers the basics of the C programming language which will be used to write code for the Arduino. The course first covers basic syntax, variables, and types. Most of the basic C operators are presented. Conditional statements (if, switch) and loops (while, for) are described. The concept of functions is presented together with how to define and call functions. Creation and use of global variables is explained.
Arduino Programs
This module describes the composition of an Arduino program, or sketch, and the process by which it is compiled and uploaded. The Arduino IDE is a user interface for the software tools which actually compile and upload the program. We outline the use of these tools in the build process. We describe the basic structure of a sketch, including the use of the setup() and loop() functions. The main interface of an Arduino is through its pins, so we describe how to access those pins from a sketch.
Module 4
This module is an introduction on debugging embedded software on an Arduino. We discuss the basic debugging requirements: controllability and observability. The debugging environment available for an Arduino UNO is limited, so we describe how to use the UART communication protocol to gain controllability and observability. We present the use of the Serial library to communicate with the Arduino through the serial monitor.
Reviews
- 5 stars73.26%
- 4 stars21.57%
- 3 stars3.58%
- 2 stars0.85%
- 1 star0.72%
TOP REVIEWS FROM THE ARDUINO PLATFORM AND C PROGRAMMING
Loved it. Got to learn a lot, Professor Ian is the best at explaining things here. Especially the communication and the debugging part was a nice addition. Overall a wonderful course.
I like the instructor a lot and his teaching is amazing. Also I had the opportunity to work with Arduino board and get hands on it. But overall course level was too easy for me in terms of coding.
I enjoyed a lot during this course and also learned some great arduino lessons and practicals. I can confidently tell you that I can do some actual arduino programs in real time applications.
You'll learn about the basic fundamentals to get started with arduino. The only gripe I have is that assignments are marked by peers. This makes it problematic when timing is not good.
About the An Introduction to Programming the Internet of Things (IOT) Specialization
Design, create, and deploy a fun IoT device using Arduino and Raspberry Pi platforms.

Frequently Asked Questions
When will I have access to the lectures and assignments?
What will I get if I subscribe to this Specialization?
Is financial aid available?
More questions? Visit the Learner Help Center.