Projet (partie graphes) - Université Paul Valéry

publicité
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)
Téléchargement