I am a teacher of technics and informatics science in a Secondary School.
I am leading a group of students who learn how to make interactive objects with Arduino Starter Kit.
In this Kit there is 15 Projects that can students make.
I wish to measure their programming skills when their start the first project and when their finished the 15. Project.
Are there such tests to measure programming skills of students ( age between 12-15 ) for the Processing language?
CrossRoads, I rarely ever disagree with you, but technically speaking I don't think "Arduino programming is done in C++?" is a true Statement.
According to the Arduino reference, "The Arduino language is based on C/C++ and supports all standard C constructs and some C++ features. It links against AVR Libc and allows the use of any of its functions;"
The C++ language wouldn't include Standard Arduino Statements like digitalWrite, or cli.
The full paragraph that Pál quotes is:
Arduino is an open source physical computing platform based on a simple input/Output (I/O) board and a development Environment that implements the Processing language (www.processing.org). Arduino can be used to develop standalone interactive objects or can be connected to software on your computer (such as Flash, Processing, VVVV, or Max/MSP). The boards can be assembled by hand or purchased preassembled; the
open source IDE (Integrated Development Environment) can be downloaded for free
from www.arduino.cc.
I wish to measure their programming skills when their start the first project and when their finished the 15. Project.
I make kits that are used by thousands of students. I believe you need to 'test' more than 'programming' because the subject is "Physical Computing" and so it includes a significant amount of electronics and knowledge about sensors and actuators etc.
Assessing their overall project including their documentation is important. Consider this as "Engineering" and not just "Programming".
You might look at this section of my robot kit Tutorial (HERE) for an overview of the subject.
There are some example software sketches to look at HERE. You also may find THIS template useful for students to get organized. There is a more complex example HERE That may be an example of programming and documentation and organization. (In MY favorite style of course!)
Let us know how this all works out for you and your students.
I figured Processing was code that runs on the PC side (Flash, Processing, VVVV, or Max/MSP), while the C++ code that is written in the IDE runs on the Arduino.
The functions/macros/classes/etc. that the Arduino IDE implements are all C++ based, yes? Do any of the 15 starter projects use code that runs on the PC? Probably not. Hence C++ programming, vs Processing programming.
Could all just be semantics too. I think Terry has the right guidance on this.
terryking228:
I believe you need to 'test' more than 'programming' because the subject is "Physical Computing" and so it includes a significant amount of electronics and knowledge about sensors and actuators etc.
Assessing their overall project including their documentation is important. Consider this as "Engineering" and not just "Programming".
CrossRoads:
I figured Processing was code that runs on the PC side (Flash, Processing, VVVV, or Max/MSP), while the C++ code that is written in the IDE runs on the Arduino.
The functions/macros/classes/etc. that the Arduino IDE implements are all C++ based, yes?
Yes, indeed.
CrossRoads:
Do any of the 15 starter projects use code that runs on the PC? Probably not.
No, they do not run any code on PC but on the Arduino only.
If the completed device works according to spec, pass 'em. If it doesn't, then something between fail and partial credit. If they can't explain how their code works, hand 'em over to the disciplinary committee for academic fraud. If all the kids pass, pick a tougher project.
Perhaps a good way to go would be "this sketch does X" (and confirm it does) "modify it to do Y". Different delay, extra button. That is, rather than attempting to teach good programming ex nihlo, have them start with a properly built sketch. They'll (hopefully) get a feel for what robust code looks like.
An interesting approach to this might be to write a test harness on some other arduino. That other arduino would run through a set of automated tests - applying 5v to pins, checking the outputs. This takes some of the subjectivity out of the equation.