École de technologie supérieure Génie de la production automatisée
GPA665
Structures de données et algorithmes
Projet de session
Conception et réalisation d’un projet informatique basé sur la manipulation de structures de données
Responsable du cours : Mohamed Cheriet, ing., Ph. D.
Rédaction du laboratoire : Jean-Christophe Demers Révision et barème de correction : Yan Levasseur & Mathieu Binette Temps alloué pour ce laboratoire : 8 périodes de laboratoire
Avant-propos
Ce projet représente une alternative pour les étudiants qui désirent approfondir certains sujets ou certains problèmes autres que ceux présentés dans les laboratoires 2 et 3.
Ainsi, ces étudiants auront l’opportunité de pousser un peu plus loin un projet informatique dans son intégralité. Afin de promouvoir les initiatives emmenées par les étudiants, le sujet du projet est entièrement à votre discrétion. Seules quelques contraintes d’ordre technique sont imposées.
Contraintes
Même si une grande latitude est laissée à la définition du projet, il ne faut pas perdre de vue l’aspect pédagogique de ce dernier. Ainsi, en respect avec le objectifs du cours, il est essentiel que le projet comporte une partie importante de gestion de données par le biais des structures de données vues en classe (tableaux dynamiques, vecteurs, matrices, liste, file, pile, arbre, graphe, hachage, etc.). Le projet doit comporter au moins deux
Projet de session
GPA665 STRUCTURES DE DONNEES ET ALGORITHMES ÉTE 2006
PROJET DE SESSION 2 / 4
structures de données différentes d’un certain niveau de complexité, et la gamme complète des fonctions qui permettent d’en faire une gestion efficace selon le contexte (insertion, suppression, recherche, tri, etc.). Une seule structure de données pourrait être acceptée si la complexité de cette dernière ou des algorithmes sous-jacents le justifie.
Le projet peut se faire seul ou par équipe de deux. De plus, l’usage du C ou du C++ est obligatoire. L’environnement de développement est à la discrétion des étudiants en autant que ce dernier soit disponible sur PC (Turbo C++, Visual C++, C++ Builder, etc.).
Indications supplémentaires
Le projet doit être approuvé par le chargé de cours et le chargé de laboratoire suite à une présentation préalable concise du projet sur papier. Cette présentation doit inclure :
Les noms et les courriels des membres de l’équipe.
Description du projet.
Description des structures de données nécessaires ou proposées.
Liste complète de toutes les fonctions de gestion pour les structures de données.
Environnement de développement prévu.
Suggestions
Voici quelques exemples de projets :
1. Logiciel de CAO.
2. Logiciel graphique d’aide à la compréhension des différentes structures de données et des algorithmes vus en classe.
3. Logiciel de dessin comportant certains aspects particuliers (« morphing » entre deux images, outil de dessin pour des organigrammes, etc.).
4. Outil de vision artificiel permettant de localiser les caractéristiques importantes d’une image.
5. Représentation polygonale de l’environnement en passant par l’extraction de courbe de niveau d’une carte 3D.
6. Plus court chemin entre deux points dans un environnement décrit par des polygones convexes.
7. Outil pour la prédiction / classification de données
8. Résolution d’équation par la méthode des arbres.
Projet de session
GPA665 STRUCTURES DE DONNEES ET ALGORITHMES ÉTE 2006
PROJET DE SESSION 3 / 4
Date d’acceptation, de présentation et de remise du projet
Vous devez faire accepter votre projet au plus tard au début de la 5ième période de laboratoire. La présentation orale devra être réalisée lors de l’un des deux derniers cours de la session. Finalement, le programme ainsi que le rapport final doivent être remis en même temps que le laboratoire 3, c’est-à-dire dans la semaine des examens. La date exacte sera fixée au cours de la session.
Évaluation
L’évaluation de projet de session se fait en deux parties :
Un bref exposé oral en classe vous donnera la chance de présenter le fruit de votre travail. Cet exposé sera d’une durée de 10 minutes maximum suivi par une période de question. Vous devez aborder au moins les points suivants :
o Présentation des membres de l’équipe.
o Présentation de la problématique.
o Présentation de la structure de données implantées.
o Description sommaire des algorithmes.
o Présentation des résultats et atteinte des objectifs.
Finalement, nous vous demandons aussi de remettre un rapport de projet de session. Celui-ci devra comprendre la présentation de la problématique et de votre mandat spécifique (1 page), les étapes et l’évolution de la conception de votre programme (1 page), un organigramme général du déroulement de votre programme (1 page), une présentation de la structure de données implantée, sa justification et une comparaison entre la structure de données choisie et un une autre structure qui a été considérée mais non choisie (2-3 pages), une discussion sur les problèmes majeurs rencontrés (1 page) et finalement un retour sur les objectifs, mentionnant quels objectifs ont été atteints, puis une ouverture sur d’autres solutions pour le même problème ou sur des concepts plus avancés sur le même thème (1 page). Vous devez joindre la grille d’évaluation de la page suivante complétée avec votre rapport.
La remise se fait par un fichier ZIP correspondant aux éléments suivants :
Le dossier principal de votre projet Visual C++ incluant tous ses dépendants (sauf les librairies principales du C/C++). N’oubliez pas de bien documenter votre code source.
Une version exécutable de votre programme.
Un PDF de votre rapport.
Le fichier doit être nommé : GPA665_PROJET_VotreNom.ZIP
Le tout doit être remis par courriel au chargé de laboratoire avant la date prescrite.
Projet de session
GPA665 STRUCTURES DE DONNEES ET ALGORITHMES ÉTE 2006
PROJET DE SESSION 4 / 4
Grille d’évaluation
En guise d’autoévaluation, imprimez et remplissez vous-même cette section.
Mentionnez une référence (nom de fichier et numéro de ligne) lorsque demandé pour faciliter la vérification par le correcteur.
Rapport de laboratoire (60) Oui Non Commentaire
10 Présentation des objectifs, conception 10 Organigramme clair et logique
20 Justification de la structure de données et comparaison
10 Problèmes majeurs, discussion, atteinte des objectifs et ouverture
10 Qualité du rapport, clarté et concision
Présentation orale (40) Oui Non Commentaire
10 Problématique
10 Conception et choix de la structure de données
10 Présentation de la solution
10 Qualité de la présentation, intérêt suscité
Spécifications techniques (30) Oui Non Référence (fichier, ligne) 15 Atteintes des objectifs pédagogiques
proposés
15 Résultat attendu pour le comportement du programme, exécution fluide
Spécifications de programmation (30) Oui Non 15 Utilisation d’une structure de données
appropriée au problème _____________________
15 Gestion dynamique de la mémoire et
libération de l’espace alloué _____________________
(-10) Aucune variable globale
Qualité logicielle (40) T.B. Bon Pauvre Référence (fichier, ligne) 10 Modularité : usage généralisé de fonctions
et regroupement logique en modules
_____________________
_____________________
10 Robustesse : Précaution pour éviter les problèmes de données erronées, etc.
_____________________
_____________________
10 Documentation : Commentaires pertinents qui accélèrent la compréhension du code
_____________________
_____________________
10 Clarté du code : Code concis et court utilisant les fonctions adaptées
_____________________
_____________________
200 TOTAL