<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Collaborative Learning Using Git with GitLab in Students of the Engineering Programming Course</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Universidad Nacional de San Agust ́ın de Arequipa</institution>
          ,
          <country country="PE">Peru ́</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>1984</year>
      </pub-date>
      <fpage>0000</fpage>
      <lpage>0002</lpage>
      <abstract>
        <p>This research has used Git, software for Version Control, as well as the GitLab web platform for teaching programming collaboratively, which has strengthened collaborative learning in the classroom, a skill that for a long time was a very alternative important for team teaching of programming courses in engineering schools; The use of the Git tool helped the teacher to improve the teaching of programming and allowed through the GitLab platform for students to interact and develop the skills of critical thinking, teamwork, correcting and teaching to program low-performance students , the results of the capacities were visualized and quantified through the reports delivered by the GitLab web platform.</p>
      </abstract>
      <kwd-group>
        <kwd>Collaborative Learning</kwd>
        <kwd>Programming</kwd>
        <kwd>Version Control System</kwd>
        <kwd>Git</kwd>
        <kwd>GitLab</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>With the demands of technological advances in software, it is required that
programming teams work in a coordinated and collaborative way, skills that
every programmer must have today. In engineering careers, version control
systems are used, a tool for learning software projects, in this research we
present the results of using the GitLab web platform, which implemented
collaborative learning in the programming course.</p>
      <p>
        In GitHut como Herramienta Docente [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] presents a teaching experience
in the subject related to software engineering where GitHub is used as a
basic teaching tool for the development of the practical part of the course.
This contribution focuses on motivating this experience, explaining its
implementation, evaluating the benefits and risks, which concludes that Git
when applied to teaching is a learning and teaching management tool; It also
concludes that the emergence of platforms such as GitHub poses new challenges
to teaching and should be integrated with existing educational platforms.
In Git on the Cloud in the Classroom [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] demonstrates the benefits of
using Version Control in courses of any engineering career; they conclude that
engineering students must be experts in the use of version control software as
part of the presentation of their work, they also conclude that said software tool
is simple to use to store versions of files in the cloud to coordinate and send the
works.
      </p>
    </sec>
    <sec id="sec-2">
      <title>In Using GitHub in the Classroom – a Collaborative Learning</title>
      <p>
        Experience [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] it presents the results of a collaborative learning experiment
conducted through the use of GitHub in laboratory tasks, where they focus
research on the direct interaction of students in the learning process of others.
The students formed a more critical approach to the software developed, helped
to improve not only their own software skills but also group learning.
      </p>
    </sec>
    <sec id="sec-3">
      <title>In Using GitHub Classroom To Teach Statistics [3] through the teaching</title>
      <p>of Git and GitHub, they implemented GitHub Classroom in two educational
environments: an introductory laboratory of computational statistics and a
more advanced course of computational statistics. It was concluded that the
Git workflow can be used in both introductory and advanced courses and by
instructors without previous experience in GitHub, thus motivating the use
of version control in students and having more confidence in their ability to
collaborate using this tool.</p>
      <p>In the present investigation, the web platform GitLab was used because it
is open source and allows to create private projects unlike GitHub, a very
important feature when deciding which web platform to use in the laboratory.
2
2.1</p>
      <sec id="sec-3-1">
        <title>The Experience with Git and GitLab</title>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Space in which the Experience is Developed</title>
      <p>It has been developed and implemented with the students of programming of
the first year of engineering in courses of Computing I and Computation
II, in the professional career of Telecommunications Engineering of the National
University of San Agust´ın of Arequipa, Peru.
2.2</p>
    </sec>
    <sec id="sec-5">
      <title>Duration</title>
      <p>During the first and second semester of the 2017 academic year.</p>
    </sec>
    <sec id="sec-6">
      <title>That motivated him to develop the experience</title>
      <p>One of the pillars of the programming course is to be able to develop applications
in groups, without a suitable tool it is not possible to develop this skill in class.
During the development of my Master’s thesis is that I know the Git and GitLab
software tool very useful for editing my thesis in LATEX, programs and documents,
after knowing that it can be used to teach collaborative learning in groups is
that I decide to use the tool during my programming courses.
2.4</p>
    </sec>
    <sec id="sec-7">
      <title>Software tool used</title>
      <p>
        Git : Version control software developed by Mr. Linux Torvalds, designed to
