Towards education alternatives to teaching and learning of programming: A course experience using open hardware tools

This full paper proposes an educational methodology to teaching and learning of programming using both open hardware tools and industrial components such as Arduino, Raspberry Pi, three phase motors and variable speed drives. The methodology aims to improve the algorithmic thinking in the students due to the deficiencies detected in it, as well as, it searches that the students learn a second programming language, using hands-on designs and activities that require the components mentioned. In addition, the methodology has been employed into the curriculum of a course of programming known as (open hardware) for students of technology in electronics (n = 22), observing that the students learn programming concepts in a better way and their motivation and engagement towards the software area was increased during the course. To technical level, the methodology uses the programming language Python in order to interact with the different ports, peripherals and utilities of the platforms mentioned, creating a link between these elements and the aspects concerning the software design, e.g., data types, classes, methods or Graphical User Interfaces (GUIs). Finally, the methodology takes into account two important aspects, firstly, the skills developed by the students in the proposal are involved into the BoK (Body of Knowledge) of different engineering areas as embedded systems, control and computer science and, secondly, programming is perhaps one of the most difficult areas in engineering but in turn, it has a ubiquitous nature in the areas mentioned.

[1]  Madonna Margaret Teague,et al.  Pedagogy of introductory computer programming : a people-first approach , 2011 .

[2]  Wim Jochems,et al.  A sampled literature review of design-based learning approaches: a search for key characteristics , 2013 .

[3]  David W. Johnson,et al.  Cooperative Learning: Improving University Instruction by Basing Practice on Validated Theory. , 2014 .

[4]  Ali Mili,et al.  Programming Language Use in US Academia and Industry , 2015, Informatics Educ..

[5]  Yoong Cheah Huei Benefits and introduction to python programming for freshmore students using inexpensive robots , 2014, 2014 IEEE International Conference on Teaching, Assessment and Learning for Engineering (TALE).

[6]  A. Ravishankar Rao,et al.  Development of an embedded system course to teach the Internet-of-Things , 2018, 2018 IEEE Integrated STEM Education Conference (ISEC).

[7]  Peter Jamieson,et al.  More missing the Boat — Arduino, Raspberry Pi, and small prototyping boards and engineering education needs them , 2015, 2015 IEEE Frontiers in Education Conference (FIE).

[8]  Jonathan Álvarez Ariza,et al.  A proposal for teaching programming languages through open hardware tools , 2016, 2016 IEEE 8th International Conference on Engineering Education (ICEED).

[9]  Jorge López,et al.  Application of an educational strategy based on a soccer robotic platform , 2013, 2013 16th International Conference on Advanced Robotics (ICAR).

[10]  Ami Marowka On parallel software engineering education using python , 2017, Education and Information Technologies.

[11]  Yao Liang,et al.  Raspberry Pi: An Effective Vehicle in Teaching the Internet of Things in Computer Science and Engineering , 2016 .

[12]  José M. Blanes,et al.  Designing Arduino electronic shields: Experiences from secondary and university courses , 2017, 2017 IEEE Global Engineering Education Conference (EDUCON).

[13]  S. M. Gómez Puente,et al.  Design-based learning : exploring an educational approach for engineering education , 2014 .

[14]  Jonathan Álvarez Ariza,et al.  A proposal of educational model for research incubators in technological programs of electronics , 2016, 2016 IEEE 8th International Conference on Engineering Education (ICEED).

[15]  David H. Jonassen,et al.  Toward a design theory of problem solving , 2000 .

[16]  José Francisco de Magalhães Netto,et al.  Remote robotics laboratory as support to teaching programming , 2017, 2017 IEEE Frontiers in Education Conference (FIE).