Matériel pédagogique interactif (devoirs)
Contents
Matériel pédagogique interactif (devoirs)#
Cette page décrit, une fois que vous avez accès aux logiciels requis, comment accéder au matériel pédagogique interactif (devoirs) pour travailler dessus.
Aide-mémo des commandes#
Consulter la documentation:
info-111
Télécharger ou mettre à jour un devoir (ici pour la semaine 1):
info-111 fetch Semaine1
Déposer un devoir (ici pour la semaine 1 et un étudiant du groupe MI2):
info-111 submit Semaine1 MI2
Groupes: MI1 MI2 MI3 MI4 LDDIM1 LDDIM2 LDDMI1 LDDMP1 LDDMP2 EcoMath MathSV MNSI CandidatsLibres
Lancer le notebook Jupyter (inutile sur le service JupyterHub):
info-111 jupyter notebook
Compiler un programme (ici essai.cpp):
info-111 g++ essai.cpp -o essai
Généralités#
Chaque semaine, vous téléchargerez le sujet d’un «devoir»,
c’est-à-dire un répertoire contenant le matériel pédagogique: sujet de
TD, de TP, éventuellement documents de cours. En semaine 1, ce sera le
devoir Semaine1
qui ira dans le répertoire
~/ProgImperative/Semaine1
. Il y aura aussi un devoir pour le projet.
Vous déposerez ensuite régulièrement votre devoir. Ce dépôt aura pour effet de sauvegarder votre travail sur la forge logicielle GitLab de l’université. Cela vous permettra de le transférer facilement entre les différents endroits où vous travaillerez dessus (salles de TP, service JupyterHub, …).
Cela permettra aussi à vos enseignants de se faire une idée de l’avancement général du groupe. Cela pourra aussi servir pour des TP notés (vous serez prévenu à l’avance par votre enseignant de TP).
Le matériel pédagogique est disponible pour tous, inscrits officiellement au cours ou auditeurs libres. En revanche, le dépôt sur la forge GitLab de l’université Paris Saclay n’est possible que pour les étudiants et personnels de l’université.
Innovation - expérimentation#
Cette gestion des devoirs via GitLab est une innovation menée depuis
la rentrée 2020 en collaboration avec des collègues de l’université et
de Montréal et inspirée notamment des «GitHub ClassRoom» avec le
développement d’un outil
travo sur lequel est basé
la commande info-111
. Elle apporte de nombreux avantages: validation
automatique sur votre travail, premiers contact avec les outils
collaboratifs, etc. Elle en est cependant à un stade expérimental,
avec:
Des messages qui doivent encore être simplifiés et clarifiés.
Des bogues occasionnels dans des situations atypiques.
Activer votre compte GitLab de l’université#
Cette étape vous permettra de déposer vos devoirs. Elle n’est pas requise si vous êtes auditeur libre.
Si ce n’est déjà fait, activez votre compte GitLab en vous connectant une première fois sur https://gitlab.dsi.universite-paris-saclay.fr/ avec vos identifiants et mots de passe de l’université (Adonis). Veillez ici et dans tout le reste de ce document à utiliser vos identifiants longs de la forme
prenom.nom
.Voilà, c’est tout; vous pouvez vous déconnecter.
Ouvrir un terminal#
Option 1: en salle de TP sous Linux#
Lancez un terminal. Pour cela vous pouvez utiliser le menu principal (bouton en bas à gauche) et cliquer sur «terminal».
Option 2: depuis Jupyter (par exemple avec le service JupyterHub)#
Depuis le navigateur de fichier, utiliser le menu
New -> Terminal
.
Commandes de base dans le terminal#
Lister les fichiers:
ls
Se déplacer dans un répertoire XXX:
cd XXX
Créer un répertoire XXX:
mkdir XXX
Astuces:
Flèches vers le haut et le bas pour naviguer dans l’historique des commandes
Complétion automatique: pour aller plus vite, au lieu de taper le nom d’un fichier ou répertoire en entier, vous pouvez indiquer le début du nom et essayer de le compléter avec la touche
Tab
(tabulation, à gauche de la touche A). Si plusieurs fins sont possibles elles vous seront proposées. Ici, pourProgImperative
, tapezPro
puis la toucheTab
.
Démarrer Jupyter#
Option 1: en salle de TP sous Linux#
Ouvrir un nouveau terminal.
Tapez la commande:
info-111 jupyter notebook
Cette application ouvre une fenêtre dans votre navigateur web avec un navigateur de fichiers.
Attention: le terminal où vous avez lancé Jupyter doit rester ouvert pendant toute votre utilisation de Jupyter!
Le mieux est de le minimiser.
Option 2: avec JupyterHub ou le serveur de secours Binder#
Jupyter est déjà lancé! Si vous êtes sur le terminal, vous avez juste
à revenir sur le navigateur de fichiers, par exemple en cliquant sur
l’icône Jupyter
.
Télécharger ou mettre à jour un sujet#
Dans un nouveau terminal, tapez les commandes suivantes, en validant
avec la touche Entrée
après chacune d’entre elles.
Télécharger ou mettre à jour le sujet (ici pour la semaine 1):
info-111 fetch Semaine1
Votre terminal devrait ressembler à ceci:
Si vous n’avez pas de compte sur https://gitlab.dsi.universite-paris-saclay.fr/ (par ex. auditeurs libres), vous pouvez alternativement utiliser:
info-111 clone Semaine1
Vous pouvez maintenant naviguer – par exemple avec le navigateur de fichiers de Jupyter – jusqu’au répertoire
ProgImperative/Semaine1
pour commencer à travailler. Une copie des instructions se trouve dans le fichierindex.md
.
Déposer votre travail#
Dans un nouveau terminal, tapez les instructions suivantes pour aller dans le répertoire
ProgImperative
et déposer votre travail:info-111 submit Semaine1 MI1
Une fois votre travail déposé, vous pouvez ouvrir l’adresse affichée (Clic-droit, Ouvrir le lien) pour consulter ce que vous avez déposé sur GitLab. Votre travail est maintenant sauvegardé et vous pouvez y accéder depuis chez vous.
Bonnes pratiques#
Vos répertoires personnels en salle de TP et sur le service JupyterHub
sont distincts. Si vous travaillez sur un devoir (par exemple
Semaine1
) de part et d’autre, il y a risque de conflit entre les
deux versions.
Bonnes pratiques:
lorsque vous commencez à travailler, faites systématiquement une mise à jour (
fetch
) pour vous assurez que vous travaillez bien sur la dernière version.déposez (
submit
) régulièrement votre travail, et en particulier systématiquement lorsque vous avez fini de travailler.
En cas de divergence ou conflit#
Lorsque vous déposez votre travail avec submit
, la commande peut
échouer en indiquant qu’il y a des modifications sur votre dépôt
GitLab
que vous n’avez pas en local.
Voici deux scénarios types où cela peut se produire:
Vous travaillez sur
Semaine1
sur jupyterhub et vous déposez votre travail à la fin. Plus tard, vous allez en salle de TP et vous travaillez surSemaine1
, mais sans avoir au préalable mis à jour la version que vous aviez en salle de TP. Vous avez alors deux versions de votre travail qui ont divergé. Les bonnes pratiques ont pour objectif d’éviter cela.Vous téléchargez votre sujet et travaillez dessus, mais votre première dépôt n’intervient que quelques temps plus tard. Entre temps, le sujet a été mis à jour et la mise à jour s’est propagée à votre dépôt personnel (09 octobre: ce scénario ne devrait plus se produire avec la dernière version d”
info-111
et les TP récents).
Lancez alors une mise à jour (fetch
). Il y a des chances que cela se
passe bien: les modifications sont automatiquement fusionnées. Dans le
cas contraire, info-111
vous proposera de forcer la mise à jour avec
une commande comme:
info-111 fetch Semaine1 --force
Votre dossier Semaine1
sera alors renommé avec la date et
l’heure Semaine1-2021-...
, et la version déposée sur GitLab sera
téléchargée dans Semaine1
. Vous devez alors résoudre le conflit:
consultez les documents dans les deux dossiers et faites le nécessaire
pour que la version que vous souhaitez soit dans Semaine1
; vous
pouvez par exemple utiliser le navigateur de fichiers de Jupyter pour
déplacer les fichiers sur lesquels vous avez récemment travaillé
depuis Semaine1-2021-...
dans Semaine1
. Il vous reste à déposer à
nouveau.