Introduction to Physical Computing with Arduino

Learn about Intro to Physical Computing with Arduino: course content, setup and FAQs

Jeremy Keeshin avatar
Written by Jeremy Keeshin
Updated over a week ago

Introduction to Physical Computing with Arduino is a quarter-long, project-based course focused on building circuits and using physical devices. This course is meant for students who have experience with foundational programming topics (described in more detail below). This course is different than many CodeHS courses as it requires physical materials to be purchased and uses an outside platform (Tinkercad & Arduino) where students will develop and test their programs before pasting into the CodeHS editor to be graded by their teacher.

The Physical Computing with Arduino course provides a highly interactive way for students to apply programming concepts to physical devices! The course uses an Arduino Uno and is meant to refresh and apply basic programming concepts in a physical environment.

Who should take this course?

This course is meant to refresh programming concepts for High School students. Basic programming concepts, such as loops, functions, if/else statements, and variables will not be taught from scratch in this course. Students should have seen these concepts previously so they are already aware of how they work before using them with their Arduino. There are quite a few CodeHS courses that provide this prerequisite information to students, as noted below:

  • Intro to Programming with Tracy

  • Intro to CS in JavaScript

  • Intro to CS in Python

  • AP CSP

  • AP CS A

  • Intro to Programming with Karel - Note: This course does not include information on variables, so if you are using this course as your prerequisite, you’ll need to supplement with some information about variables and parameters before students see these concepts in the Arduino course.

Teaching Intro to Physical Computing with Arduino

Can I teach the foundational programming concepts and this course at the same time?

There are a few ways prerequisites can be implemented.Students join your class after they have taken one of the courses listed. This could be with another teacher before they joined your class, completed as a summer assignment, or as the first semester of your course if it is a year long.Another option is to have students learn these foundational concepts concurrently as they take this course. This could be provided during another class period (if your students are lucky enough to have 2 periods of computer science!) or could be threaded into the intro programming course.

Can I use this course to teach the programming portion of the AP CSP course?

Unfortunately, this course does not cover all of the needed topics and standards for the AP CSP programming, so it should not be used to provide students with this information, though it could be used to reinforce concepts such as control structures and functions.

Can I use this course with Middle School students?

It is not recommended to use this course in Middle Schools due to the level of complexity of the Arduino device, the immediate need for a breadboard when building circuits, and the more syntactically stringent C++ programming language. As an alternative, we recommend Physical Computing with micro:bit for middle school students.

What are the Explorations that I see in the course?

We wanted to have a strong discovery learning focus in our Physical Computing courses, so we encourage students to hypothesize and test what commands do on their own through the use of what we call Explorations. These step-by-step documents include diagrams, starter code, and questions to guide students to learn about new commands and how they are applied in their programs without being directly told by their teacher. Each lesson in the course contains an exploration so students are constantly exploring new commands to add to their physical computing toolbox.

Are there autograders in this course?

No, autograders do not exist on any of the activities in this course due to programs being run in Tinkercad and the Arduino editor rather than on our site. It should be communicated to students that they must be able to test their own programs and should only copy and paste them into the CodeHS editor from Tinkercad/Arduino when they feel that each component of the exercise has been successfully completed. Problem guides will give a lot of additional information to teachers about each exercise so this should be the first resource they consult when grading student work.

Introduction to Physical Computing with Arduino Course Description

Course Modules

  • Introduction 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.

What major projects exist in the course?

  • Digital Watch (3.1)

  • Elevator (3.1)

  • Step-by-step project (3.3)

  • Final Project (3.4)

How much coding background do my students and I need to have for the Arduino course?

Students should have a basic understanding of foundational programming concepts, including functions, variables, parameters, loops, and if/else statements. This background could be in any programming language.

Additional FAQs

  • Does the module order matter? Yes, students should take the modules in order because content builds on previous exercises as the course progresses.

  • Where can I find the course syllabus?

  • How long is the course? The quarter-long course represents about 35-50 hours of work.

  • Is there a PD course that goes with it? At this time there is not a PD course for Intro to Physical Computing with Arduino

  • How do my students run programs in the CodeHS Editor? The programs in the Arduino course will not be able to run in the CodeHS editor. They will be developed and simulated in Tinkercad and then downloaded to their physical devices through the Arduino editor. Once students have created a successful program, they will copy and paste their code into the CodeHS editor where it will be saved for teachers to view, grade, and provide feedback.

  • What materials do I need? A full materials list can be found at This list provides links, notes, and quantities for every material.

  • Can I teach this course without materials? Though one of the best parts of physical computing is the physical portion where students are able to see things in real life happening from the text they write in their programs, this course uses simulation programs that cover 90% of the course content. For this course, students will not be able to simulate any circuits that include thermistors due to limitations in the Tinkercad environment. They will also not be able to complete much of Module 3.

  • Can I teach this course virtually? Due to the complexity of the course and circuits, we do not recommend teaching this course virtually. A better virtual option would be the Intro to Physical Computing with micro:bit course.

  • What additional software is required? The only software that should be downloaded for this course is the Arduino platform which will allow students to run their programs on their physical Arduino devices. Information about how to download this software is found at If you are unable to download this program to your computer(s), there is an online version that can be used found at, but this will require a log in.

  • What is Tinkercad and how do I use it? Tinkercad is the online platform that students will use to develop and simulate programs and circuits throughout the course. More information about how to set up a classroom and use it with your students can be found at

External Resources

Here is a list of resources that will be helpful for teachers and students:

Still have questions? Contact our team at to learn more!

Did this answer your question?