Case départ#
Cette page décrit comment accéder au matériel pédagogique (cours, TP) avec les logiciels requis pour travailler dessus interactivement.
Résumé si vous connaissez déjà bien la procédure
Avec le service MyDocker@Paris-Saclay, depuis tout ordinateur ou tablette connectée à Internet
Ouvrez le tableau de bord du cours.
Généralités#
Chaque semaine, vous téléchargerez 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. Cela aura pour effet de sauvegarder votre travail sur la forge logicielle GitLab de l’université. Cela vous permettra de le transférer ensuite facilement entre les différents endroits où vous travaillerez dessus (salles de TP, service JupyterHub depuis chez vous, …). Pour certains TP (tous?), le dépôt vous permettra d’obtenir un retour automatique sur votre travail.
Cela permettra aussi à vos enseignants de se faire une idée de l’avancement général du groupe. Cela pourra 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é.
Travo, innovation et expérimentation pédagogique
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.
Travo
est en développement
agile
constant. Chaque nouveauté est motivée par un besoin pour mieux vous
servir, et vous êtes les premiers à en bénéficier. En retour, nos TPs
sont autant d’occasions pour nous pour observer et évaluer
l”expérience
utilisateur.
Plus généralement, nous explorons sans cesse dans ce cours les frontières de ce que les outils actuels peuvent offrir (ou pas!) pour l’enseignement. À l’occasion des nouveautés peuvent sortir un peu brûlantes du four et présenter des imperfections; signalez-les nous et nous les corrigerons dans la foulée ou ferons remonter le signalement aux développeurs des outils!
Instructions#
Notes aux enseignants
Instructions à donner aux étudiants
Lors de la première séance, écrivez au tableau les instructions suivante pour accéder au TP :
Démarrez les ordinateurs sous Linux (Ubuntu).
Windows marcherait aussi en principe, mais en salle de TP les machines sous Windows ne sont actuellement pas à l’heure et myDocker refuse la connexion de ce fait.Identifiez vous avec le compte de secours: identifiant:
secours
, mot de passe: (voir Signal).Cherchez le site web du cours avec le mot clé « Info111 ».
Ouvrez la page « Case Départ ».
Suivez les instructions.
Notes diverses
Pour les fois suivantes, leur apprendre à simplement taper Info111 dans la barre de navigation (sans valider!) et choisir parmi les propositions du navigateur. Cela pour éviter d’actionner un moteur de recherche pour rien.
Les étudiants n’ayant pas encore activé leurs comptes @etu-upsaclay.fr, ne pourront pas accéder à myDocker. Les faire travailler en binôme avec quelqu’un qui l’a activé.
À ce stade, le service GitLab@Paris-Saclay est encore indisponible depuis myDocker, et seuls les étudiants s’étant inscrit en juillet ont un compte. Dans la tableau de bord, les faire s’authentifier comme indiqué avec le compte «anonymous». Iels ne pourront pas déposer leur travail; passer les exercices correspondants. Leur travail disponible et iels pourront déposer ultérieurement.
Préciser que les TD durent 1h30, mais que les TP eux durent bien 2h.
Leur rappeler en fin de séance qu’ils doivent faire d’ici la semaine prochaine une heure supplémentaire de laby, depuis la salle libre service ou chez eux.
Étape 0 : pour les redoublants#
Attention
Vous retrouverez en principe sur myDocker vos fichiers présents sur
JupyterHub l’an dernier, dont notamment votre répertoire
ProgImperative
. Vous devrez donc le déplacer afin qu’il ne se
mélange pas avec celui de cette année.
Dans les instructions ci-dessous, juste après avoir «Demandé un environnement» :
Sélectionnez «Simplement ouvrir JupyterLab».
Ouvrez un terminal.
Tapez les commandes suivantes :
mkdir -p 2023-2024 mv ProgImperative 2023-2024
Fermez l’onglet et revenez sur la page de myDocker
Poursuivez normalement.
En cas de doute, demandez à votre enseignant.
Procédez de même si la situation se présente ailleurs, par exemple si vous travaillez sur votre machine personnelle.
Étape 1 : accéder à l’environnement de travail#
Notes aux enseignants
Attention
Rentrée 2024-2025
À ce stade, en tant qu’enseignant, vous ne pouvez pas vous authentifier directement sur myDocker comme décrit ci-dessous. À la place:
Connectez-vous sur eCampus
Allez sur le cours Programmation impérative 2024-2025
Cliquez dans le menu de gauche sur « Environnement virtuel »
Cliquez sur « ouvrir dans une nouvelle fenêtre ».
Avec le service MyDocker@Paris-Saclay
Ouvrez le tableau de bord du cours.
Vous devrez:
Sélectionner «CONNEXION ÉTUDIANTS PARIS-SACLAY».
Vous authentifier avec vos identifiants
prenom.nom@etu-upsaclay.fr
.Confirmer le consentement de partage de quelques attributs à myDocker.
«Demander un environnement».
Sélectionner «Connexion à l’interface» pour «Info 111 : Programmation impérative».
Solution de secours en salle de TP sous Linux
Ouvrez un terminal
Copiez-collez une à une dans le terminal les commandes suivantes, où vous remplacerez dans la première
prenom
etnom
par vos prénoms et noms:user=prenom.nom
git clone https://gitlab-research.centralesupelec.fr/Info111/ComputerLab.git $user/ProgImperative
cd $user/ProgImperative info-111 jupyter lab
Dans l’application Jupyter, ouvrez le carnet
tableau_de_bord.md
.
Étape 2 : télécharger et ouvrir le devoir#
À ce stade, vous devriez être sur une feuille nommée « Tableau de bord du cours ». Suivez les instructions pour faire apparaître le tableau de bord qui sera similaire à celui-ci :
En utilisant le tableau de bord, téléchargez puis ouvrez le devoir de la semaine (par exemple
Semaine1
).Suivez les instructions qu’il contient.
Étape 3 : déposer votre travail#
Attention
Rentrée 2024-2025
En attendant le retour de notre infrastructure GitLab, vous ne pourrez pas déposer votre travail. Vous pouvez ignorer les instructions à ce sujet dans les TPs, et vous pourrez déposer votre travail ultérieurement.
Accédez au tableau de bord du cours comme ci-dessus, et déposez votre travail.
Correction automatique et manuelle#
Chaque fois que vous déposez un devoir, les carnets Jupyter sont
re-exécutés, avec vérification des tests qu’ils contiennent
(CHECK(...)
en C++; ASSERT(...)
en Python). Cette correction
automatique se fait par intégration
continue
sur la forge GitLab au moment du dépôt, à l’aide de l’outil
nbgrader
; elle prend quelques
minutes et donne lieu à un score.
Vos enseignants pourront décider de noter certains des TPs; dans ce cas, vous serez alors prévenu bien à l’avance et le dernier score obtenu avant la date limite de rendu donnera une note. Cette note pourra être complétée par une correction manuelle: vos enseignants consulteront vos réponses et vos interprétations des résultats, et attribueront des points à chacune d’entre elles. Cette correction prendra quelques jours.
Les résultats de la correction automatique et manuelle seront disponibles sur GitLab. Pour les consulter:
Ouvrez le tableau de bord.
Le score s’affiche quand il est disponible.
Cliquez sur le score pour consulter les détails sur GitLab.
Bonnes pratiques#
Vos répertoires personnels en salle de TP et sur le service myDocker
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, téléchargez systématiquement votre devoir pour vous assurez que vous travaillez bien sur la dernière version.
déposez régulièrement votre travail, et en particulier systématiquement lorsque vous avez fini de travailler.
En cas de divergence ou de conflit#
Le dépôt de votre travail sur GitLab
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 y avoir au préalable retéléchargé votre devoir. 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 premier dépôt n’intervient que quelque temps plus tard. Entre temps, le sujet a été mis à jour et la mise à jour s’est propagée à votre dépôt personnel.
Lancez alors un téléchargement. Il y a des chances que cela se passe bien : les modifications sont automatiquement fusionnées. Dans le cas contraire, il vous sera proposé de forcer la mise à jour avec une commande dans le terminal comme :
cd ~/ProgImperative
./course.py fetch Semaine1 --force
Votre dossier Semaine1
sera alors renommé avec la date et l’heure
Semaine1-2023-...
, 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-2023-...
dans Semaine1
. Il vous reste à déposer à
nouveau.
Instructions avancées#
Cette section décrit comment utiliser le terminal pour gérer vos devoirs (téléchargement, dépôt, …) plutôt que d’utiliser le tableau de bord. Vous découvrirez au fur et à mesure de l’année tous les avantages d’utiliser le terminal.
Ouvrir un terminal#
Option 1 : Sur les ordinateurs des salles de TP
Vous pouvez utiliser le menu principal du système (bouton tout en bas à gauche de l’écran) et cliquer sur « Terminal ».
Option 2 : depuis JupyterLab (par exemple avec le service JupyterHub)
Utilisez le menu
Fichier -> Nouveau -> Terminal
.
Télécharger ou mettre à jour un devoir avec le terminal
Après avoir ouvert un terminal, tapez les commandes suivantes, en validant avec Entrée après chacune d’entre elles. Attention : ces commandes doivent être tapées avec le plus grand soin : les majuscules, les espaces, les symboles sont tous importants.
Si vous n’avez pas encore de répertoire
ProgImperative
:cd git clone https://gitlab.dsi.universite-paris-saclay.fr/Info111/ComputerLab.git ProgImperative
Téléchargez le devoir :
cd ~/ProgImperative ./course.py fetch Semaine1
Si une authentification vous est demandée, utilisez vos identifiants Adonis
prenom.nom
, comme sur GitLab. Il est normal que rien ne s’affiche quand vous tapez votre mot de passe. Tapez-le simplement en entier puis appuyez sur Entrée.Si vous n’avez pas de compte sur https://gitlab.dsi.universite-paris-saclay.fr/ (par ex. auditeurs libres), vous pouvez alternativement utiliser :
./course.py fetch --anonymous Semaine1
Votre terminal devrait ressembler à ceci :
Le devoir a été téléchargé dans le répertoire
ProgImperative/Semaine1
de votre répertoire personnel. Vous pouvez le vérifier avec la commande suivante :ls ~/ProgImperative/Semaine1
Vous pouvez maintenant naviguer – par exemple avec le navigateur de fichiers de Jupyter – jusqu’au répertoire
ProgImperative/Semaine1
et ouvrir le fichierindex.md
pour commencer à travailler.
Déposer votre travail avec le terminal
Dans un nouveau terminal, tapez les instructions suivantes pour aller dans le répertoire
ProgImperative
et déposer votre travail. RemplacezSemaine1
ci-dessous par le nom du devoir etMI1
par votre groupe de TD :cd ~/ProgImperative ./course.py 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.
Lancer JupyterLab
Attention
Si vous travaillez sur JupyterHub, il n’est pas nécessaire de lancer JupyterLab! Il est déjà lancé.
Ouvrez un nouveau terminal.
Tapez la commande suivante :
info-111 jupyter lab
Cette application ouvre une fenêtre dans votre navigateur web avec un navigateur de fichiers.
Attention
Le terminal qui vous a permis de lancer Jupyter doit rester ouvert pendant toute votre utilisation de Jupyter! Le mieux est de le minimiser (sans le fermer!). De plus tant que Jupyter est lancé, il n’est pas possible de taper d’autres commandes dans ce terminal. Si vous avez à nouveau besoin d’un terminal par la suite, il faudra utiliser un autre terminal.
Commandes de base dans le terminal
Lister les fichiers :
ls
Se déplacer dans un répertoire xyz
:
cd xyz
Créer un répertoire xyz
:
mkdir xyz
Astuces
Les touches flèche vers le haut et flèche vers le bas permettent de naviguer dans l’historique des commandes précédemment lancées.
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 façons de compléter votre saisie sont possibles ,elles vous seront proposées (peut-être en tapant une deuxième fois TAB. Ici, pour
IntroSciencesDonnees
, tapezIntr
puis la touche TAB.