1. GitHub Classroom
GitHub Classroom automatise la création et le contrôle d’accès de dépôts GitHub pour l’enseignement. GitHub Classroom s’adresse aux étudiants pour récupérer un code de démarrage et aux enseignants pour la collecte des devoirs.
GitHub Classroom est gratuit pour tous. Il est possible aussi de profiter des avantages de GitHub Education (étudiants et enseignants).
GitHub est un service web d’hébergement et de gestion de développement de logiciels, utilisant le logiciel de gestion de versions Git.
Git est un logiciel de gestion de versions décentralisé (DVCS). C’est un logiciel libre créé par Linus Torvalds en 2005. Il s’agit maintenant du logiciel de gestion de versions le plus populaire devant Subversion (svn
) qu’il a remplacé avantageusement.
Sites officiels :
Documentation : Manage coursework with GitHub Classroom
1.1. Créer un modèle de dépôt
Il faut créer préalablement un dépôt (repository) dans GitHub :
Puis le paramètrer en "modèle" (template):
1.2. Créer une classe
On commence par créer une nouvelle classe (classroom) :
Exemple :
On pourra ensuite créer des devoirs (assignments) pour cette classe. |
Les étudiants de cette classe :
On peut connecter un système de gestion de cours comme Google Classroom ou importer une liste des étudiants au format CSV.
Et les enseignants et administrateurs :
L’onglet Settings permet notamment de connecter un système de gestion de cours comme Google Classroom (afin de récupèrer la liste des étudiants) :
On se connecte à Google Classroom :
Et on sélectionne un cours :
GitHub Classroom récupère la liste des étudiants ce qui facilitera l’attibution des devoirs par la suite.
1.3. Créer un devoir
On peut créer des devoirs (assignments) individuels ou de groupe :
Pour un devoir individuel, GitHub Classroom nomme les dépôts par le préfixe du dépôt du devoir et le nom d’utilisateur GitHub de l’étudiant. Un devoir de groupe est un travail de cours collaboratif pour des groupes d’étudiants sur GitHub Classroom. Les étudiants pourront travailler ensemble sur un devoir de groupe dans un dépôt partagé, comme une équipe de développeurs professionnels. |
On sélectionne ensuite le modèle de dépôt :
On termine la création :
On obtient une invitation que l’on peut partager avec les étudiants concernés :
1.4. Le devoir
L’étudiant accepte le devoir :
Et il est prêt à "travailler" sur le dépôt :
GitHub a créé un dépôt privé dans l’organisation :
Le nom du dépôt possède en suffixe le nom du compte GitHub de l’étudiant :
Le dépôt contient une copie du dépôt "modèle" :
L’enseignant reçoit un email confirmant l’inscription de l’étudiant au devoir :
L’enseignant "voit" (et peut accèder à) l’ensemble des devoirs étudiants (et l’évolution des commits) et peut récupérer l’ensemble des dépôts (Download Repositories) :
Pour récupérer les travaux, GitHub Classroom fournit un assistant pour Windows©, MacOS© et Linux.
Ou directement à partir de l’outil :
On sélectionne ensuite les travaux à récupérer :
On peut préciser le chemin de stockage de l’archive :
On obtient :
1.5. Feedback
Lors de la création du devoir, il est possible d’y associer une Pull Request pour assurer une communication Étudiant/Enseignant sur ce devoir :
On reçoit alors un email :
La Pull Request dans GitHub :
Elle permet :
1.6. Extension Visual Studio Code
Visual Studio Code possède une extension dédiée à GitHub Classroom.
Elle permet de parcourir les devoirs et de commencer à travailler dessus. Elle apparaît dans l’onglet de l’extension GitHub et il faut commencer par s’authentifier. La liste des devoirs apparaît alors dans l’arborescence.
1.7. Un devoir avec auto-test
Il est possible de configurer un devoir avec des tests exécutés automatiquement pour chaque soumission (push
) de code dans le dépôt.
GitHub Actions exécutera les commandes pour le test automatique dans un environnement Linux contenant le code le plus récent de l’étudiant. Il est possible d’y associer des points pour obtenir une note finale pour le devoir.
Lien : Use autograding
Il est possible d’ajouter des tests à la création du devoir ou plus tard en l’éditant :
Il existe deux méthodes distinctes : les tests d’entrée/sortie et les tests de commande d’exécution.
Un test de commande d’exécution :
Un test d’entrée/sortie :
On peut suivre l’exécution du test dans GitHub Actions :
Et dans Classroom :
Ici, le test n’est pas passé :
Les détails dans GitHub Actions :
Pour les tests de commande d’exécution, il est intéressant d’y associer des tests unitaires.
Il y a une exemple fourni pour C++ avec make et Catch2.
Site : tvaira.free.fr