Projet informatique


Objectif

Ce cours permet d'appliquer les notions vues lors du cours d'algorithmes et programmation à la réalisation d'un projet informatique à partir de sujet proposés par les élèves. L'évaluation est basée sur le travail continu fourni par les élèves, le programme réalisée, et les rapport et soutenance de fin de projet. La plupart des stages incluent une partie programmation. Le projet est une bonne introduction.
 
Principaux acquis de la formation :
– Etablir un plan de développement
– Travailler de façon autonome et indépendante sur un programme informatique
– Ajuster un objectif en fonction des obstacles rencontrés
– Présenter son projet à un public non averti

Plan

Il est proposé à chaque élève de troisième année de réaliser un projet de programmation dans le langage de son choix. Ce projet pourra ou non se rapporter à la spécialisation choisie par l’étudiant, et est donc ouvert à l’ensemble de la promotion. Ce projet est néanmoins ambitieux et n’est réalisable qu’à la condition de maîtriser le langage de programmation envisagé. La voie normale d’acquisition de cette maîtrise est bien entendu de suivre ou d’avoir suivi un ou plusieurs enseignements de programmation, mais ceci n’est pas imposé.

Définition du sujet – Chaque sujet sera dactylographié, contiendra une description précise du projet et détaillera l’environnement de développement retenu (langage, accès base de données éventuels). Un recueil de sujets sera distribué début janvier, mais les étudiants peuvent également proposer un sujet personnel. Le sujet devra être original : en aucun cas, il ne peut y avoir double emploi avec un autre cours du cursus. 
Validation du sujet – Tous les sujets proposés par les encadrants ou les élèves seront validés par les enseignants en informatique. Les conditions essentielles sont l’originalité du sujet et sa difficulté, ainsi que la motivation de l’étudiant. Si nécessaire, la connaissance du langage retenu intervient aussi.
Choix du langage – Tous les langages enseignés à l’ENSAE sont possibles, à savoir Python, C++, Java, y compris les langages statistiques (SAS, R, etc.), pour les 3ème année.
Liens avec les cours de programmation – Les enseignements de langage font l’objet d’un contrôle des connaissances séparé, dans lequel la réalisation du présent projet informatique n’intervient pas.
Suivi – Chaque projet sera suivi par la personne l’ayant proposé. Pour les sujets proposés par les étudiants, si une telle personne n’est pas prévue, les enseignants en informatique en désigneront une. L’encadrant définti avec l’élève le planning des suivis. Le volume du suivi est limité à 4 ou 5.
Remise du travail et notation – Tous les projets donneront lieu à la rédaction d’un rapport de présentation et à une soutenance orale devant un jury. L’application informatique sera mise à la disposition du jury, qui est tenu aux règles classiques de confidentialité de l’école. Pour permettre au jury d’évaluer dans des délais raisonnables le travail des étudiants, le rapport écrit et l’application informatique devront être remis en mars/avril. Les modalités de cette remise seront précisées en temps utile à chacun. La notation est entièrement confiée au jury qui évaluera les différents aspects du travail : qualité de la réalisation informatique, respect du "cahier des charges'' initial, qualité du rapport écrit et de la soutenance orale.

Références

– Apprentissage de la programmation, Gérald Swinnen
– Précis de recherche opérationnelle, Robert Faure, Bernard Lemaire, Christophe Picouleau
– Problem Solving with Algorithms and Data Structures, Brad Miller, David Ranum (version html)