control versions of applications with a large number of source code files [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
GitLab : Version control web service, allows you to store versions of files in the
cloud with an open source license, sharing it privately or publicly [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
2.5
      </p>
    </sec>
    <sec id="sec-8">
      <title>How the experience developed</title>
      <p>To obtain collaborative learning in software programming laboratories we have
used the GitLab web platform.</p>
      <p>First, several groups of 05 students were organized in the laboratory, initially
they were asked to investigate the Git tool, so that they have prior
contact with the tool; the entire course management was through the virtual
Telecommunications Engineering classroom.</p>
      <p>
        Learning Git Subsequently they were handed a digital manual with the basic
Git commands [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <p>The basic configuration commands of the Git environment:
git config --global user.name "__Your name__"
git config --global user.email "__Your mail__"
As an initial practice they entered a local folder on the computer, Git is
initialized, its status is verified and if any changes were made to the files through
the following commands:
git init
git status
git log
They were taught to modify their program within the initialized folder and can
control the changes using the commands:
git add -A
git commit -m "___Detailed Comment of commit___"
Each student created their account on GitLab, the general working group was
created epit-programacion grouping in number of 05 users. Students were
trained to upload software projects from local folders to GitLab, using the
commands:
git remote add origin https://renbol@gitlab.com/renbol/Proyect.git
git remote -v
git push origin master
git add -A
git commit -m "___Detailed Comment of the commit___"
git push origin master
Each laboratory group member must clone the GitLab repository on your local
computer so you can contribute and send the changes to the repository master
through the commands:
git clone https://renbol@gitlab.com/renbol/Proyect.git
git remote -v
git status
git add -A
git commit -m "___Detailed Comment of commit___"
git log
git fetch origin
git merge origin/master
git push origin master
2.6</p>
    </sec>
    <sec id="sec-9">
      <title>Results of Collaborative Learning in GitLab</title>
      <p>The collaborative procedure to learn to program in the engineering course was
based on mastering Git and using GitLab to collaborate with the learning group.
In GitLab through the menu of Issues (see Fig. 1), the students were assigned
the programming tasks and could comment on their classmate’s code, with
feedback from all the members of the group, commented on and corrected their
final code.</p>
      <p>The result of all the comments of each member of the collaboration group as
well as the corrections made to it can be observed and quantified in the menu
Comments (see Fig. 1)
The teacher entered to review the code of each program and visualized
the changes he has suffered since the code began to be written, until its
completion even sequentially through the menu Commits (see Fig. 2), here
the modifications to the program code are quantified.
The teacher also used the menu of Contributors (see Fig. 3) where you can
observe in a graphic way how each group member has worked their code and a
group graphics, where it is observed how students work at different times during
the week.
In the Graph menu the versions, contributions, modifications and results of the
code are represented chronologically.</p>
      <p>The quantifiable results are taken from the Comments menu and Commits
menu that allowed us to have data of the collaborative work carried out by the
group of students in each assigned software project.</p>
      <p>We show results of the project called Work Collaborative IV in the course
of Computing I (see Fig. 4) and of the project called Tuples and List in the
course of Computing II (see Fig. 5).</p>
      <p>In the graphs the collaborative learning is highlighted to the groups that if they
worked collaborating with the learning of their peers, these groups have a red
bar of up to 140 Comments the highest, the groups with red bar are also
observed very small where the collaborative contribution is very low reaching
the groups up to 2 Comments (see Fig. 5), in general we can indicate
that the Computation II groups agreed to work collaboratively more than the
Computation I groups.
3.1</p>
      <sec id="sec-9-1">
        <title>Results and Discussion</title>
      </sec>
    </sec>
    <sec id="sec-10">
      <title>How has the impact on the student’s learning processes been?</title>
    </sec>
    <sec id="sec-11">
      <title>How have you managed to show such an impact?</title>
      <p>Collaborative learning of group software programming, through GitLab has
been more organized, groups did not need to meet to distribute, sort and
combine their contributions, there is feedback from the group to improve
group learning, such as there are the files stored in the cloud, the work is
easily accessible by the students and there is detailed control of each one’s
contribution to group learning.</p>
      <p>Collaborative learning has been evidenced through the graphs and data of
GitLab (see Fig. 4, 5, 2 and 3) it is also evidenced by the impact on the grades
compared to 2016, in addition each student was able to quantify and rate the
performance and contribution of their classmates using as a tool a GitLab,
placing a grade that was averaged with that of the teacher, also based on the
evidence of collaboration, the student had the option of requesting that one or
more classmates leave the group due to poor performance.
3.2</p>
    </sec>
    <sec id="sec-12">
      <title>State the achievements and difficulties encountered in the experience</title>
      <p>After working 02 semesters applying Git and GitLab in the computer
classrooms of Computation I and Computation II it has been observed
that:
1. Students in groups have learned more than working individually, the GitLab
tool has allowed them to teach their low-performance peers to program.
2. The students did a more organized group learning, without having to meet
physically, they also have detailed control of the changes made in their
programs chronologically.
3. The teacher and student could rate the group and individual performance,
thanks to the reports in GitLab.
4. Students of the Computer I course due to their educational habits,
compared to the students of Computer II, it was difficult to change their
learning habits, which caused their programming laboratory performance to
be low.
3.3</p>
    </sec>
    <sec id="sec-13">
      <title>Describe the possibility that your experience has of being replicated in other courses, / activities / classroom / laboratory, etc.</title>
    </sec>
    <sec id="sec-14">
      <title>The Version Control Systems with Git and/or GitLab should be used by</title>
      <p>engineering students both undergraduate and postgraduate in the preparation of
any document individually and in groups, which will allow them to elaborate and
correct chronological of all his works in a very detailed way. GitLab should be a
tool for engineering teachers in teaching their courses for collaborative learning,
accompanied by ongoing training on its use and advantages.
4</p>
      <sec id="sec-14-1">
        <title>Conclusions</title>
        <p>In the present work it was demonstrated that the use of Git and GitLab as tools
that help collaborative learning is very useful in the classroom and laboratory for
the engineering teacher and student who study in the first year of studies, despite
the fact that Engineering In Telecommunications it is not a career specialized in
programming learning, very good results were obtained, which indicates that any
professional career in engineering should use these tools. It was demonstrated
how simple and practical it is for the student to use Git, in addition that the
teacher can easily use the GitLab platform for collaborative learning in the
classroom and laboratory. The experience was centered in GitLab for being an
open source platform and where you can create private projects, 100% platform
compatible with the Git tool, which give you the great advantage over other
platforms. It would be a new challenge for engineering teaching to apply the Git
and GitLab tools in all the courses that require writing reports or important
documents such as thesis and research papers in a very simple and practical way.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <article-title>Social coding in GitHub : Transparency and Collaboration in an Open Software Repository</article-title>
          . ACM Press (
          <year>2012</year>
          ). https://doi.org/10.1145/2145204.2145396
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Feliciano</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Storey</surname>
            ,
            <given-names>M.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zagalsky</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Student experiences using GitHub in software engineering courses</article-title>
          .
          <source>In: Proceedings of the 38th International Conference on Software Engineering Companion - ICSE 16</source>
          . ACM Press (
          <year>2016</year>
          ). https://doi.org/10.1145/2889160.2889195
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Fiksel</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jager</surname>
            ,
            <given-names>L.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hardin</surname>
            ,
            <given-names>J.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taub</surname>
            ,
            <given-names>M.A.</given-names>
          </string-name>
          :
          <article-title>Using GitHub Classroom To Teach Statistics</article-title>
          .
          <source>Journal of Statistics Education</source>
          <volume>27</volume>
          (
          <issue>2</issue>
          ),
          <fpage>110</fpage>
          -
          <lpage>119</lpage>
          (may
          <year>2019</year>
          ). https://doi.org/https://doi.org/10.1080/10691898.
          <year>2019</year>
          .1617089
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Francese</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gravino</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Risi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scanniello</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tortora</surname>
          </string-name>
          , G.:
          <article-title>On the Experience of Using Git-Hub in the Context of an Academic Course for the Development of Apps for Smart Devices</article-title>
          . In: DMS. pp.
          <fpage>292</fpage>
          -
          <lpage>299</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Git</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Web Page Git (Nov</article-title>
          <year>2019</year>
          ), https://git-scm.com/
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. GitLab, T.:
          <article-title>Web Page GitLab (</article-title>
          <year>Nov 2019</year>
          ), https://gitlab.com/
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Hsing</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gennarelli</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Using github in the classroom predicts student learning outcomes and classroom experiences: Findings from a survey of students and teachers</article-title>
          .
          <source>In: Proceedings of the 50th ACM Technical Symposium on Computer Science Education</source>
          . pp.
          <fpage>672</fpage>
          -
          <lpage>678</lpage>
          . ACM (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Kalyan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chiam</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sun</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Manoharan</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>A Collaborative Code Review Platform for GitHub</article-title>
          .
          <source>In: 2016 21st International Conference on Engineering of Complex Computer Systems (ICECCS)</source>
          . IEEE (nov
          <year>2016</year>
          ). https://doi.org/10.1109/ICECCS.
          <year>2016</year>
          .032
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Kertesz</surname>
            ,
            <given-names>C.Z.</given-names>
          </string-name>
          :
          <article-title>Using GitHub in the classroom - a collaborative learning experience</article-title>
          .
          <source>In: 2015 IEEE 21st International Symposium for Design and Technology in Electronic Packaging (SIITME)</source>
          . IEEE (oct
          <year>2015</year>
          ). https://doi.org/10.1109/SIITME.
          <year>2015</year>
          .7342358
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Lawrance</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jung</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wiseman</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Git on the cloud in the classroom (</article-title>
          <year>2013</year>
          ). https://doi.org/10.1145/2445196.2445386
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Marquardson</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schuetzler</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <article-title>Teaching Tip: Learning by Teaching through Collaborative Tutorial Creation: Experience using Github and AsciiDoc</article-title>
          .
          <source>Journal of Information Systems Education</source>
          <volume>30</volume>
          ,
          <fpage>10</fpage>
          -
          <lpage>18</lpage>
          (01
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>Lopez</given-names>
            <surname>Pellicer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.J.</given-names>
            ,
            <surname>Bejar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Latre</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.A.</given-names>
            ,
            <surname>Nogueras</surname>
          </string-name>
          <string-name>
            <surname>Iso</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Zarazaga</given-names>
            <surname>Soria</surname>
          </string-name>
          ,
          <string-name>
            <surname>F.J.:</surname>
          </string-name>
          <article-title>Github como herramienta docente</article-title>
          . In: Actas de las XXI Jornadas de la Ensen˜anza Universitaria de la Informa´tica. pp.
          <fpage>66</fpage>
          -
          <lpage>73</lpage>
          . Universitat Oberta La Salle (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Ruiz</surname>
            ,
            <given-names>J.A.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Palma</surname>
            ,
            <given-names>E.A.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Intriago</surname>
            ,
            <given-names>J.M.L.</given-names>
          </string-name>
          , Gonza´lez,
          <string-name>
            <given-names>A.H.</given-names>
            ,
            <surname>Espinosa</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.M.</surname>
          </string-name>
          : Configuracio´n de Usuarios en Git Para Grupos de Desarrollo en Entornos Universitarios.
          <source>Revista San Gregorio</source>
          <volume>1</volume>
          (
          <issue>9</issue>
          ),
          <fpage>84</fpage>
          -
          <lpage>89</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>Scott</given-names>
            <surname>Chacon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.S.: Pro</given-names>
            <surname>Git. APRESS L.P.</surname>
          </string-name>
          (
          <year>2014</year>
          ), https://bit.ly/339ZogN
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Vasilescu</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Filkov</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Serebrenik</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Perceptions of diversity on GitHub: A user survey</article-title>
          .
          <source>In: Proceedings of the Eighth International Workshop on Cooperative and Human Aspects of Software Engineering</source>
          . pp.
          <fpage>50</fpage>
          -
          <lpage>56</lpage>
          . IEEE Press (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Zakiah</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fauzan</surname>
            ,
            <given-names>M.N.</given-names>
          </string-name>
          :
          <article-title>Collaborative Learning Model of Software Engineering using Github for informatics student</article-title>
          (apr
          <year>2016</year>
          ). https://doi.org/10.1109/CITSM.
          <year>2016</year>
          .7577521
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>