Projet (partie graphes) G. Richomme [email protected] Université Paul Valéry Montpellier 3 Licence AES parcours Misahs cours 2013-2014 1 G. [email protected] Projet (partie graphes) Objectifs et MCC Objectifs : construire une (mini-)application en python permettant la manipulation de graphes être capable de l’utiliser ou de l’adapter pour répondre à des questions sur des réseaux. Attendus : Un dossier numérique constitué au cours du semestre : Des fichiers sources en python ; Des exemples testés ; Un rapport écrit avec des éléments de réflexion ; etc... Un entretien oral (10 à 20 minutes). 2 G. [email protected] Projet (partie graphes) Critères de notation Travail personnel et de binôme (une grande partie en dehors des TDs) ; Organisation du travail ; Richesse de l’application créée, fonctionnalités mises en œuvre ; Bon fonctionnement ; Ergonomie, simplicité d’utilisation ; Qualité du rapport et documents divers ; Compréhension des notions liés aux graphes ; Qualité de la programmation et du code produit ; Respect des consignes et apports de la première partie. Oral pas noté en tant que tel ! 3 G. [email protected] Projet (partie graphes) 2 étapes Étape 1 A travers le traitement assistée d’un exemple : rappels de programmation apports méthodoloqiques présentation des attendus (contenu, qualité) pour les différents éléments du dossier (programmes, exemples, dossier) Étape 2 Le projet 4 G. [email protected] Projet (partie graphes) Calendrier prévisionnel lundi 2 septembre : début de la partie 1 lundi 7 octobre : remise des éléments notés de la partie 1 lundi 7 octobre : début de la partie 2 chaque semaine : envoi d’un état d’avancement lundi 25 novembre : pré-remise lundi 2 décembre : remise finale lundi 9 décembre : soutenance orale 5 G. [email protected] Projet (partie graphes) Rappel : Cycle de développement 6 G. [email protected] Projet (partie graphes) Cycle de développement (1/4) Le cycle de développement d’un "programme (ou d’une application) informatique " peut se résumer ainsi : Problème 7 G. [email protected] Projet (partie graphes) Cycle de développement (1/4) Le cycle de développement d’un "programme (ou d’une application) informatique " peut se résumer ainsi : Problème → Analyse 7 G. [email protected] Projet (partie graphes) Cycle de développement (1/4) Le cycle de développement d’un "programme (ou d’une application) informatique " peut se résumer ainsi : Problème → Analyse → Algorithme 7 G. [email protected] Projet (partie graphes) Cycle de développement (1/4) Le cycle de développement d’un "programme (ou d’une application) informatique " peut se résumer ainsi : Problème → Analyse → Algorithme → Programme 7 G. [email protected] Projet (partie graphes) Cycle de développement (1/4) Le cycle de développement d’un "programme (ou d’une application) informatique " peut se résumer ainsi : Problème → Analyse → Algorithme → Programme → Compilation/Interprétation 7 G. [email protected] Projet (partie graphes) Cycle de développement (1/4) Le cycle de développement d’un "programme (ou d’une application) informatique " peut se résumer ainsi : Problème → Analyse → Algorithme → Programme → Compilation/Interprétation → Tests d’exécution 7 G. [email protected] Projet (partie graphes) Cycle de développement (1/4) Le cycle de développement d’un "programme (ou d’une application) informatique " peut se résumer ainsi : Problème → Analyse → Algorithme → Programme → Compilation/Interprétation → Tests d’exécution Exemple de problème : donner le plus court chemin dans le métro entre 2 stations 7 G. [email protected] Projet (partie graphes) Cycle de développement (2/4) Analyse : phase de réflexion qui permet d’identifier précisément le problème 8 G. [email protected] Projet (partie graphes) Cycle de développement (2/4) Analyse : phase de réflexion qui permet d’identifier précisément le problème Exemple : plus court chemin ? en temps ? en distance ? 8 G. [email protected] Projet (partie graphes) Cycle de développement (2/4) Analyse : phase de réflexion qui permet d’identifier précisément le problème Exemple : plus court chemin ? en temps ? en distance ? d’identifier les caractéristiques du problème à traiter 8 G. [email protected] Projet (partie graphes) Cycle de développement (2/4) Analyse : phase de réflexion qui permet d’identifier précisément le problème Exemple : plus court chemin ? en temps ? en distance ? d’identifier les caractéristiques du problème à traiter données, Exemple : plan du réseau, temps entre deux stations, stations concernées par le calcul. 8 G. [email protected] Projet (partie graphes) Cycle de développement (2/4) Analyse : phase de réflexion qui permet d’identifier précisément le problème Exemple : plus court chemin ? en temps ? en distance ? d’identifier les caractéristiques du problème à traiter données, Exemple : plan du réseau, temps entre deux stations, stations concernées par le calcul. résultats, Exemple : lignes à prendre, stations où changer 8 G. [email protected] Projet (partie graphes) Cycle de développement (2/4) Analyse : phase de réflexion qui permet d’identifier précisément le problème Exemple : plus court chemin ? en temps ? en distance ? d’identifier les caractéristiques du problème à traiter données, Exemple : plan du réseau, temps entre deux stations, stations concernées par le calcul. résultats, Exemple : lignes à prendre, stations où changer cas particuliers, Exemple : stations non reliées par le réseau ??? 8 G. [email protected] Projet (partie graphes) Cycle de développement (2/4) Analyse : phase de réflexion qui permet d’identifier précisément le problème Exemple : plus court chemin ? en temps ? en distance ? d’identifier les caractéristiques du problème à traiter données, Exemple : plan du réseau, temps entre deux stations, stations concernées par le calcul. résultats, Exemple : lignes à prendre, stations où changer cas particuliers, Exemple : stations non reliées par le réseau ??? traitement, . . . Exemple : calculer le plus court chemin 8 G. [email protected] Projet (partie graphes) Cycle de développement (2/4) Analyse : phase de réflexion qui permet d’identifier précisément le problème Exemple : plus court chemin ? en temps ? en distance ? d’identifier les caractéristiques du problème à traiter données, Exemple : plan du réseau, temps entre deux stations, stations concernées par le calcul. résultats, Exemple : lignes à prendre, stations où changer cas particuliers, Exemple : stations non reliées par le réseau ??? traitement, . . . Exemple : calculer le plus court chemin de découper le problème en une succession de tâches simples et distinctes (sous-problèmes). 8 G. [email protected] Projet (partie graphes) Cycle de développement (3/4) Après l’analyse... les algorithmes Algorithme = description des opérations à mettre en oeuvre expliquant comment obtenir un résultat à partir de données, compréhensible par un être humain, proche des langages de programmation. 9 G. [email protected] Projet (partie graphes) Cycle de développement (3/4) Après l’analyse... les algorithmes Algorithme = description des opérations à mettre en oeuvre expliquant comment obtenir un résultat à partir de données, compréhensible par un être humain, proche des langages de programmation. Exemple : - démarrer par la station de départ, - lister toutes les stations voisines - si la station d’arrivée figure dans cette liste alors ....... sinon lister toutes les stations voisines des voisines ....... - ...... 9 G. [email protected] Projet (partie graphes) Cycle de développement (4/4) Problème 10 G. [email protected] Projet (partie graphes) Cycle de développement (4/4) Problème → Analyse → Algorithme → Programme → Compilation/Interprétation → Tests d’exécution 10 G. [email protected] Projet (partie graphes) Cycle de développement (4/4) Problème → Analyse → Algorithme → Programme → Compilation/Interprétation → Tests d’exécution Programme : texte des instructions permettant de résoudre le problème posé écrites dans un langage informatique dit de programmation (ex: Python, JAVA, C, COBOL, BASIC, FORTRAN, . . . ). 10 G. [email protected] Projet (partie graphes) Cycle de développement (4/4) Problème → Analyse → Algorithme → Programme → Compilation/Interprétation → Tests d’exécution Programme : texte des instructions permettant de résoudre le problème posé écrites dans un langage informatique dit de programmation (ex: Python, JAVA, C, COBOL, BASIC, FORTRAN, . . . ). Compilation : transformation du texte écrit en langage programmation (code source) en langage machine. −→ Génération d’un fichier exécutable. 10 G. [email protected] Projet (partie graphes) Cycle de développement (4/4) Problème → Analyse → Algorithme → Programme → Compilation/Interprétation → Tests d’exécution Programme : texte des instructions permettant de résoudre le problème posé écrites dans un langage informatique dit de programmation (ex: Python, JAVA, C, COBOL, BASIC, FORTRAN, . . . ). Compilation : transformation du texte écrit en langage programmation (code source) en langage machine. −→ Génération d’un fichier exécutable. Interprétation : exécution directe des instructions. 10 G. [email protected] Projet (partie graphes) Documentation ! Il faut y penser tout au long du cycle de développement (et pas uniquement à la fin). prévoir dès le début le rapport et rédiger les parties qui peuvent l’être dès que possible mettre au fur et à mesure les commentaires dans les programmes noter dans une chronologie les dates des réalisations (et les personnes concernées) 11 G. [email protected] Projet (partie graphes) Mise en forme d’un rapport A rendre pour le mercredi 18 septembre : choisir un logiciel de traitement de texte pré-formatter un rapport (page de garde, styles, tables, ...) rendre un mini-rapport dans son format expliquant : peut être attendu d’un rapport la manière dont vous allez le réaliser avec votre pré-format 12 G. [email protected] Projet (partie graphes) Contexte projet Carnet d’adresse Courrier reçu : Je gère actuellement ma liste de contact à l’aide d’un fichier « tableur » une liste de contacts. Son utilisation est parfois assez pénible. Serait il possible de créer un programme qui utiliserait ce fichier et qui me faciliterait, sans ouverture d’un tableur, les opérations d’édition (création, suppression, modification, affichage, recherche) de mes contacts ? 13 G. [email protected] Projet (partie graphes) Contexte projet Carnet d’adresse Courrier reçu : Je gère actuellement ma liste de contact à l’aide d’un fichier « tableur » une liste de contacts. Son utilisation est parfois assez pénible. Serait il possible de créer un programme qui utiliserait ce fichier et qui me faciliterait, sans ouverture d’un tableur, les opérations d’édition (création, suppression, modification, affichage, recherche) de mes contacts ? Accord pour : gestion d’un programme Python réalisation uniquement d’une interface textuelle que le fichier « tableur » soit au format CSV (Comma-separated values). Ce fichier est constitué d’une suite de lignes contenant chacune 4 valeurs, dans l’ordre nom, prénom, adresse, téléphone. Chaque valeur est optionnelle. Il s’agit pour chacune de texte sans format particulier. G. [email protected] Projet (partie graphes) 13 Analyse et algorithmes Structuration des données Découpage en sous-tâches Algorithme des sous-tâches Réflexion sur l’interface Est-ce qu’on a toutes les informations nécessaires pour réaliser le produit attendu ? Délais ? Organisation. 14 G. [email protected] Projet (partie graphes) Programmation et tests Supports de cours de l’ECUE Informatique Programmation, site Misashs, vu sur le web en août 2013 + Synthèse distribuée G. Swinnen, Apprendre à programmer avec Python 3, Eyrolles, 2ème édition, 2010 Site www.python.org 15 G. [email protected] Projet (partie graphes) Message d’erreurs A partir de maintenant, notez les messages d’erreur type et leur signification. En constituer un document Remettre première version du document le 18 septembre. 16 G. [email protected] Projet (partie graphes)