Projet (partie graphes) G. Richomme gwenael.richomme@univ-montp3.fr Université Paul Valéry Montpellier 3 Licence AES parcours Misahs cours 2013-2014 1
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
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
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
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
Rappel : Cycle de développement 6
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
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
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
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
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
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
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
Cycle de développement (2/4) Analyse : phase de réflexion qui permet d identifier précisément le problème 8
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
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
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
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
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
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
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
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
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
Cycle de développement (4/4) Problème 10
Cycle de développement (4/4) Problème Analyse Algorithme Programme Compilation/Interprétation Tests d exécution 10
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
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
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
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
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
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
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. 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
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
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