J.A. Fernández-Madrigal

University of Málaga (SPAIN)
In modern graduate engineering courses, computer programming is a fundamental skill when applying theoretical concepts in practice because of two main reasons: firstly, most devices used in modern engineering are programmable —computers themselves, but also controllers, robots, data acquisition equipment, etc.—; secondly, in disciplines such as mechatronics, real-time systems, systems engineering, or robotics, the complexity of theory can be so high that teaching must be necessarily start at a minimum level of abstraction, typically provided by the implementation and analysis of the theoretical methods in a computer.

Unfortunately, there are several issues that prevent us from focusing the learning process appropriately on the relevant topics of these subjects. Maybe the most obvious is that the hardware devices used in the engineering work are rarely standardized, particularly in their programming frameworks; it is therefore very common that we need to provide background on several programming languages, environments, or even paradigms. Consider that in addition to this learning of software, the student must also be proficient in the mathematical analysis of the data gathered from the lab exercises, and must be able to relate them to the theoretical foundations given in class previously. Often, the achievement of all of this in one semester is difficult.

Here we address this problem by concentrating all the programming skills required for this kind of subjects, and also the analysis of data and the process of relating them to the theoretical background, on Matlab®. This environment was originally devised for mathematical calculations, but it is currently used in a wide range of engineering applications. Actually, it has become essential for analysing data, modelling many classes of systems and evaluating implementation alternatives. Although Matlab® is non-free, there are a number of really similar, non-privative tools aimed at the same target. Matlab® is considered fundamental in any engineering course at University, and, as such, it is usually learned by any student during his/her first academic years.

In this paper we describe how we have set up Matlab® as our basic programming, modelling, simulation and data analysis tool in a number of graduate engineering subjects of the computer engineering, mechatronics and telecommunication engineering programs of the University of Málaga during the last years. We also present some of the libraries we have programmed as extensions of the original system in order to connect it with diverse hardware devices: data acquisition cards, manipulator arms and mobile robots. They have been mostly programmed in the Matlab® programming language, thus reducing our own effort in implementing our approach. With this work we have established Matlab® as a prototyping workbench for producing, quickly and easily, computer programs and implementing algorithms that allow the students to manage a number of different devices in the lab with very low effort, and to relate the data obtained from the experiments with the powerful tools of analysis already included in its scientific toolboxes, without changing the working environment at any time. This has optimized the learning curve and concentrated the limited lab time on the really important topics of the subjects.