Defining STEM…

When teaching STEM to minors, a common trap you want to avoid is that of mis-defining what STEM is for your school and your children.  STEM is not simply buying a bunch of iPads toSTEM_Takers-to-Makers1_mini do art, music, or using technology to complete homework assignments and classwork. Unless we’re teaching our kids creative innovation in a STEM related area, then we’re just fooling ourselves and, sadly, our kids.  As I explained in a recent talk for would-be-STEM educators, STEM should be about transforming kids (through hands on experiences) from consumers to innovators; or, as I like to say,
STEM is about turning kids from Takers into Makers.


STEM Challenges in Education
I’m not an in-school STEM educator, but I have taught technology classes (and other Internet/technology) classes for a couple of decades now. In the process I have also met enough educators and heard their laments to know that making STEM more mainstream in our schools is no small task. Politics of STEM aside, there are still several levels of challenges that exist.

Willing/Prepared STEM Leaders: Schools that are lucky enough to now have a STEM budget are buying things like Ardunios, MakeyMakey or Lego Mindstorms at a break-neck pace in order to “get STEM” into their curriculum. However, as is often the case, after a school has defined what STEM is for their school,  you will often see that most of the adult teachers are hesitant (as most of us would be) to teach something they’re not an authority on.  Given this, most of the mainstream STEM education I’ve seen ends up falling on the shoulders of a one or two brave souls.  A heavy load that should be shared with more of our regular science, math, chemistry and computer teachers. More help on this challenge later in this piece.

Failure Paralysis:  Today’s kids view of failure is another major hurdle I repeatedly see in our schools. Teaching failure as a part of the learning and scientific process is critical in today’s can’t-fail, standardized-testing culture.  As I’ve told those in my teach-the-teacher classes, “Science won’t happen if we can’t get over our own fear of failure.”  Teachers who are willing to  model this and jump in and bravely learn and publicly fail alongside the kids, create an environment where STEM learning thrives. Kids are emboldened when they see an adult or teacher fail,  see how we shake it off or even embrace it, state what we learned from that failure, and move on. Failure is a part of science, some say the most critical aspect.  Some universities are now dedicating entire courses to failure to de-program entering freshmen of failure avoidance. That being said, if you find your kids can’t get over the actual term “failure” (as I’ve seen some kids really struggle with), then call such challenges mini-tests or mini-experiments.  “Hmm.. that test didn’t work.  Let’s try something different!”  Demonstrating failure in this way makes it easier for some kids to leverage failure as a natural part of learning without “being wrong”.

Multidisciplinary Learning:  In a perfect world, we would have three hour multidisciplinary (physics, chemistry, math, computer) STEM labs where the kids are free to explore the technology, google when they encounter problems, and teach each other in an almost Montessori format.  This is exactly how research labs at universities and real world corporations work when creating new products and services. Why aren’t we doing this in our schools? Speaking of thee hour exploration style formats…

Fitting STEM Into the Day:  Fitting STEM into the school day is whole other problem.  Some STEM subjects are squeezed in as a part of a technology club or after school program.   That being said, very few schools have moved in this direction so most are forced to work within the stringent 50 minute instructor-led, classroom/assignment format. Fifty minutes is barely enough time to jump into a new topic and really understand it in the context of the world, much less really get into the productivity zone of implementing it or learning it through hands on labs that stick. This translates into educators being expected to cram a “lesson” into a standard 50 minute classroom-box, and be prepared to have the class material, assignments, homework and curriculum all ironed out beforehand. This translates into a ton of extra work for the instructors, and in my opinion should be trashed as a failed 20th century education model. Okay, but revamping an entrenched system rarely happens all at once.  So, until then, I encourage educators to seek out readily available, creative commons based[1] (free) curriculum and resources that are everywhere[2].

Teaching the Teachers
Our Racksburg development office is a big fish in a little pond, and as such we do a lot in the ways of community STEM outreach.  In working with local K-12 schools and to helping them build up their own STEM programs, we are often being asked “Can you come show our teachers how to do/teach technology-X?”  (X often being things like Arduinos(C++), Raspberry Pis(python) or robotics).  We would normally get this query after gifting a school a pile of arduinos, robots, or sending them links to free STEM training resources[3].

After speaking to several public educators about teaching STEM themselves, I kept running into one rigid reality. Before teaching a STEM subject for the first time in a classroom format, most educators want to be taught themselves; or, at least led down the path in a more controlled environment so they don’t find themselves in the spotlight of a classroom full of kids asking questions they have no clue about.  This fear-factor of getting started in STEM may be because our classrooms are forced into teacher/class formats, but regardless of the cause, the reality exists. Embracing this reality I realized that just doing random community (kid) classes is not as impactful as would be teaching other teachers to bring our coding community’s content (from Let’s Code Blacksbrug! for example)  back into their own classrooms. This is where our teach-the-teacher Professional-Series workshops[4][5] came from.

If we (as engineers and developers) can help our public school teachers dip their toes into STEM, then we can help get them over the intimidation of jumping in and making a huge impact.  Then we as a community find ourselves in a better position to lead more of our kids down the path of STEM exploration and really start experiencing many more “Ahh Ha!” light bulb moments.



Tweeks, going over the I/O pins of the arduino and how to describe how they work to kids.

Our “Teach the Teachers” Experience
In light of all this– and as a part of our community STEM outreach program– we’ve now held two “teach-the-teacher workshops“[4][5] in the past few months. In each I provide the participants (several K-Community College educators) with a custom $25 arduino kit (seen in the photo of the teacher in the purple shirt), and all the training materials they could possibly use for a year to get them started in programming arduinos. The value here was that many of these teachers, some actual STEM school administrators, had never touched a line of code in their lives.. and by the end of the workshop they had written several C++ programs that took input and controlled things (sound, movement, displays) in the real world.


