THE “ARDILLA” PLATFORM FOR C/C++ PROGRAMMING PRACTICES
In this paper a hardware and software platform is described. It allows the students of C/C++ programming subjects to perform practical sessions, in which they are able to operate real devices. The practices are made remotely through Internet and offer the student the possibility to operate the equipment at our laboratory in a flexible schedule, obtaining an unlimited access to the subject’s resources, reducing infrastructure requirement.
In the last years, the teachers in charge of the C/C++ programming subject have been observing that the students show little interest in the practical sessions.
In order to change this situation, the teachers involved in these subjects have tried to move towards an entirely practical approach. Generally, the problem with this solution is that a large quantity of real devices needs to be purchased and prepared for the practical sessions, needing a large initial investment and generating troubles.
In order to solve the problems previously mentioned, we have designed a hardware system that is based on the Arduino open hardware platform, that consists of a board with digital and analog inputs and outputs and is based on a Atmega8 Atmel processor. This board communicates with different modules, each one oriented to a particular practical session. The modules can be exchanged and replaced according to the needs of the subject. The Arduino board operates the modules based on the programs uploaded by the students and is able to actuate on DC motors, LEDs and LCDs.
The Arduino board can be programmed via an USB port that is connected to a GNU/Linux server. The results obtained when executing the program on the Arduino board are viewed by the student, thanks to a streaming video server. In the GNU/Linux server a set of applications have been developed in order to manage users, upload the practices. In addition, a graphical interface allows the users to compile the programs and check the compiling errors in a remote way.
In addition, we have implemented a software platform (server side) that allows the student to connect remotely to the system using a web browser. Each student is provided with a username and a password. Once the connection is established, a C/C++ source file can be uploaded. Next, the file will be processed using the AVR-GCC compiler which will show any error by means of a PHP interface. After this, the student will be able to correct any error and upload the source files again, where the compiling process will be repeated. Finally, when the code is compiled without problems, the student will be able to observe the results by means of a real time video streaming.
In this paper we present a robust system that allows to carry out practical programming sessions with a real device. The main advantages of the system are its flexibility and the simplicity to repair failures. Moreover, the system allows to operate 3 Arduino boards by a large number of students. Thus, the investment in the Arduino boards that actuate on the real system is reduced. Finally, it is possible to store all the videos, data and errors of each practical session.
In our opinion, the main objectives have been fulfilled. This conclusion will be validated by several results obtained during the practical sessions, namely: number of students assisting to practical sessions and a several opinion tests. The results demonstrate that the assistance to practices has increased significantly, as well as the students’ interest in the subject.