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 InfoMath1 InfoMath2 EcoMath MathSV 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.

  1. 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.

  2. Voilà, c’est tout; vous pouvez vous déconnecter.

Ouvrir un terminal

Option 1: en salle de TP sous Linux

  1. 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)

  1. 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, pour ProgImperative, tapez Pro puis la touche Tab.

Démarrer Jupyter

Option 1: en salle de TP sous Linux

  1. Ouvrir un nouveau terminal.

  2. Tapez la commande:

    info-111 jupyter notebook
    
  3. Cette application ouvre une fenêtre dans votre navigateur web avec un navigateur de fichiers.

  4. 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.

  1. Télécharger ou mettre à jour le sujet (ici pour la semaine 1):

    info-111 fetch Semaine1
    

    Votre terminal devrait ressembler à ceci:
    image

    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
    
  2. 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 fichier index.md.

Déposer votre travail

  1. 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
    
  2. 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 sur Semaine1, 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.