Please enable JavaScript to use CodeHS

Intro to Programming in Python with Arduino

The Intro to Programming in Python with Arduino course merges the Introduction to Computer Science in Python and the Introduction to Physical Computing with Arduino courses. The Python course will provide the prerequisite information needed before students apply programming concepts to their physical Arduino device.


Units: 13
Timeframe: Year
Contact Hours: 175

By the Numbers

Contact Hours 175
Lessons 95
Videos 90
Exercises 134
Challenges 17
Offline Handouts 164


Unit Description
Introduction to Programming with Turtle Graphics: Students learn Python commands, functions, and control structures by drawing shapes on their screen and solving puzzles with Turtle Graphics!
Basic Python and Console Interaction: Students learn the basics of programming by writing programs that can be interacted with through the keyboard!
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.
Conditionals: Students teach their programs to make decisions based on the information it receives.
Looping: Students learn how to write more efficient code by using control structures as shortcuts.
Functions and Exceptions: Students learn how their programs can be decomposed into smaller pieces that work together to solve a problem!
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.
Strings: Students use more sophisticated strategies for manipulating text in their programs - slicing, concatenating, and formatting.
Creating and Altering Data Structures: Students learn how tuples and lists are formed and the various methods that can alter them.
Extending Data Structures: Students learn to build more complex programs that make use of grids and dictionaries.
Project: Guess the Word: Students use the skills they've learned throughout the course to build a word guessing game.
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.
Final Exam: Students prove their knowledge of content learned throughout the course through a multiple choice, short answer, and programming exam.

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 year long class that meets 5 days per week, though schools implement it in a variety of ways.

Required Materials

For students to fully experience the physical computing portion of this course, 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 physical computing 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?

The Intro to Programming in Python with Arduino course is designed for complete beginners with no previous background in computer science. The course is highly visual, dynamic, and interactive making it engaging for new coders.

Physical Computing Demos

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 Programming in Python with Arduino course with CodeHS? Get in touch, so we can help you bring CodeHS to your school!

Bring to My School


Intro to Programming in Python with Arduino is aligned with the following standards

Standards Framework View Alignment
Arkansas 9-12 View (51.6%)
Utah 9-10 View (45%)
Utah 11-12 View (40%)