About this Course
112,848 recent views

100% online

Start instantly and learn at your own schedule.

Flexible deadlines

Reset deadlines in accordance to your schedule.

Approx. 11 hours to complete

Suggested: 10 hours/week...


Subtitles: English, Vietnamese

Skills you will gain

ArduinoC ProgrammingDebugging

100% online

Start instantly and learn at your own schedule.

Flexible deadlines

Reset deadlines in accordance to your schedule.

Approx. 11 hours to complete

Suggested: 10 hours/week...


Subtitles: English, Vietnamese

Syllabus - What you will learn from this course

4 hours to complete

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.

9 videos (Total 51 min), 4 readings, 2 quizzes
9 videos
Lecture 1.1: Arduino Platform8m
Lecture 1.2: Arduino Board7m
Lecture 1.3: Direct Programming3m
Lecture 2.1: Arduino Schematics4m
Lecture 2.2: Arduino IDE7m
Lecture 2.3: Compiling Code4m
Lecture 3.1: Arduino Shields and Libraries6m
Lecture 3.2: Arduino Basic Setup6m
4 readings
Pre-Course Survey10m
Course Overview10m
Module 1 Objectives10m
Module 1 Reading10m
1 practice exercise
Module 1 Quiz16m
4 hours to complete

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.

9 videos (Total 62 min), 4 readings, 2 quizzes
9 videos
Lecture 1.1: Setting Up Your Environment7m
Lecture 1.2: Hello World6m
Lecture 1.3: Variables4m
Lecture 2.1: Basic C Operators6m
Lecture 2.2: Conditionals7m
Lecture 2.3: Loops8m
Lecture 3.1: Functions10m
Lecture 3.2: Global Variables7m
4 readings
Module 2 Objectives10m
Module 2 Mandatory Reading10m
Module 2, Recommended Reading10m
Planning Ahead for Modules 3 and 410m
1 practice exercise
Module 2 Quiz16m
4 hours to complete

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.

10 videos (Total 58 min), 3 readings, 2 quizzes
10 videos
Lecture 1.1: Arduino Toolchain5m
Lecture 1.2: Cross-Compilation4m
Lecture 1.3: Arduino Sketches9m
Lecture 2.1: Classes7m
Lecture 2.2: Sketch Structure4m
Lecture 2.3: Pins7m
Lecture 3.1: Input and Output6m
Lecture 3.2: Blink Example5m
Video Demonstration: Arduino Blink Example4m
3 readings
Module 3 Objectives10m
Module 3 Reading10m
Information About the Arduino10m
1 practice exercise
Module 3 Quiz16m
4 hours to complete

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.

9 videos (Total 72 min), 4 readings, 2 quizzes
9 videos
Lecture 1.1: Debugging12m
Lecture 1.2: Debug Environments12m
Lecture 1.3: Debug via Serial8m
Lecture 2.1: UART Protocol7m
Lecture 2.2: UART Synchronization7m
Lecture 2.3: UART Parity and Stop6m
Lecture 3.1: Serial on Arduino (Updated)11m
Lecture 3.2: Reading from Serial4m
4 readings
Module 4 Objectives10m
Module 4 Reading10m
Information about the Arduino10m
End-of-Course Survey10m
1 practice exercise
Module 4 Quiz16m
684 ReviewsChevron Right


started a new career after completing these courses


got a tangible career benefit from this course


got a pay increase or promotion

Top reviews from The Arduino Platform and C Programming

By MRAug 9th 2016

A very good course to teach you the basics of Arduino platform and IDE. It'll help you get started on how to code your programs and lets you build up on it. I'd definitely recommend for a beginner.

By MKAug 7th 2017

very good course to have basic understanding of C programming software , Arduino software which is explained in a very simple language where i was finding difficult before attending this course



Ian Harris

Department of Computer Science

About 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....

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. 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....
An Introduction to Programming the Internet of Things (IOT)

Frequently Asked Questions

  • Once you enroll for a Certificate, you’ll have access to all videos, quizzes, and programming assignments (if applicable). Peer review assignments can only be submitted and reviewed once your session has begun. If you choose to explore the course without purchasing, you may not be able to access certain assignments.

  • When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.

More questions? Visit the Learner Help Center.