This science teacher’s first time building and coding an Arduino (in C++).

Our two day, six hour workshop covered:


  • Basic overview of the arduino hardware/software platform
  • Basic theory of C++ structure and syntax (simplified)
  • Overview of hardware inputs vs outputs (controllers and sensors)
  • Recipe “BUILD: Chaselight”
  • Recipe “OUTPUT: Sound Generation w/Arduino”
  • Freeform Build: Combining Sound Generation with other sensor (inputs)

We taught public teachers from all over the state of VA.


  • More C++ Programming Theory: Functions and Parameters
  • BUILD: “Sibling Detector Alarm” (using three recipes)
  • Teaching Robotics Based Workshops
  • Arduino Teaching & Research Resources
  • Arduino Hardware Resources (where to buy stuff)

Here are a couple of the really useful cheat sheets we included in our teach the teacher arduino workshop.. the arduino pinout diagram I previously mentioned as well as this really useful arduino programming cheat sheet.


The very popular arduino “sibling detector alarm”[6]. Tons of fun for students and teachers alike. :)

Format of Let’s Code’s Workshops
Our Let’s Code Blacksburg community workshops teach everything from C++ (on arduino) to python (in PyGame or Raspberry Pis) to javascript (in Minecraft/spigot).  As previously stated, all of our workshops are hands on, three hour, instructor led, and sometimes free-form exploration style labs. We customize our workshops into three specific “series” which target three specific audience types: Kids-Series (9-14), General-Series (any general person in the community), and Pro-Series (professional engineers and developers).

Some of our workshops use what’s called a “build sheet” that provide step 1, 2, 3 style instructions with TA sign-offs (so we can manage larger classrooms with minimal helpers) that will refer back to a “cookbook” for how to wire and code the various devices to be connected (more on this winning curriculum format later).  If it’s an intro level workshop, it’s also good to have at least a couple knowledgeable TA-helpers who are familiar with the basics of the technology we’re exploring together.  But while some workshops are step by step and have structure or build sheets, others are more free form, dynamic presentations, with interactive teacher/class coding led sessions.  The style is up to the instructor, but the latter does seem to require more in-front-of-the-class thinking on your feet and expertise. Thus far, however, all of our workshops are  hands on in nature and attempt to equip the participant with what they need to go home with to continue learning on their own.

Let’s Code arduino workshops that focus on “physical computing” – a term describing programming and controlling things in the real world – mostly use a “recipe” format for the curriculum.   Each input or output device you hook up (motors, buttons, lights, speakers, range sensor, etc) has its own “recipe” in our “cookbook”.  Each device recipe is a 2-3 page mini-document that has a What section (explaining the theory of the device), a How section (explaining how to connect it and the code to write to control it), and a Fail section that explains the different failure modes you might encounter if something goes wrong, how to do some small tests to discover what failed and ideas on how to fix said problems. These recipes all go into one “Arduino Cookbook” that is shared under the Creative Commons(CC)(BY)(SA) license and together with our build documents can be used by anyone to teach our lessons.

Our Arduino Cookbook  format is intended to make all class material reusable and modular. Say you want to “make” some sort of musical instrument you control with your hand you just thought up.  Then simply combine the speaker recipe with the range sensor or knob recipe, and poof. Instant Theremin (google it ;).


Kudos for the idea of the Arduino Cookbook goes to Monta Elkins, one of Let’s Code’s community volunteer instructors

How To Teach Failure
We’ve already touched on the importance of teaching the kids to embrace failure. However this needs to be done in context. Here are the three big take aways you want to drive home to kids about embracing failure as “the great teacher”:

  1. Let Go: To “do science”, we need to let go of both our pride and our assumptions (or what we “know”)
  2. Don’t Personalize Failure: People learn, experiments fail
  3. “Fail Small, Fail Fast, Fail Cheap!”:  Only make one small, incremental change at a time (don’t “bet the farm”) when failing

“Fail small, fail fast, fail cheap.
Don’t bet the farm” when failing.
— Monta Elkins


We sort of touched on points 1 & 2 earlier in this piece, but the third point is key to reaching success quickly (and safely). Whether coding a web page, blinking a bunch of lights, or building a spaceship – we don’t build the whole thing and then climb on like Wile E. Cyote and hit GO. That’s called “betting the farm” and it’s dangerous.  As our LCBB instructor Monta Elkins drives home, “Fail small, fail fast, fail cheap!”. Not only is it safer, but when something goes wrong, and you’ve only added or changed one small thing. You know exactly went wrong, and an idea of what to try to fix it succeed and learn.  When something goes wrong and you’ve added a ton of code, and expensive parts already, you’ll find diagnosing “the problem” can be nearly impossible and you’ll learn nothing.

STEM is all about turning our culture of takers into makers, but doing so can be a challenge.  However you decide to implement STEM in your group or organization, we at Rackspace (and Let’s Code Blacksbug!) encourage you to Just Do It! You don’t have to be an expert, or have a CS degree.  Hands on experiences are what expand kids horizons, and give kids the opportunity to discover their passions. But if we, the adults in their lives, hold back or allow failure paralysis to dictate our actions (or lack thereof), then we won’t be able to lead the next generation into the future.




[2] “50 Best Sources of Free STEM Education Online“,

[3] Free STEM Resources[3-1][3-2], my talk at the BI STEM Conference.

[4,5]  Rackspace/LCBB teach-the-teacher Professional-Series workshops

Let’s Code Blacksburg – “STEM Educator’s ‘teach-the-teacher’ Arduino Workshop

Rackspace – “2016-10_VT-STEM-Summit – STEM Education — Just Do It!

[6] The Let’s Code “Sibling Alarm” class handout, code and required Arduino Cookbook.

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS