Please enable JavaScript to use CodeHS

Introduction to Physical Computing with Arduino

The Introduction to Physical Computing with Arduino quarter-long high school course will utilize Arduino devices in order to give students the opportunity to apply knowledge of basic programming concepts (control structures, variables, functions, etc.) to a physical device. They will learn how to perform basic physical tasks using LEDs, buttons, and basic sensors.


Units: 3
Timeframe: Quarter
Contact Hours: 50

By the Numbers

Contact Hours 50
Lessons 16
Videos 23
Exercises 19
Challenges 3
Offline Handouts 70


Unit Description
Intro to Arduino: Students will go through the basics of the Arduino device, such as how to light up and change the brightness of LEDs, and learn how variables can be used to write more versatile programs. Students will build circuits to control LEDs and motors with the Arduino and explore how pseudocode can be used to structure programs from the start.
Program Control with Arduino: Students will learn how to apply control structures, such as if/else statements and loops to create programs that will react to the outside world. They will build programs that use sensors to detect temperature, light, and distance and make decisions based on the information collected.
Advanced Arduino: Students will have a chance to explore all of the capabilities of the Arduino on their own! They will research, explore, and teach their peers about new sensors, follow directions to build an advanced device, and have a chance to create their very own Arduino machine.

Format of Course

This course utilizes a blended classroom approach. The content is provided through a mix of web-based and physical exercises, with students writing and running code in the browser and then downloading code to their physical devices for further testing and exploration. Each unit is broken down into lessons which are made up of video tutorials, short quizzes, pseudocode exercises, physical explorations, example programs, and written programming exercises. The course is designed for a quarter long class that meets 5 days per week, though schools implement it in a variety of ways.

Required Materials

For students to fully experience physical computing, they’ll need access to a few materials. These include the Arduino device, various wires to connect external components and sensors, and breadboards which allow for more complex circuit builds. A complete list can be found at
In the final module of the course, students will explore additional sensors on their own and teach their peers how they can be incorporated in different projects. You may provide options or allow students to research various sensors on their own, but these should be provided to students in addition to the required materials list.

Who is it for?

This course is designed to reinforce understanding of computer science concepts by applying them to physical devices. It is assumed students have introductory knowledge of variables, control structures, and functions. Students should have completed (or be concurrently enrolled in) an introductory programming course. The following courses would work as a concurrent prerequisite:

  • Intro to Python with Tracy
  • Intro to Programming with Karel
    • Note: This course does not cover variables, so teachers will likely need to supplement instruction in the physical computing course.
  • Intro to Computer Science in JavaScript
  • Intro to Computer Science in Python
  • AP Computer Science Principles
  • AP Computer Science A


Students begin by developing simple programs and circuits utilizing LEDs:
Opposite Blinking LEDs Exercise
They then move on to create more complicated circuits using breadboards and simple sensors, such as buttons and potentiometers:
Blinking Based on Potentiometer Exercise
And finally include control structures and more external components, such as ultrasonic range finders and servo motors:
Distance Warning Lights Exercise


Interested in teaching the Introduction to Physical Computing with Arduino course with CodeHS? Get in touch, so we can help you bring CodeHS to your school!

Bring to My School


Introduction to Physical Computing with Arduino is aligned with the following standards

Standards Framework View Alignment
Alaska 6-8 View (41.5%)
Arkansas 9-12 View (44.3%)
California 6-8 View (58.3%)
CSTA 2 View (52.2%)
Georgia Foundations of Computer Programming View (57.6%)
Maryland 6-8 View (40.9%)
Virginia MS CS Elective View (42.3%)
New Jersey 6-8 Computer Science View (48%)
Utah 6 View (57.1%)
Utah 7 View (75%)
Utah 8 View (66.7%)
Utah 11-12 View (40%)