Skip to content

Latest commit

 

History

History
63 lines (53 loc) · 3.31 KB

2023-04-26-HackyHour-9.md

File metadata and controls

63 lines (53 loc) · 3.31 KB

Continous integration (CI) in teaching

Presenter: Philipp Kleer

Useful links

Presentation (PDF) in german
The GitLab project Philipp created

Context on CI/CD

CI/CD stands for continuous integration (CI) and continuous deployment (CD)
It is a concept used in software development and operation in order to create a "pipeline" where new improvements are integrated into software already used by users as easy and fast as possible.
These integrations are then checked for different aspects e.g., errors, if these checks pass, the new version is deployed to the customer/user. The overall idea is to reduce the time between changes in software and their arrival at the user side and lower the potential for human errors.
The major way to try to achieve this goal is by automating a lot of the steps between development and operational software at the user side.
GitLab provides a system on which GitLab's users can build these automatic processes.

This automation system in GitLab can also be used for other tasks, that are not necessarily tied to software development.
You can, for example create a process that automatically compiles a PDF of your files in a GitLab repository every time you changed something in these files and committed them to GitLab.

Why use git/CI in teaching

  • Students who (later have to) work with datasets need skills and experience in collaboration and project management as well as the corresponding tools (beyond Dropbox and E-Mail)
  • With git/CI collaboration is better structured and each students part becomes more visible (in a group-work scenario)
  • Controll/Correction workload for the instructor becomes less time consuming
  • The logic of testing is changed: from single one-time submission to a more real life experiance with iterative steps toward a sufficient solution.

Initial scenario: target group

  • Implemented in a BA study program
  • first practice in R/R Studio and social-science datasets
  • Use of R Studio cloud license made the whole implementation possible in the first place. Otherwise, the configuration effort would probably have been too high.
  • About 20 students and 2 tutors
  • Some students from the social sciences were not well experienced with information technology.

Course structure

  • 4 learning-blocks 3x 1.5 hours
  • three repetitions of code: preparation, practice on course, and obligatory "homework."

How we made use of CI

  • The usage of CI-stage "test" was sufficient to control synthax
  • GitLab was chosen in order to teach students one of the major code-collaboration tools.
  • Each task in a learning block got its own test.
  • Students committed their solution, GitLab ran the pipeline, and it returned success or failure.
  • Students had to read error reports (real world experience) and adjust their solutions accordingly.
  • For testing the R code, the R-package testthat was used.
  • Students were organised in subgroups of 4-5 per group.

Feedback from students

  • Course had no unusual rate of dropouts.
  • The use of the described system required an additional effort in learning and understanding Git and GitLab.
  • Next time,learning R, Git and GitLab will be split into two different parts in the introduction phase of the course.