DIGITAL LIBRARY
PROGRAMMING COURSE TEACHING USING GITLAB
SUPSI - University of Applied Sciences and Arts of Southern Switzerland (SWITZERLAND)
About this paper:
Appears in: EDULEARN18 Proceedings
Publication year: 2018
Pages: 9540-9549
ISBN: 978-84-09-02709-5
ISSN: 2340-1117
doi: 10.21125/edulearn.2018.2286
Conference name: 10th International Conference on Education and New Learning Technologies
Dates: 2-4 July, 2018
Location: Palma, Spain
Abstract:
In Switzerland the dual education system combines an academic education with direct, practice-oriented vocational training. Within the context of Universities of Applied Sciences education, the teaching of most engineering subjects needs to complement the basic theory with its application to real examples and projects. For this reason, the students have to be ready to work just after their study finish and in particular for what concerns computer science programming courses.

In this paper we describe an innovative experience started in A.A. 2016-17 of exploiting nowadays consolidated information and communication technologies (ICT) for teaching coding skills in two Web Application software development engineering courses of a third-year bachelor course.

In this kind of courses there is a strong need for practical project assignments to students, carried out over 10-12 weeks of a semester, their management and evaluation, where is important not only the result obtained, but also how it has been implemented, i.e. what single lines of code have been written. The nature of this assessment task is a time-consuming process which involves a complexity in the analysis, evaluation and error identification, feedback provision, revision and final testing of correctness (the code have to run correctly).

Exploiting the advantages offered by a consolidated software development management tools such as GitLab, a web based Git-repository manager with wiki and issue-tracking features, integrated with a continuous integration and continuous delivery (CI/CD) environment for compiling (building) and easily make the developed application running, we organized a practical training path where the students could work on their personal computers, synchronize their development assignment online in the web repository, and testing the correct running of the code. This allowed the students not only to upload their final submitted assignment managing deadlines, but also to get contextualized feedback through comments on the exact line/instruction of code.

A detailed description of the methodological approach and the use of the GitLab tool in this teaching experience is presented together with a preliminary evaluation of the main findings.

In conclusion, compared to more traditional ICT tools such as learning management systems (e.g. moodle) this approach supports, on one hand, more appropriated activities for teaching programming skills, and requires, on the other hand, an extra management for the server hardware/software infrastructure (login, groups, projects, permissions, forking etc.) with a technical knowledge of the subject/tool. This is repaid in higher efficiency and accuracy of the semi-automatic evaluation of coding assignment also via unit testing, very important features for a software developer engineer.
Keywords:
Programming, teaching, GitLab, practice, assignments, evaluation.