Projet Math-Info
Résumé de section
-
Le cours à distance a lieu dans l'espace Collaborate commun des cours LDD IM
Compte rendu des séances en lignes, FAQ TP
Cet espace de cours est dédié à l'UE "Projet Math-informatique" en L1 LDD.
Le but de cette UE est de découvrir la démarche de modélisation d'un problème scientifique grâce à l'outil informatique et, en particulier, le logiciel SageMath (en python). Les séances prendront la forme de TP puis amèneront à la réalisation d'un projet autour d'une question de recherche.
Le cours se décompose en deux activités principales :
-
Les TP se font de façon individuelle
Compte rendu des séances en lignes, FAQ TP
Au cours du semestre, vous aurez à réaliser 5 TP que vous pourrez faire principalement pendant les séances et compléter chez vous. Tous les TP sont à rendre pour le 17 mai (date des exposés de projets) cependant, il est conseiller de réaliser les TP lors des premières séances avant le mois de mars (car ensuite, vous serez pris par le projet).
Note
Tous les TP seront notés à la fin du semestre. Vous obtiendrez une note globale sur 20 qui compte pour 30% de la note finale de l'UE.
Quels TP dois-je faire et quand ?
I y a 3 TP obligatoires, à faire dans l'ordre :
- TP1 : introduction à SageMath
- TP2 : programmation python
- TP3 : SageMath et résolution d'équations
Un TP ne correspond pas à une séance ! Faites-les dans l'ordre et passez au suivant quand vous avez terminé.
Il faut ensuite choisir 2 TP Avancés parmi les 3 sujets suivants :
- Géologie
- Chemins Récursifs
- Jeu de dés
Comment faire les TP ?
Les TP sont à réaliser sur le serveur jupyter, voir la Section Instruction pour les détails.
Comment rendre les TP ?
Nous avons mis en place un système de sauvegarde sur gitlab comme au premier semestre, voir la Section Instruction pour les détails.
Comment choisir les TP Avancés ?
Ces TP sont basés sur des problèmes mathématiques et permettent de mettre en oeuvre les notions vues dans les TP1, 2 et 3. En fonction du projet que vous avez choisi, certains TP avancés peuvent être plus intéressants que d'autres, cependant, le choix n'est pas imposé.
Conseil de TP avancé en fonction du projet (pas d'obligation) :
- Si vous faites les projets Labyrinthe ou Tétris, je vous conseille de réaliser le TP "Chemins Récurssifs" (+ 1 autre)
- Si vous faites les projets Jeu de la vie ou Planètes, je vous conseille de réaliser le TP "Géologie" (+ 1 autre)
- Si vous faites le projet Champion's League, je vous conseille de choisir le TP "Jeu de dés" (+ 1 autre)
- Pas de conseil particulier si vous faites le projet Nénuphars !
Vous pouvez aussi commencer les 3 sujets et voir lesquels vous intéressent le plus. Vous pouvez même réaliser les 3 sujets en entier ! Pour la note, je garderai les deux meilleurs TP que vous aurez réalisés.
Activités : 0 -
Dates clés
- Rendu des rapports de mi-projets (première partie du sujet) : 28 mars -- rendre par e-campus
- Exposé de fin de projets : 17 mai
Choix du projet / groupe
Les projets se font par groupes de 2 ou 3 étudiants. La première partie (rapport de mi-projet) est un rendu individuel.
Inscrivez ici votre choix de groupe / projet
Réalisation du projet
Les sujets sont disponibles sur e-campus. La première partie du projet correspond à un devoir maison individuel à rendre sur e-campus (voir les instructions ici).
Pour la seconde partie, récupérer le projet sur jupyter en lançant la commande suivante depuis le dossier
ProjetMathInfo
projet-math-info fetch Projet
Cette commande crée un dossier
Projet
sur le serveur Jupyter qui contient en particulier la liste des sujets. Surtout, c'est un espace sur lequel vous pouvez créer vos propres notebook Jupyter SageMath pour travailler sur le projet. Vous pouvez ensuite sauver votre projet au fur et à mesure avec la commande :Depuis le dossier Projet dans lequel doivent se trouver vos fichiers.
git add -A projet-math-info submit Projet
(Voir la section Instruction TP pour plus de détails sur le serveur Jupyter)
Travail en groupe : par défaut, chaque étudiant a son propre espace
Projet
même si les projets se font en groupe. Le serveur Jupyter ne permet pas directement le travail collaboratif sur un même dossier / notebook. Cependant, après la première soumission sur gitlab vous pouvez donner accès à votre projet aux autres membres du groupes (voir le menu sur la gauche "Settings > Members"). Cela permet aux autres membres de voir le code que vous avez soumis sur gitlab.Conseil : Nous vous conseillons de travailler chacun individuellement sur votre répertoire Projet sur le serveur jupyter et de le sauver régulièrement par "submit" sur gitlab. Puis comme expliqué ci-dessus, nous vous conseillons de donner accès à votre projet gitlab aux autres membres du groupe. Ainsi, même si chacun a son espace, vous pouvez facilement échanger des bouts de code et voir ce qui a été fait par les autres membres du groupe.
Activités : 7 -
Environnement de travail
Nous utilisons le serveur jupyter mis à disposition par l'université. Ainsi vous avez accès en ligne, depuis n'importe quel ordinateur, à l'ensemble des logiciels requis pour les TP.
Nos TP sont basés principalement sur deux logiciels SageMath et Jupyter qui sont tous les deux des logiciels libres.
Connexion au serveur
Connectez vous avec vos identifiants Adonis sur la page suivante:
https://jupytercloud.lal.in2p3.fr/
BUG : Si après vous être connecté une première fois, vous n'arrivez plus à cous connecter car vous êtes systématiquement redirigé vers la page de connexion : ouvrez un nouvel onglet en "navigation privée" ou effacez les cookies. C'est un bug connu du serveur actuel
Dans la boîte de sélection d’établissement, saisissez Sud puis sélectionnez Université Paris Sud.
Vous arrivez à un écran "Start My Server" cliquez dessus pour démarrer votre serveur Jupyter personnel.
Vous obtenez un navigateur sur les fichiers de votre dossier personnel sur ce serveur. Notez que ce dossier est indépendant de votre dossier personnel dans les salles de TP. Aussi, si c’est la première fois que vous utilisez le service JupyterHub, ce dossier est vide.
Votre serveur sera automatiquement éteint au bout de deux heures d’inutilisation. Mais votre dossier personnel est conservé d’une fois sur l’autre.
Serveur de secours
Si le serveur jupyter de l'université ne fonctionne plus, vous pouvez utiliser ce serveur de secours
ATTENTION pas de sauvegarde automatique sur ce serveur. Pensez à cliquer "save" sur vos notebook jupyter et à faire un "submit" avant de quitter la page.
Remarque : sur ce serveur, seuls les logiciels du cours projet math-info sont installés (sans les commandes de logiciels des autres cours d'informatique présents sur le serveur de l'université)
Mise en place (premier TP)
Créez un dossier
ProjetMathInfo
sur votre serveur.Vous pouvez créer le dossier en cliquant sur le bouton "New >> Floder" en haut à droite. Ou en ouvrant un terminal "New >> terminal" puis en tapant la commande :
mkdir ProjetMathInfo
Lancez les deux commandes suivantes (en mettant votre nom et email dans la partie entre guillemets) pour configurer git qui sert à sauvegarder vos TP sur gitlab
git config --global user.name "Viviane Pons"
git config --global user.email "monemail.amoi@u-psud.fr"
Récupérer un TP
Ouvrez un terminal New >> terminal (en haut à droite) puis allez dans le dossier
ProjetMathInfo
en tapantcd ProjetMathInfo
Ensuite, lancez la commande correspondant au TP que vous voulez récupérer :
projet-math-info fetch TP1
projet-math-info fetch TP2
projet-math-info fetch TP3
projet-math-info fetch TP_CheminsRecursifs
projet-math-info fetch TP_Des
projet-math-info fetch TP_Geologie
Une fois le TP récupérer, vous trouverez la feuille Jupyter dans le dossier correspondant sur votre serveur. Vous pouvez réaliser le TP directement sur le serveur.
Enregistrer / soumettre le TP
En fin de séance, pensez à "soumettre" votre TP, c'est-à-dire à l'enregistrer sur le serveur gitlab. Cela vous permet de :
- sauver votre travail en cas de problème sur le serveur Jupyter
- rendre votre travail accessible à votre enseignant
La commande pour sauvegarder un TP sur gitlab est la suivante :
projet-math-info submit TP1
(remplacez TP1 par le nom du TP que vous sauvegardez)
Attention ! Vérifiez bien que l'envoi du TP a fonctionné. Vous devez voir le message suivant
INFO:travo:- Soumission effectuée. Vous pouvez consulter votre dépôt:
Vous pouvez vérifier sur le lien que la soumission a fonctionné, c'est-à-dire que le fichier est bien à jour sur gitlab. En particulier, vous devez voir l'envoi que vous avez fait depuis "l'acivité" du projet gitlab ou dans la liste des "commits"
Installer l'environnement de travail chez vous
Cette partie est réservée aux étudiantes et étudiants qui souhaitent directement travailler sur leur propre machine sans passer par le serveur jupyter en ligne.
J'ai testé les instructions sur une machine sous Linux. Je ne sais pas si tout fonctionne sur les autres Systèmes d'exploitations (en particulier sous Windows) . En suivant les instructions jusqu'au bout, vous obtenez une copie de l'environnement de travail avec la commande
projet-math-info
.Si ça ne fonctionne pas, vous pouvez aussi vous contenter d'installer le logiciel SageMath. Vous n'aurez simplement pas accès à la commande pour faire des
fetch / submit
mais vous pouvez télécharger / uploader les fiches depuis le serveur jupyter ou gitlab.Etape 1 : Installation de miniconda (si pas déjà fait au premier semestre)
Suivez les instructions de https://conda.io/miniconda.html . Sous linux, ce sera, dans un terminal:
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh
À la fin de l’installation, le script modifie votre .bashrc pour rajouter conda dans votre PATH. Il faut ouvrir un nouveau terminal pour que cela prenne effet. Essayez, par exemple:
conda list
Etape 2 : Téléchargement du dépôt git du cours
Le dépot contient très peu de choses : principalement un script pour installer les logiciels
git clone https://gitlab.u-psud.fr/L1Info/ProjetMathInfo/ProjetMathInfoPublic
Etape 3 : Installation des logiciels
En étant dans le sous-répertoire
ProjetMathInfoPublic/binder
conda env create
Pour mettre à jour les logiciels, dans le sous-répertoire
ProjetMathInfoPublic/binder
conda env update
Utilisation des logiciels
À l’ouverture du terminal, il faudra activer l’environnement
projet-math-info
source activate projet-math-info
Ensuite vous aurez accès à tous les logiciels, dont la commande
projet-math-info
Activités : 0