Projet Mathématiques-Informatique
Section outline
-
Groupes de projets (à remplir)
Remettre votre rapport de mi-projet
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 :
-
Besoin d'aide ? Questions / Réponses / Suggestions Open Forum
-
Les TP se font de façon individuelle
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 la fin du semestre, 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
Seuls les TP avancés et le TP3 seront notés. 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 ?
Il 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
Vous devrez nous rendre les 2 TP Avancés que vous aurez choisi de traiter, et serez évalués pour 30% de votre note finale sur ces rendus.
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écursifs" (+ 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, nous garderons les deux meilleurs TP avancés que vous aurez réalisés.
Activities: 0 -
Groupes de Projet
Entre 2 et 4 par groupe (s'il y a trop de groupes de 2 sur un même projet, des fusions en groupes de 4 seront à envisager), indiquez vos groupes ici.
Dates clés
- Rendu des rapports de mi-projets (première partie du sujet) : dimanche 24 mars
- Exposé de fin de projets : 6 et 7 mai
Choix du projet / groupe
Les projets se font par groupes de 2 à 4 étudiants. La première partie (rapport de mi-projet) est un rendu écrit (sous la forme d'un fichier pdf) à faire en groupe.
Réalisation du projet
La première partie du projet correspond à un rapport de groupe à rendre (voir la section Rapport de mi-projet). Les sujets seront disponibles fin janvier et vous pourrez les récupérer sur le serveur Jupyter could en lançant la commande suivante depuis le dossier
ProjetMathInfo
../course.py 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
git add monFichier
Puis pour sauver, depuis le dossier
ProjetMathInfo
./course.py submit Projet MonGroupe
(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 sur gitlab en faisant des "submit". 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.
Activities: 1 -
En Résumé
Depuis le dossier
ProjetMathInfo
(voir Mise en place) sur le serveur Jupyter Hub :- En début de séance, récupérer le TP en cours :
./course.py fetch NomDuTP
- En fin de séance et à la fin de chaque TP :
./course.py submit NomDuTP MonGroupe
Environnement de travail
Vous pouvez travailler :
Sur le service JupyterHub 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://jupyterhub.ijclab.in2p3.fr/
Dans la boîte de sélection d’établissement, saisissez Saclay puis sélectionnez Université Paris-Saclay.
Vous arrivez à l'écran de démarrage du serveur, choisissez "Jupyter Lab".
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.
Mise en place (premier TP)
Ouvrez un terminal en ( New >> terminal en haut à droite) puis tapez les commandes :
cd ~ git clone https://gitlab.dsi.universite-paris-saclay.fr/projetmathinfo/ComputerLab ~/ProjetMathInfo
Récupérer un TP
Depuis un terminal dans le dossier
ProjetMathInfo
en tapantcd ProjetMathInfo
Ensuite, lancez la commande correspondant au TP que vous voulez récupérer :
./course.py fetch TP1
./course.py fetch TP2
./course.py fetch TP3
./course.py fetch TP_CheminsRecursifs
./course.py fetch TP_Des
./course.py fetch TP_Geologie
Une fois le TP récupéré, 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 :
./course.py submit TP1 MonGroupe
(remplacez TP1 par le nom du TP que vous sauvegardez et MonGroupe par LDDIM1 ou LDDIM2)
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
./course
.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.dsi.universite-paris-saclay.fr/projetmathinfo/ComputerLab ProjetMathInfo
Etape 3 : Installation des logiciels
En étant dans le sous-répertoire
ProjetMathInfo/binder
conda env create
Pour mettre à jour les logiciels, dans le sous-répertoire
ProjetMathInfo/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 pouvez suivre les instructions habituelles depuis votre dossier local
ProjetMathInfo
Activities: 0 - En début de séance, récupérer le TP en cours :
-
Le rapport de mi-projet est à rendre sous forme d'un document PDF : un document par groupe contenant les noms de l'ensemble des membres. C'est une mise en contexte mathématique du sujet choisi. Il doit comporter les réponses aux questions de la première partie ainsi qu'une présentation générale du sujet.
Le rapport peut être rédigé en français ou en anglais. Vous pouvez utiliser un outil de rédaction mathématique comme LaTeX, sans obligation.
Il sera évalué sur 45 points : 15 points pour la présentation générale et 30 points pour les questions.
Voilà le barème pour les 15 points de présentation générale :
- Introduction (2 points) : Présentation du problème, explication des enjeux, pourquoi est-ce intéressant pour un projet math-info ?
- Conclusion (2 points) : Recul sur les résultats obtenus, ouverture sur la partie 2 : qu'est-ce qu'il reste à faire ? Comment les réponses de la partie 1 vont-elle aider ?
- Transitions (2 points) : Le rapport contient des transitions entre les questions permettant d'en comprendre l'intérêt, et comment elles sont liées entre elles.
- Qualité de rédaction (2 points) : Qualité de la langue et des tournures de phrase, formalisme mathématique rigoureux, exposition claire des arguments.
- Mise en page (2 points) : Mise en page professionnelle, utilisation de titres / sections claires.
- Illustrations (3 points) : Des figures propres et parlantes accompagnent le texte pour illustrer les raisonnements des preuves, ou bien donner des exemples.
Activities: 1