Teaching with Gadgets

Recently I have had the privilege of trying out a series of gadgets designed to facilitate the process of learning programming and computer science. I’ve gotten a chance to use the Finch Programmable Robot, the Sphero Robotic Ball, the Raspberry Pi, Lego Mindstorms, and the Lilypad Arduino.

While I think these gadgets are all very exciting and have a lot of potential for use as teaching tools, I also see some problems with them.

Most of the gadgets are very expensive. The Sphero is $130, the EV3 Mindstorms kit is $350, the Finch robot is $99, and a wearable computing Lilypad starter kit is $60. In large classrooms, purchasing enough gadgetry for all the students just is not affordable. Especially in under-resourced, low socio-economic status schools, the funding for such classroom tools is viewed as peripheral.

Finch Robot

Many of the gadgets do not have direct ties to computational thinking (let alone computer science). The tools discussed in this post all have ways that they can be used to facilitate the teaching of computational thinking and computer science. Unfortunately, those lessons are not necessarily obvious. I cannot just set up a group of students to play with a Sphero and expect them to walk away understanding the principles of abstraction, pattern recognition, algorithmic design, etc. The Mindstorms and Lilypad kits encourage students to spend a lot of time (like, hours) with assembly before they even encounter elements of computing. If these tools are going to be used as a mechanism for teaching CT or CS to youth, they need to be accompanied with lesson plans, classroom integration ideas, possibly even professional development for teachers who may not be familiar with CT and CS. The gadgets themselves are not standalone ways to solve education problems with computer science.


The use of gadgets targets a specific type of student. Now, I do not have data to back up this claim, but I’m working on reading what’s out there in the research world about introducing CS to kids via robotics. All I know is from experience and personal observations. But, it seems to me that the use of robots and gadgets in lessons engages certain types of students, perhaps people who are motivated by engineering, building, creating. Perhaps robots are more engaging to the majority of students than simple lectures are. But, I think that using robotics and gadgets as the only entry-point into CS for young people, or even as the most common entry-point into CS, may deter other types of students.

Raspberry Pi

Gadgets aren’t really what CS is about. To me, computer science and computational thinking are about problem solving; they can actually be divorced entirely from computers in a lot of cases. In contrast, gadgets lead people to think that the tools are the necessary ingredient in computer science – that I can’t do “cool things” without the right tools. I want students to know that their own problem solving process is the essential part in CS, and that their algorithmic thinking and design process have very little to do with the medium they are using and much more to do with how they view the world and how they think outside of the box when solving a new problem.

Lego Mindstorms

Gadgets discourage us from exploring other types of teaching tools. I feel like there is a constant race to invent the next coolest tool in teaching students to program. This focus in engineering education detracts from talented educators and engineers exploring other, more diverse, free ways to introduce CS concepts to young people. Why don’t we think about how computing relates to ballet or rapping or sculpture or social networking? Chris Starr from the College of Charleston says that “computer science is the liberal art of the 21st century,” and I agree with him. So, lets explore other ways to access this art, since computing has now entered almost every aspect of daily life.

Lilypad Arduino

So, those are some of my gripes with using gadgets in the classroom. Don’t get me wrong – I think that gadgets can be great teaching tools when used appropriately and in some sort of larger computational thinking curriculum context. I’m interested to hear other people’s thoughts and experiences in regards to this topic. Leave ideas in the comments, please!