Projets individuels de programmation (PI)

Promotion 2003



Affectation des sujets



Projet individuel de programmation

Chaque élève devra réaliser un projet de programmation. La note attribuée au projet peut influer positivement sur la note classante du cours. Il s'agit d'un travail personnel d'une quarantaine d'heures environ conduisant à la rédaction d'un programme complet de 500 à 1000 lignes. Les projets sont normalement menés en binôme, chaque élève étant cependant noté individuellement. Le projet donnera lieu à la remise d'un rapport de quelques pages et sera noté après une soutenance orale.

La réalisation des projets s'étalera de mai à juin 2005, dans le cadre du cours d'Informatique Fondamentale. Il est fortement recommandé de répartir son effort sur cette période.

Choix des sujets et feuille de choix

Les élèves choisiront de préférence leur projet parmi les sujets proposés dans le présent document par les enseignants de l'école. Tous les élèves doivent choisir leur binôme et leur projet pour le 20 avril 2005. Inversement, aucune priorité particulière ne sera accordée aux choix rendus plus tôt; il est donc inutile de précipiter ce choix. Tous les élèves sont donc invités à bien lire et évaluer tous les sujets avant de faire leur choix.

FEUILLE DE CHOIX

Pour éviter que trop d'élèves choisissent le même sujet et provoquent ainsi la surcharge de l'auteur (qui sera aussi, autant que possible, le correcteur, voir ci-dessous), il est institué un numerus clausus, fixé à 30 élèves par sujet.1

Les élèves trouveront dans ce polycopié une feuille de choix de projet informatique, qu'ils devront remplir et remettre au bureau de la scolarité le 20 avril 2005. Ceux qui choisissent un sujet dans le présent document devront donner trois choix de sujets, dans un ordre de préférence clairement identifié. Les conflits dûs au numerus clausus pourront être résolus par négociation entre les élèves, le responsable des projets, Olivier Devillers, les auteurs des sujets, et le responsable du cours d'Informatique Fondamentale, Jean-Jacques Lévy. En dernier ressort la direction des études tranchera.

Il doit être évident maintenant qu'il est utile de s'intéresser le plus tôt possible au choix d'un sujet de projet.

Cas particuliers

Les élèves peuvent, au lieu de choisir parmi les sujets conçus par les enseignants, proposer un sujet personnel. Un sujet personnel doit être agréé par un enseignant d'informatique qui jugera si sa difficulté (algorithmique et de programmation) et son intérêt pédagogique sont comparables à ceux des autres sujets. Cet enseignant sera le correspondant des élèves durant la réalisation du projet et il signera la feuille de choix. Les élèves intéressés par un sujet personnel doivent faire leur proposition auprès de Olivier Devillers assez tôt pour qu'en cas de refus d'agrément de celle-ci, ils puissent faire leur choix dans les sujets « officiels ».

Il est également possible, à titre exceptionnel, de traiter un sujet individuellement. En revanche, aucune équipe formée de plus deux élèves ne pourra être formée.

Choix du langage de programmation

Java étant le langage de programmation adopté pour ce cours, les projets sont conçus pour être réalisés en Java. Cependant le choix d'un autre langage de programmation est possible, l'impératif étant que le programme puisse être effectivement exécuté pendant la soutenance sur les stations Unix des salles info (utilisées en local ou comme terminaux), ou encore sur du matériel personnel ou prêté par un laboratoire, à condition qu'il soit mis en place par les élèves le jour de la soutenance dans la salle prévue à cet effet. Quel que soit le langage utilisé, il est vivement recommandé de structurer les programmes et de les commenter.

Le rapport de projet

Un rappport écrit faisant partie intégrante du projet sera remis à la scolarité le 13 juin 2005. Ce rapport doit être rédigé avec soin et présenter une réelle synthèse du travail effectué. Il comporte deux parties : le rapport proprement dit et une notice d'utilisation du programme claire et complète, illustrée de quelques traces d'exécution sur des exemples représentatifs, lorsque le sujet le permet. Le rapport devrait comporter, hors les exemples, une dizaine de pages environ. Les rapports bâclés ou inutilement longs2 seront pénalisés.

Le rapport proprement dit pourra comporter par exemple une brève introduction présentant le sujet du projet (il ne s'agit pas de recopier le détail de l'énoncé, mais de résumer avec clarté le travail proposé), une présentation de l'architecture du programme, des structures de données choisies et des algorithmes retenus (s'ils ne sont pas donnés dans le sujet, et en les justifiant brièvement s'il y a lieu), éventuellement un tableau des performances du programme et une conclusion indiquant les améliorations envisagées ou les développements suggérés. Le rapport doit mettre en valeur les aspects essentiels du programme sans se perdre dans des détails d'implantation. Un bon rapport de projet doit pouvoir servir de base à un exposé clair et concis.

Temps consacré au projet

