INFORMATIQUE FONDAMENTALE
PROJETS INDIVIDUELS DE PROGRAMMATION

Édition 2003

1.1   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 d'informatique de l'École et par certains enseignants des majeures d'autres disciplines. Tous les élèves doivent choisir leur binôme et leur projet pour le 29 Avril 2003. 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. On trouvera une feuille de choix à la fin de ce poly.

Les élèves peuvent également proposer un sujet personnel, qui devra ê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 sujets proposés ici.

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é à 40 élèves par sujet.1

Les élèves trouveront dans ce polycopié une feuille de choix de projet informatique, qu'ils devront remplir (avec la signature d'un enseignant d'informatique dans le cas d'un sujet personnel) et remettre au bureau de la scolarité le 29 Avril 2003. 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, Georges Gonthier, 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. En particulier, les élèves intéressés par un sujet personnel doivent faire leur proposition assez tôt pour qu'en cas de refus d'agrément de celle-ci, ils puissent encore faire leur choix dans les sujets ``officiels''.

1.2   Choix du langage de programmation

Le langage de programmation utilisé peut être Java, Caml, C, ou tout autre langage à la convenance de chacun, 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 l'élève le jour de la soutenance dans la salle prévue à cet effet. Quel que soit le langage utilisé, il est vivement recommandé de mettre des commentaires dans les programmes.

1.3   Le rapport de projet

Le rapport de projet doit être rédigé avec soin et présenter une réelle synthèse du travail effectué. Il doit comporter trois parties : le rapport proprement dit, 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, et enfin le listage du programme. Le rapport devrait comporter, hors le listage et les exemples, une dizaine de pages environ. Les rapports trop courts 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.

1.4   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 gravement dans d'autres disciplines.

1.5   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 électroniques de tous les enseignants sont facilement accessibles à partir de la page des projets infos. En plus de ces aides ponctuelles, un suivi régulier est prévu dans les blocs de PC du cours d'Informatique Fondamentale. Il est important d'y assister, car ce sera l'occasion pour les enseignants de guider et d'orienter le travail des élèves : Les élèves peuvent aussi contacter le responsable des projets, Georges Gonthier, 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, par téléphone, ou même en se rendant à son bureau à l'INRIA.

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, par téléphone (poste 4072), ou en allant le voir à son bureau au LIX.

1.6   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 (utiliser telnet ou ftp, 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. Ceci vaut également pour les exemples et transparents nécessaires à la soutenance.

1.7   Notation du projet d'informatique

Les élèves devront remettre à la scolarité, le 18 Juin 2003 leur rapport de projet, accompagné d'une disquette contenant leur programme, et éventuellement d'une description de l'accès à ce programme sur les machines UNIX, d'une notice d'utilisation, ainsi que du listage du programme source et des résultats obtenus par le programme sur un ou deux exemples significatifs. Note : ce rapport avec ses annexes formera la base d'analyse et de notation par le correcteur ; il est donc nécessaire que le programme soit terminé le jour de la remise du rapport, même si la soutenance n'a lieu que beaucoup plus tard.

La remise du projet donne lieu à une interrogation orale d'une durée de 60 mn. Les deux élèves du binôme doivent assister à cette interrogation. Elle débutera par un exposé de 20 à 25 minutes sur transparents (un rétro-projecteur sera fourni), 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 (l'accès aux stations Unix sera assuré par le centre informatique pendant toute la durée des oraux, mais les élèves travaillant sur ordinateur portable doivent venir avec leur matériel) 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 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. La liste des différents sujets proposés donne une cotation indicative de leur difficulté .

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.

1.8   Calendrier

le 23 Avril 2003 Distribution du présent polycopié
le 29 Avril 2003 Remise de la feuille de choix
le 18 Juin 2003 Remise du rapport de projet
du 23 Juin au 2 Juillet 2003 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 est recommandé de se rendre aux blocs de suivi. 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, la redéveloppement complet d'une interface graphique à partir des primitives de base est une tâche considérable et inutile. Si vous avez besoin d'une telle interface, utilisez les ressources des bibliothèques Java.

This document was translated from LATEX by HEVEA.