I am regularly asked which is best, Pi or Arduino? This is a ridiculous question. It is like asking which is best, an apple or an orange. Put simply, they are completely different. The only similarity is that they both have GPIO (General Purpose Input and Output) pins, to which you can add buttons, sensors, lights, motors etc.
A Pi is a computer; a microprocessor. It is great for teaching Python and using this language for GPIO projects. It is also great for reprogramming Minecraft for free, again using Python. It is perfect for students who need to know Python for their GCSE Computer Science (see page ‘Why Pi’). They are tricky to set up and if not careful, can be short circuited, but still worth it (see page ‘setting up a Pi Lab’) especially for GCSE Computer Science students.
However, in many schools, the number of students going on to study Computer Science GCSE may only be 20% of the cohort. What about the other 80% of students who may be younger (Year 7 or 8), in large class sizes, not have access to the Pi Lab etc but you still want them to taste GPIO and computational thinking? At this stage they do not need to know GPIO Python, they just need to know what Computer Science is and whether it is right for them. The answer could be a £8 Arduino
This is not a computer, it is a microcontroller. It simply links to the computer using a USB lead and the computer is used to send a program to the Arduino (called flashing). All of the GPIO pins are laid out in order in a line. You will not short circuit an Arduino as easily as a Pi and can make simple GPIO projects- lighthouse, Knight Rider, traffic lights, pelican crossings etc. You can even stick a breadboard on top using a £3 plate called a shield to keep everything compact. Click here for Arduino_lesson 1, Arduino_Lesson2
A real tip with younger students is to use LEDs with built in resistors. This keeps things simple and stops your LEDs from getting damaged
You can use a version of Scratch (Scratch for Arduino or S4A) to write this program and teach all about GPIO at the same time (in preparation for GCSE Computer Science).
If you are tired of Scratch, you can use another simple visual program called Ardublocks which writes the code for you
Students can make a variety of projects – see Arduino Project Handbook for examples.
Therefore my advice would be:
1. Teach GPIO using Scratch and an Arduino. Easy, cheap, reliable, location independent with Y7&8. Also teach Sonic Pi also using a Windows PC.
2. Teach Python theory from an IDLE shell using a computer, maybe making an adventure game with Year 8&9
3. Teach Python GPIO, Minecraft etc using a Pi with GCSE Computer Science students in a Pi Lab in Y9/10/11