Quelques projets permettent des développements conséquents. Certains élèves pourront donc être tentés de consacrer 60 heures voire 120 heures de travail et parfois beaucoup plus à leur projet.3 Ceci peut être passionnant mais n'est pas raisonnable quand on considère les objectifs de formation générale de l'École Polytechnique. A partir du moment où le sujet est convenablement traité, doubler le temps consacré au projet changera peu de chose à la note finale et augmentera la sévérité du jury sur la moindre faute de conception. De plus, le temps ainsi pris sur vos études risque de vous pénaliser dans d'autres disciplines.

Suivi des projets

Pour toute demande d'éclaircissement sur un sujet de projet, les élèves sont invités à prendre contact avec les enseignants responsables des sujets. Ces prises de contact se feront facilement par courrier électronique ; si les élèves ou l'enseignant le souhaitent, un contact plus direct pourra être organisé ensuite. Les coordonnées de tous les enseignants se trouvent dans ce poly, et sont par ailleurs facilement accessibles à partir de la page WWW des projets infos, en
http://www.enseignement.polytechnique.fr/informatique/IF/projets/index.html
Par ailleurs, certains énoncés de projets sont complétés par des pages de suivi et ces pages peuvent évoluer en réponse à des questions d'élèves. Il importe donc, le cas échéant, de consulter les pages de suivi régulièrement.

