DIGITAL LIBRARY
SOLUTIONS TO PROGRAMMING PROBLEMS AS LEARNING OBJECTS ON A GITHUB REPOSITORY
Univeridad of Almería (SPAIN)
About this paper:
Appears in: INTED2022 Proceedings
Publication year: 2022
Pages: 9888-9894
ISBN: 978-84-09-37758-9
ISSN: 2340-1079
doi: 10.21125/inted.2022.2607
Conference name: 16th International Technology, Education and Development Conference
Dates: 7-8 March, 2022
Location: Online Conference
Abstract:
This paper shows how a set of learning objects is being developed for the subject of programming in the Industrial Engineering studies at the University of Almería. The teachers have decided to extend the previous works, which were based on collaborative learning [1], to incorporate these problems as learning elements within the GitHub platform, specifically within the repository, [2]. Each problem must be solved by generating a program/solution in a specific programming language that is generating a code program in C.

Programming is neither more nor less than building programs, where a computer program is understood as a sequence of instructions that a computer can understand and execute, and that solves a specific automatic information-processing problem. In order to solve that problem, a program may be developed and deployed. So, problems should be the core to guide students while they learn programming. With this idea in mind, we have defined and solved a set of problems, each one becoming a learning object. These learning objects have a double objective: on the one hand, to show simple and significant examples of the main programming concepts, and, on the other hand, they represent a set of problems that can be reused to any technical degree.

One of the key decisions has been the definition of the architecture in which the learning objects are going to be deployed. It was firstly identified that the deployment must be public and secondly, that the version control platforms, which are basic tools in the development of software applications, have to be the support for the solutions to be offered to and by the students.

Starting from the repository, the students will develop their own solutions to the problems by duplicating/forking the initial work and generating content that can be incorporated (merged) into the initial repository. In this way, the teams of students, as well as acquiring teamwork skills will be the creators and consumers of contents produced by the rest of their peers in terms of different solutions to the same problems. The repositories generated by each teams can be merged into the root repository using pull requests, so that students can not only generate new learning objects, but also practice on a real-world tool for collaborative software development such as GitHub, for version management and generation of branches in projects.

The problems have been structured following the classification of macro-learning, meso-learning and micro-learning, where the last level are the problems. The element in the first level are: First steps, Structured programming (Sequence / Selection / Iterations/ Nested iterations), Modular design (Modular decomposition /Recursion /Functions as parameters), Data structures (Unidimensional arrays/Multidimensionals arrays/Records), Files.

With relatively little effort, attractive content can be generated in the field of programming for university students. A set of problems in the field of Industrial Engineering have been deployed on the GitHub platform that can be used as learning objects and collaborative work in programming subjects in technological studies. Although there is still work to be done, especially in the evaluation of the experience.
Keywords:
Programming, learning, coding, engineer, software, multidimensionals.