Computer science teachers have well-defined requirements to meet as they introduce students to programming. As an example, The College Board’s AP Computer Science course documentation indicates that courses are required to cover the following including:

  • Variables and Assignments
  • Data Abstraction
  • Mathematical Expressions
  • Boolean Expressions
  • Conditionals
  • Nested Conditionals
  • Iteration
  • Developing Algorithms
  • Libraries
  • Random Values

The College Board leaves the language taught open to the curricular experts in the schools, but we have seen many teachers choosing JAVA. It is an excellent choice and is capable to teach all of these concepts.

Would you be surprised that the C/C++ language that is at the core of the Arduino family of microcontrollers can do all of these computational functions?

Plus, it is accessible enough that a 5th grade student can master these listed skills. In our experience, the Arduino C/C++ language is far more engaging than a screen only approach that dominates high school computer science classes today. Our approach to coding is to give students real-world, application-based, hands-on experiences. Rather than coding for abstract simulations, Arduino gives students a way to interact with their context in a significant and applied manner. Our process shown here gives students tangible experience with innovation, engineering, and science.

Image
Process

Additionally, we have paid close attention to other constructs and designed the projects to have students work in teams with distinct roles and skillsets employed. Writing, journaling, researching, presenting, innovating, and applying are all hallmarks of what students do when completing a project. Students are required to not only know their project but be able to demonstrate their understanding of each element to others.

But back to the coding skills that students acquire when working on our projects. Our project cover

  • Variables and Assignments
  • Data Abstraction
  • Mathematical Expressions (with an emphasis on scientific formulas and conversions)
  • Boolean Expressions
  • Conditionals
  • Nested Conditionals
  • Iteration
  • Developing Algorithms
  • Data Arrays
  • Libraries
  • Binary Coding

    AND

  • Interaction with Sensors
  • Integration of control devices including pushbuttons and potentiometers
  • Outputs to multiple display types (LEDs, RGB LEDs, LCDs, and LED Matrixes)
  • Use of sound making (buzzers)
  • Control of motors and servos
  • Digital design of prototypes
  • Integration with science (Biology, Chemistry, Physics, and Environmental Sciences)
  • Project Management and teamwork
  • Building physical prototypes

These additional elements form the foundation of physical computing and distinguish it from screen-based coding. Students have strong, positive, and visceral reactions as their LEDs light, their servos move, or their sensors detect and report the environmental conditions. These reactions are how we want our students to react as they learn and achieve. This has only reinforced our passion for physical computing and invite you to explore this with us.