Le projet est un travail personnel qui laisse une large place à l'autonomie des élèves. Ceci n'empêche pas, bien au contraire, de demander conseil... Les élèves peuvent aussi contacter le responsable des projets, Olivier Devillers, pour toute question concernant les projets : appréciation du niveau relatif de difficulté pour le choix de sujet, contact à établir avec un enseignant (mais essayez d'abord le courrier électronique), difficulté de compréhension, etc. Ils peuvent le joindre (de préférence) par courrier électronique (Olivier.Devillers@inria.fr), ou par téléphone.

D'autre part, pour les blocages dûs plus directement au matériel et au système, les élèves peuvent solliciter l'aide d'un enseignant du LIX. Ils peuvent s'adresser à Jean-Marc Steyaert, par courrier électronique (steyaert[at]lix.polytechnique.fr), par téléphone (poste 4072), ou en allant le voir à son bureau au LIX.

Sauvegardes des projets

Pour éviter les pertes de fichiers, il convient d'effectuer régulièrement des sauvegardes. Pour le travail réalisé sur les stations Unix, le processus est automatique : le centre informatique effectue tous les jours une procédure de sauvegarde des répertoires de tous les utilisateurs de l'environnement UNIX.

Ce n'est bien sûr pas le cas pour le travail effectué sur un PC personnel. Il conviendra donc dans ce cas d'effectuer une copie de son travail, après chaque séance, soit vers l'environnement UNIX via le réseau, soit sur une disquette. Dans tous les cas penser à utiliser deux copies ou plus en alternance, afin de parer aux fausses manoeuvres ou aux défaillances éventuelles de disquette ou de réseau.

Les élèves sont entièrement responsables de la sauvegarde de leur projet. En particulier, la défaillance d'un disque dur ou d'une disquette ne peut être considérée comme un événement imprévisible.

Notation du projet d'informatique

Les élèves devront remettre leur projet le 13 juin 2005. Le rapport est remis à la scolarité, les programmes sont déposés électroniquement selon la procédure déjà employée pour les « devoir-maison ».
Note : Le rapport et le programme déposé à la date de remise forment la base d'analyse et de notation par le correcteur, la soutenance intervenant comme complément. Il est donc nécessaire que le programme soit terminé le jour de la remise, même si la soutenance n'a lieu que beaucoup plus tard.

La soutenance du projet est une interrogation orale d'une durée de 60 mn. Les deux élèves du binôme doivent participer à cette interrogation. Elle débutera par un exposé de 20 à 25 minutes sur transparents, consistant en une brève description du problème posé, de la solution proposée et du travail réalisé pour la mettre en oeuvre. Cette présentation sera suivie d'une démonstration du programme pendant 10 mn environ, puis des questions des examinateurs. La démonstration sur ordinateur pourra être intégrée dans l'exposé proprement dit. Les élèves désirant employer un autre matériel de présentation ou effectuer leur démonstration sur du matériel personnel devront le signaler à l'avance à la scolarité.

La note de projet tient compte des points suivants :
Conception :
compréhension du sujet, qualité et justification des structures de données et des algorithmes employés, etc.
Programmation :
structure et lisibilité du programme, efficacité en temps et en place, esthétique et ergonomie de l'interface, etc.
Rapport :
qualité de la synthèse, clarté du document, présentation des performances, pertinence et complétude des instructions d'utilisation, etc.
Oral :
organisation et clarté de la présentation, préparation de la démonstration, choix et pertinence des exemples, interactivité, etc.
Les deux premiers points sont, bien entendu, les plus importants (environ 2/3 de la note). Si un sujet demande une analyse substantielle dans le rapport, celle-ci est prise en compte dans l'évaluation de la conception du sujet.

La profondeur du travail réalisé compte pour environ la moitié des points Conception et Programmation. Un travail parfait mais minimal, sans grande difficulté et s'attachant strictement à un énoncé de base facile, ne récoltera qu'une note moyenne. En gros, un sujet facile sera noté sur 16, un sujet moyen sur 18, et un sujet difficile sur 20. Néanmoins il est possible d'avoir 20 même avec un sujet de base facile, si on y ajoute des extensions plus difficiles; mais cela demande autant de travail que la réalisation d'un sujet plus complexe. Inversement un travail qui écorne un sujet difficile, par exemple en faisant l'impasse sur l'algorithme proposé, verra sa note diminuée. Le tableau 1 donne une cotation indicative de la difficulté des différents sujets proposés.

Le jury note également la qualité de la présentation orale des élèves. La difficulté de l'oral est de faire une présentation qui ne soit pas une simple récitation du rapport et d'y intégrer la démonstration sur ordinateur de manière naturelle dans un temps très limité. Ceci requiert une attitude dynamique et une préparation sérieuse. Une répétition est toujours utile. Il faut également s'attendre à des questions parfois difficiles du jury. Certaines questions portent sur le programme et sur la démonstration qui en est faite. Chacun des élèves d'un binôme doit être capable de délimiter clairement sa contribution.

Dans le cas d'un sujet proposé dans ce polycopié par un des enseignants d'informatique, le jury est en général réduit à cet enseignant. Cependant, puisque certains enseignants ayant proposé un sujet ne seront pas des correcteurs, et pour équilibrer la charge des autres correcteurs, certains élèves seront jugés par un autre enseignant que celui qui a donné le sujet ; le nombre de ces « échanges » sera publié à l'avance.

Calendrier


le 6 avril 2005 Distribution du présent polycopié
le 20 avril 2005 Remise de la feuille de choix
le 13 juin 2005 Remise du projet (rapport et programme)
du 20 juin au 1 juillet 2005 Interrogation orale individuelle
Il est conseillé de planifier le travail sur le projet en tenant compte des autres enseignements. Il ne faut pas hésiter à commencer l'analyse du sujet et la conception du programme dès après le choix du sujet, et à travailler ensuite régulièrement pendant le temps nécessaire. Il ne faut surtout pas attendre la dernière semaine pour commencer à programmer, car la mise au point d'un programme entièrement écrit prend le plus souvent beaucoup plus longtemps que l'écriture du premier jet du programme !


1
Ce nombre est le résultat de la division de l'effectif de la promotion par le nombre de sujets, multiplié par un certain facteur de souplesse.
2
Certains sujets qui comportent explicitement des analyses de cas ou d'algorithmes peuvent justifier un rapport plus long.
3
En particulier, le développement d'une interface graphique conséquence est une tâche considérable qui n'entre pas dans l'esprit du projet informatique


Table 1 : Difficulté indicative des sujets, * = facile, ** = dans la moyenne, *** = difficile.

Sujets proposés par les enseignants d'Informatique.
1 ** Filtre antispam par analyse statistique bayésienne (ps) Didier.Remy[at]inria.fr
2 * Calculs de relations entre constantes numériques par l'algorithme «LLL» (ps) Frederic.Chyzak[at]inria.fr
3 ** A file and directory synchronizer (ps) Dale.Miller[at]inria.fr
4 * Night paint ball (ps) Olivier.Devillers[at]inria.fr
5 *** Recherche de solutions optimales au jeu de taquin (ps) Francois.Pottier[at]inria.fr
6 ** Le predicteur universel discret de Shannon (ps) Philippe.Jacquet[at]inria.fr
7 ** Décryptage de fichiers chiffrés (ps) enge[at]lix.polytechnique.fr
8 *** Démontrer automatiquement des petits théorèmes, mini-Prolog (ps) David.Monniaux[at]ens.fr
9 * Multiplication rapide de matrices et applications (ps) magniez[at]lri.fr
10 ** De la Conservation des toiles de maîtres (ps) Philippe.Baptiste[at]polytechnique.fr
11 ** Reconstruction de puzzles, avec description des découpes par codage de Freeman (ps) Philippe.Chassignet[at]polytechnique.fr
12 *** Manipulation de graphe: construction et algorithmes (ps) rossin[at]liafa.jussieu.fr
13 ** Téléchargement peer-to-peer de fichier par combinaisons linéaires de blocs (ps) Laurent.Viennot[at]inria.fr
14 ** De Novo Interpretation of Tandem Mass Spectrometry Data (ps) behzadi[at]lix.polytechnique.fr
15 ** Solution de systèmes polynomiaux par homotopie (ps) schost[at]lix.polytechnique.fr
16 ** Cryptanalyse par corrélation rapide (ps) Nicolas.Sendrier[at]inria.fr
17 *** Maillage de surfaecs de genre zéro sans bord (ps) Steve.Oudot[at]sophia.inria.fr
18 ** Optimiser le HTML (ps) Luc.Maranget[at]inria.fr
19 *** Vers l'algorithme de Makanine (ps) Jean-Jacques.Levy[at]inria.fr


Ce document a été traduit de LATEX par HEVEA.