Choosing Arduino to Teach Programming
I wanted students to develop 21st century skills. Well, I thought I did. The truth is that 21st Century Skills is a real buzzword and I'm not sure many people are really sure what is really means. I knew that I believed that students should have at least a minimum level of programming in our digital world. This will certainly help them in the future. I was given the opportunity to design an elective course for my middle school students and one of its main focuses would be programming (at least the first year I taught it).
I went with Arudino development boards to get into the basics of circuits and programming. First, Arduino boards are relatively inexpensive. I thought it would be important for every student to have his or her own board so they could be hands on with both the hardware and software. Programming is not something that we learn well in groups. It's a "practice, make mistakes, and learn from them" kind of subject. Sure, students can work together at times to learn, but you won't learn to program simply by watching another group member code. The second reason for choosing Arduino was that it was an easy way for students to start with little or no experience. Even students who had never coded before could create a successful simple program in our first class period. Although it was simple, the potential for creativity and learning high level programming skills is nearly limitless. Advanced students could make complicated programs that could do nearly anything. Arduino had a "low floor, high ceiling" which is something that I always look for as a teacher. The third reason for choosing Arduino was it is not an educational programming piece of software. That may seem counterintuitive, after all I was using this for education. The fact is that some software geared towards teaching programming is meaningless outside of the classroom. Students spend time learning a language that is only used in education and while they may learn some programming principles, they do not truly know how to code. Arduino on the other hand, is used by engineers, prototypers, and hobbyists through college and beyond. This is exactly the authentic learning that I wanted for my students. Not some simplified version of a real-world situation, but the real thing and my students were up for the challenge.