Il faudra que vous indiquiez absolument tous vos créneaux possibles
(plusieurs sur plusieurs journées), sachant que ces soutenances ne vous
dispensent pas de suivre vos cours habituels. Par ailleurs il est demandé une seule réponse par binôme (concertez
vous avant de répondre) et de vous assurer que vous n'êtes pas convoqués à d'autres examens/contrôles dans les
périodes que vous indiquerez.
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 !
Difficulté indicative des sujets, * =
facile, ** = dans la moyenne, *** = difficile. |
Il
peut y avoir multiples degrés de difficulté lorsque le sujet présente des
questions facultatives. |
Sujets proposés par les enseignants d'Informatique. |
|
Projet
individuel de programmation
Chaque élève devra réaliser un projet de programmation.
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 d'une dizaine de pages et
sera noté après une soutenance orale.
La réalisation des projets s'étalera de la mi-mars à la fin mai,
dans le cadre du cours Algorithmique et programmation (INF431).
Il est fortement recommandé de répartir son effort sur cette période.
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
de l'école. Tous les élèves doivent choisir leur
binôme et leur projet à la date de Choix du
Projet, spécifiée dans la section calendrier. 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.
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é à 15 binômes par
sujet.1
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, Benjamin Doerr, les auteurs des sujets, et les responsables du
cours, François Pottier et Benjamin Werner. 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.
1.2 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 du DIX 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 doit être mentionné sur la feuille de choix.
Les élèves intéressés
par un sujet personnel doivent faire leur proposition auprès
de Benjamin Doerr 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.
1.3 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.
1.4 Le
rapport de projet
Un rapport écrit fait partie intégrante du projet; une
version électronique (en pdf) du rapport sera déposée électroniquement
selon la procédure déjà employée en TP (upload) avant la date de
Remise du Projet, spécifiée dans la section
calendrier .
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.
1.5 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. À 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.
1.6 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
cette page.
Par ailleurs, les énoncés de projets seront 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…
-
Lorsque l'on travaille de façon isolée, il est possible de
perdre beaucoup de temps à mettre au point un programme parce que
celui-ci est mal organisé ou utilise de mauvais algorithmes,
alors que le conseil d'un enseignant permet de corriger le tir.
- On peut également perdre énormément de temps face à une difficulté
que l'auteur du projet juge non-essentielle, et qu'il est prêt à lever
par une indication. Il va de soi que, si vous pensez être dans ce cas,
la précision de l'indication correspond à celle de votre question.
- L'évaluation des projets fait une place assez importante à
la profondeur du travail réalisé. L'énoncé de la plupart des
sujets spécifie un travail minimal, puis décrit sommairement des extensions
possibles.
Le conseil de l'auteur du projet peut vous aider à identifier les
extensions les plus adéquates en fonction non seulement de
l'avancement de votre projet, mais aussi du temps qui reste à courir.
Les élèves peuvent aussi contacter le responsable des projets,
Benjamin Doerr, 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
(lastname@lix.polytechnique.fr), par téléphone, voire son bureau.
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 à la secrétaire du
département (Catherine Bensoussan), qui les aiguillera sur un
enseignant disponible.
1.7 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 : la DSI
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 clef USB (plus pratique qu'une
disquette). Dans tous les cas penser à utiliser deux copies ou plus
en alternance, afin de parer aux fausses manœuvres 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
clef USB ne peut être considérée comme un événement
imprévisible.
1.8 Notation du
projet d'informatique
Les élèves devront remettre leur projet à la date de Remise du
Projet spécifiée dans la section calendrier.
Le rapport et les sources du projet sont déposés électroniquement
(en pdf) suivant la procédure utilisée en TP (upload)
.
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
45 mn. Les deux élèves du binôme doivent participer à cette
interrogation. Elle débutera par un exposé de 20 à 25 minutes sur
transparents ou projection depuis un portable, consistant en une
brève description du problème posé, de la solution proposée et du
travail réalisé pour la mettre en œuvre. 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
utilisant un matériel particulier pour leur soutenance préviendront
les enseignants concernés.
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 cette page 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.
Ce document a été traduit de LATEX par HEVEA