Available online at www.sciencedirect.com
ScienceDirect Procedia - Social and Behavioral Sciences 116 (2014) 1305 – 1308
5th World Conference on Educational Sciences - WCES 2013
A Learning Resource to Acquire Engineering Skills Through Programming Languages A. Queiruga-Dios a *, A. Hernández Encinas a, I. Visus Ruiz a, L. Hernández Encinas b, V. Gayoso Martínez b , E. Yuste Domínguez a a b
Department of Applied Mathematics, E.T.S.I.I. of Béjar, University of Salamanca, Béjar, 37700, Spain. Information Security Institute (ISI), Spanish National Research Council (CSIC), Madrid, 28006, Spain.
Abstract In Science and Engineering studies, MATLAB is one of the preferred tools for scientific computing. Even though the learning curve of MATLAB is moderate, students at the first courses of the new Bologna degrees usually find some difficulties when trying to apply their knowledge of this software package to other technical subjects. With that problem in mind, the University of Salamanca (Spain) developed an application that allows students to learn basic programming concepts and, at the same time, to solve several typical problems that appear in subjects like Electric Circuits or Mechanic Vibrations. The proposed tool was implemented using MATLAB and Visual Basic, as this programming language offers the possibility to create attractive and easy to use graphical interfaces.
© 2013 The Authors. Published by Elsevier Ltd. Selection and/or peer-review under responsibility of Academic World Education and Research Center.
Keywords: Information technologies, learning resources, MATLAB, programming languages; 1. Introduction The Bologna Accord has supposed a lot of changes in higher education, especially in the educational system itself (http://www.ehea.info). Most universities are implementing new teaching-learning techniques, moving from a traditional blackboard-based education to a computer-based one, where software applications and other internet tools play an important role (Kraaijenbrink, 2007). In Science and Engineering degrees, students typically have to master not only the concepts, but also the tools needed to use those concepts in a practical way. As pointed out by several academic articles, for example (Lavicza, 2010), (Guangpua, 2012), and (Güney, 2012), in technical studies it is very important to use scientific and mathematical software in everyday classes. One of the software packages best known in academic and professional circles is MATLAB, developed by The Mathworks, Inc. (http://www.mathworks.com/products/matlab/). MATLAB integrates computation, visualization, and programming in an easy to use environment where problems and solutions are expressed in mathematical notation (Attaway, 2011).
*
Corresponding Author name. A. Queiruga-Dios Tel.: +34-923-408080 E-mail address:
[email protected]
1877-0428 © 2013 The Authors. Published by Elsevier Ltd. Selection and/or peer-review under responsibility of Academic World Education and Research Center. doi:10.1016/j.sbspro.2014.01.387
1306
A. Queiruga-Dios et al. / Procedia - Social and Behavioral Sciences 116 (2014) 1305 – 1308
MATLAB is used as a complementary tool for different subjects of Science and Engineering degrees. For example, in the Industrial Engineering degree, MATLAB is used in subjects such as Electric Circuits, Automatics, Mechanical Vibrations, Simulation and Modeling, etc. Even though the learning curve of MATLAB is less steep than the learning curve of other programming languages such as C++, new students may find it a bit difficult to solve problems from their subjects using this environment (Attaway, 2010). This is especially the case when students are not accustomed to programming languages, as MATLAB includes instructions and control structures similar to the ones defined in C++ or Java. For example, if students want to use a function, a loop or an if statement, they must have the programming skills needed to understand them. With those problems in mind, the Engineering School of the University of Salamanca (Spain) decided to launch a project for the development of an application that would contribute to the learning of MATLAB and its application to different engineering problems. This application should have a basic and simple interface with which the students could easily interact and improve their skills in programming, mathematics, and other basic aspects of topics such as mechanics or electricity. With this type of application the student's own learning is transformed into a self-directed and self-managed process, which allows them to develop cognitive skills (Bringslid, 2011). Thus, students assume the responsibility for their own learning, and accordingly take the initiative in diagnosing their learning needs, choosing the appropriate learning strategies, and implementing them, so they can be evaluated at the end (Ibrahim, 2011). The objectives intended to be achieved with the completion of this work were: 1. Create an application that helps the students with the basic subjects of their curriculum. 2. Design an attractive application to manage and direct their study. 3. Develop the application that allows novice programmers to learn to use MATLAB. 4. Contribute to facilitate the adoption of the proper learning methodology for students of the first years of the degrees in the different specialties of Industrial Engineering. Although some of the examples included in this project are fairly straightforward, there are other more complex problems related to their final courses that students can solve using this application. This allows lecturers to relate parts of the mathematics subjects with different aspects of their own subject areas. Engineering students find more reasons to be active in classes and, in this way, they are able to apply them to formulate any real-life situation from a mathematical perspective (Hernández Encinas, 2012). 2. Description of the tool The application mentioned in the previous section was developed using Visual Basic, as the different forms and controls that this language offers make possible to create attractive applications for the end user. In this way, the application includes enough windows, options, and intuitive information so the user is able to execute step by step each one of the operations and the examples that are included as part of the tool. As it is customary, the application also includes a comprehensive user manual, with all the implemented features. The functionality of the application is distributed in seven menu entries: Basic Arithmetic, Algebra, Calculus, Statistics, Graphics and Images, Programming, and Applications. Each of these menus includes other submenus to facilitate to the student the access to the desired functionality. For example, the Applications menu entry is composed of the following submenus: Electric Circuits, Mechanic Vibrations I, and Mechanic Vibrations II. In any of the cases proposed to the user, the student must enter the correct MATLAB code if he wants to solve the problem. In this way, at the same time the student learns MATLAB, he applies that knowledge to specific problems of other subjects. 2.1. Mathematical functions and numerical calculations MATLAB was specifically design to work with matrices, that is why simple, special, and multi-dimensional matrices are included as central parts of the application (Knight, 2000).
A. Queiruga-Dios et al. / Procedia - Social and Behavioral Sciences 116 (2014) 1305 – 1308
With the tool that was developed under the aforementioned project, students can practice how to type a matrix, how to transpose it, or how to calculate the rank or determinant of a given matrix. Furthermore, matrices can be used to solve many kinds of problems; for example, linear system equations. In addition to the Algebra and Calculus capabilities, there is another menu option in the application dedicated to descriptive statistic and graphical representations like pie chart, bar chart or histograms. This functionality also allows to practice with linear regressions and to create confidence intervals. Figure 1 shows an example of mathematical functions, where the student must enter the proper MATLAB code in order to solve the limit of a function of one variable with the data proposed by the application.
Figure 1. Screenshot of one of the options related to mathematics.
In particular, the application window shown in Figure 1 is divided into two parts. In the first part, the concept of limit is defined and an example is provided. In the second part, a problem is proposed to be solved by the student. More precisely, the different elements that appear in Figure 1 are the following: (1) Definition of the concept of limit. (2) Figure that illustrates the concept of limit. (3) Statement of a solved example. (4) MATLAB code offered by the application to solve the example stated in (3). (5) Statement of a problem to be solved by the student. (6) Text box where the student must enter the MATLAB code in order to solve the problem. (7) Result of the problem. The button allows to display the output of the MATLAB processing (including eventual errors) in the text box. (8) Button that shows the correct code in case the student wants to verify his solution.
1307
1308
A. Queiruga-Dios et al. / Procedia - Social and Behavioral Sciences 116 (2014) 1305 – 1308
2.2. Software development Another significant part of the tool is related to the software development. As students are expected to use this tool in the early years of their university studies, and at that time they are not specialized in programming techniques yet, they need to start with basic concepts, like variable types, parameter definitions, and functions. In addition to that, they are not familiar with coding structures such as the for, while or if sentences. This application allows them to practice with this all of these concepts. 2.3. Engineering applications The proposed tool includes several applications. One of them, for example, permits to solve electric circuits using matrices in a system of linear equations. In this example, the resistances and voltages data provided by the application are necessary to calculate the intensities. That application panel contains two text boxes to include the MATLAB source code to calculate those intensities, and another text box for the result. Furthermore, another grey label shows the syntax necessary to introduce the required data. Another example is provided, where students must solve a problem related to mechanical vibrations. 3. Conclusions This contribution has presented a tool intended to facilitate the learning process and practical application of MATLAB programming. The application was designed for users with low or minimal programming skills, and it can be used to support subjects like Automatics, Electricity or Mechanics, as it includes core contents of several engineering and applied science studies. The application includes enough features so that the student can use it in an efficient manner as a self-directed learning tool, deciding what he wants to learn, how, and when. For these reasons it may be especially useful for students of the first years of engineering degrees. Acknowledgements This work has been partially supported by Ministerio de Ciencia e Innovación (Spain) under the grant TIN201122668, and by Fundación Memoria D. Samuel Solórzano Barruso under the project FS/19-2011. References Attaway, S. (2010). Using MATLAB to Teach Programming to First-year Engineering Students at Boston University. Retrieved September 13, 2012, from http://www.mathworks.com/company/newsletters/articles/using-matlab-to-teach-programming-to-first-year-engineeringstudents-at-boston-university.html. Attaway, S. (2011). MATLAB. A Practical Introduction to Programming and Problem Solving. Butterworth-Heinemann. Bringslid, O., Hernández-Encinas, A., Martín del Rey, A., Martín-Vaquero, J., and Queiruga-Dios, A. (2011). Case study: Coding theory subject design for engineering students at the University of Salamanca. Transactions on Advanced Research, 7 (2). Guangpua, L. ,Yuchunb, G. (2012). The Application of MATLAB in Communication Theory. Procedia Engineering, 29, 321–324. Güney, E., Ekşi, Z., Çakıroğlu, M. (2012). WebECG: A novel ECG simulator based on MATLAB Web Figure. Advances in Engineering Software, 45, 167–174. Hernández Encinas, A., Martín Vaquero, J., and Queiruga Dios, A. (2012). Interdisciplinary tasks: Mathematics to solve specific engineering problems. In 16th. SEFI MWG Seminar. Mathematical Educations of Engineers. Ibrahim, D. (2011). Engineering simulation with MATLAB: improving teaching and learning effectiveness. Procedia Computer Science, 3, 853– 858. Knight, A. (2000). Basics of MATLAB and beyond. Chapman & Hall/CRC. Kraaijenbrink, J. (2007). Engineers and the Web: An analysis of real life gaps in information usage. Information Processing & Management, 43 (5), 1368-1382. Lavicza, Z. (2010). Integrating technology into mathematics teaching at the university level. ZDM, 42, 105–119.