-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgithubclassroom.Rmd
54 lines (31 loc) · 3.48 KB
/
githubclassroom.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
---
title: "Github classroom"
author: "Pierre Barbillon, Marie-Pierre Etienne, Rémi Patin"
date: "8/24/2021"
output: html_document
---
### Objectifs
Il est possible d'utiliser les fonctionnalités de git pour suivre les travaux des étudiants sur des projets. Github classroom permet de rationnaliser l'utilisation dans ce cadre :
- réunir les dépôts des étudiants au même endroit,
- conserver la même organisation au sein du dépôt,
- unifier la nomenclature,
- gérer les droits des étudiants sur les différents dépôts (possibilité de mettre les dépôts en privé, limiter le nombre de contributeurs par projet, organiser des groupes, donner ou non les droits d'administration du dépôt).
Classroom offre un cadre pour gérer l'ensemble des dépôts liés à un devoir. Par exemple, en modifiant le caractère privé/public du devoir on modifie ce caractère sur tous les dépôts étudiants en découlant. De même, supprimer le devoir permet de supprimer d'un coup tous les dépôts étudiants.
### En pratique
Il faut commencer par créer un compte sur (https://classroom.github.com/classrooms) puis on crée une organisation et une classe dans l'organisation.
Dans la classe, on crée un devoir à partir d'un template github qui est un dépôt pour lequel on aura coché l'option template dans les réglages. Il est également possible de partager un dépôt vide.
On partage le devoir (assignement) par un lien web ce qui crée dans l'organisation un dépôt par étudiant ou par groupe d'étudiants auxquels le ou les enseignant(s) peuvent contribuer.
Chaque dépôt a par défaut une branche une master et on peut choisir l'option (enable feedback branch) afin d'avoir une branche feedback .
Cette branche feedback permet au professeur de faire des commentaires ou des modifications sur le code de l'étudiant. Après avoir poussé ses modifications, l'enseignant peut faire un "pull request" pour que l'étudiant voit les changements proposés par l'enseignant.
### lancer des tests
Des tests automatiques peuvent être lancés pour vérifier le code produit par les étudiants. Ceci peut etre obtenu de deux manières différentes.
- dans la gestion du devoir, au sein de la section *grading and feedback*.
- ajouter un test et choisir par exemple le type Run Command
- spécifier les commandes d'installation dans l'onglet Setup command (par exemple `sudo apt-get update; sudo apt-get remove -y r-base r-base-core; sudo apt-get install -y r-base r-base-core r-cran-digest; sudo R -e "install.packages('igraph')"`)
- spécifier la commande à lancer pour les tests par exemple `Rscript script_test.R`(script_test.R est un fichier R du dépot qui effectue les tests de notre choix).
Ce processus crée automatiquement une action dans le dépot de chaque groupe d'étudiants qui accepte ce devoir.
- en utilisant un dépot template qui contient déjà des github action.
Il est possible lors de la création du dépot template qui vaservir de base au dépot de chaque groupe d'étudiants, de créer les actions qui nous permettent de tester ou autre chose par exemple déployer les gh-pages. Cette méthode permet entre autre de spécifier le container docker à utiliser, ce qui est souvent plus rapide que de réinstaller une machine.
La seconde méthode est sans doute plus souple et moins contrainte mais demande de mettre le nez dans les actions.
### Autres fonctionnalités
Il est possible de lier github classroom à un environnement type moodle pour récupérer une liste d'étudiants.