Why schools should be careful when using Arduino code for projects
Everyone is busy, teachers included.
Programming is a tricky topic to grasp and teaching it, much, much harder - especially with a range of abilities and interest in the classroom.
One of the nice things is, when using something like arduino, and some kind of hardware like a keypad and an LCD screen, its really easy to find some ready to go code.
This is great as it means, students can get something up and running fairly quickly, they can see the end result and will hopefully want to take their work further.
However, there is also a downside, that schools need to be aware of.
The code they use may hinder their learning. Without access to someone else's code, when a Programmer/Roboticist is using a new piece of hardware, they need to look up the schematic and some electronics to see how it's put together and how it will interface with the arduino.
From this, they then work out where the inputs/outputs are and why which is which (for example when using a matrix style keypad) and how and when to read each pin to make it work in the context that they want.
This is a fantastic and entirely useful thing for kids to do - both at school or home on personal robot/arduino projects.
It is a skill to be able to look at what you've been given and working out how it works and how to get it to do what you want.
Sometimes, if kids are simply given the code that works, and they've got their hardware working and it looks fairly impressive, there is a danger that they will stop there (depending on level of interest of course) and decide that they know it or 'done it.'
This is fine to a certain extent and may well tick some boxes for teaching, but its not instilling the curiosity and puzzle solving skills that kids need to become engineers, or indeed good employees, that figure out new things where the answers haven't yet been given by someone else.
So using existing code is fine, so long as students are made to dissect every single line, knowing why the variables are needed, which inputs/outputs do what and what happens if you remove certain functions and so on.
Even if they get it working first time, make them find the datasheets for their equipment and figure the basic electronics that go with it.