We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

ClassOps: pre-grading student assignments using CI pipelines

Formale Metadaten

Titel
ClassOps: pre-grading student assignments using CI pipelines
Serientitel
Anzahl der Teile
637
Autor
Lizenz
CC-Namensnennung 2.0 Belgien:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
Identifikatoren
Herausgeber
Erscheinungsjahr
Sprache

Inhaltliche Metadaten

Fachgebiet
Genre
Abstract
There are many things in which software can help grade computer science assignments, since these will consist mainly in executable pieces of code. However, in the same way DevOps will involve teams that code, test and set up infraestructure, ClassOps will have to add teachers to that equation. At any rate, it will imply that teachers will need to lay down in code the requirements of a student assignment (which can be as simple as testing for inclusion of a file or as complex of setting up the infrastructure to probe the code in different ways) and set up CI pipelines to actually test, and give meaningful (and fast!) feedback to the student so that it's included in their learning experience. This (lightning) talk will explain how the speaker set up that kind in infrastructure in Travis and, lately, GitHub actions, and how that resulted as a learning experience for him and his students. For professors, grading is grunt work, and mostly done manually. As such, it's usually limited to the things that can be checked by hand. This eventually results in a very limited understanding of the learning process of students, lengthy grading process and bad learning outcomes for students. The first step is understanding grading as part of the learning process for students: it's simply a chance to give feedback to students so that they can fulfill their learning objectives. This needs to be done frequently and meaningfully. The second step is decoupling grading from your personal appreciation and setting it up as a functional requirement. Joining both things leads to automating grading as much as possible. While I had been using GitHub for turning in assignments for quite some time, I really started using CI pipelines in 2017, initially with Travis, and adding GitHub actions in 2019 when they started to admit people into the beta. They are used alongside each other now, making assignments undergo different kinds of tests, from (mild) plagiarism to, lately, setting up the student environment in a Docker container and run things inside it. The main idea of this talk will be how to pass from concept to (software) test, how the different tests have been set up, and what kind of obstacles have been found along the way. And, of course, if this has resulted in better learning outcomes for students.