Retour à IS104 – Algorithmique Numérique

Fonctionnement des projets

Généralités

Au cours du module d’IS 104, il sera demandé de réaliser un certain nombre de travaux en équipes appelés ici projets. Ces projets sont destinés à être réalisés en moins de deux semaines, par des équipes de 4 ou 5 personnes. Chacun de ces projet consiste en la réalisation de trois éléments distincts :

  • un ensemble de fonctions en utilisant le langage développé dans le programme Python,

  • un ensemble de tests permettant d’afficher les résultats de ces fonctions,

  • un compte-rendu de moins de cinq pages résumant le travail réalisé comme décrit plus loin.

Chaque projet correspond à deux ou quatre créneaux de cours dirigé. Il lui est dédié deux créneaux consécutifs en salle machine.

Équipe de projet

Une équipe de projet comporte 4 ou 5 personnes.Pour chaque projet, l’équipe se scinde en :

  • un coordinateur de projet, Dialogue avec l’enseignant : le coordinateur est l’interlocuteur auprès de l’enseignant pour l’équipe. Si un des membres de l’équipe a une question ou un problème à poser, il y a d’abord concertation au sein de l’équipe. C’est le coordinateur qui pose cette question à l’enseignant. L’enseignant répond à toute l’équipe, les autres membres de l’équipe peuvent intervenir pendant la réponse. La concertation doit permettre à chaque membre de l’équipe d’intervenir sur la formulation et le sens de la question pour participer au dialogue avec l’enseignant et pourquoi pas apporter une réponse sans passer par l’enseignant.


    Dialogue avec l’équipe : le coordinateur supervise les autres membres de l’équipe en s’assurant que chacune de ces personnes ait sa part de travail. Il coordine les tandems sous sa responsabilité, organise les discussions entre les membres du projet, et fait vivre les questions à l’intérieur de l’équipe.

  • un secrétaire, Rédaction du compte-rendu : le secrétaire rédige le compte-rendu de projet, qui rend compte du travail de l’équipe. Ce travail ne peut être fait que si les autres membres de l’équipe lui fournissent des notes; il n’est pas là pour inventer. Une fois le compte-rendu rédigé, il demande à chaque membre de l’équipe d’ajouter son commentaire.

  • des programmeurs. Les programmeurs réfléchissent à la manière d’écrire le code nécessaire à la complétion du projet. Sous la direction du coordinateur, ils travaillent en tandem (sans toutefois se scinder en plus de deux groupes). Leur responsabilité porte sur la correction du code qu’ils écrivent, mais aussi sa propreté (indentation, commentaires …).

L’équipe s’entend pour désigner les rôles de chacun sur chaque projet. Chaque élève doit être au moins une fois secrétaire et une fois coordinateur sur l’ensemble des projets du module. On évitera que le coordinateur devienne secrétaire la semaine suivante et vice versa. Un calendrier doit être mis au point au début du module.

Rôle de l’enseignant : une équipe de projet est censé travailler par lui-même, à partir du sujet du projet. L’enseignant doit être considéré comme un client auquel il faut livrer un résultat. A ce titre, il répond aux questions concernant la compréhension du cours et apporte une aide aux problèmes techniques rencontrés ayant un rapport avec la programmation avec Python ou le travail en équipe. Pendant les heures dédiées au projet, l’interface entre l’enseignant et l’équipe se fait uniquement par le coordinateur.

Programmation en Tandem (Pair Programming)

Au sein de l’équipe, tout le travail de programmation se fait toujours en tandem (deux élèves par poste de travail).

  • Le pilote a à sa disposition le clavier et la souris. Il s’occupe de la réalisation pratique du travail (manipulation des fichiers, sauvegarde, compilation), d’expliquer au copilote ce qu’il veut faire. Il est essentiel de ne pas aller trop vite dans les manipulations et de veiller à ce que le copilote suive bien les opérations.

  • Le copilote s’occupe de la relecture du travail, de s’attacher aux détails en posant des questions au pilote, de voir les dérives par rapport au travail demandé, d’envisager les problèmes. Il s’occupe de prendre des notes (ou de faire prendre des notes au pilote) sur le travail effectué.

Le pilote et le copilote échangent régulièrement leur rôle pendant le travail, par exemple toutes les 40 minutes (ou moitiés de TP). Le but est d’établir une communication entre le pilote et le copilote pour que les deux élèves aient le même niveau de connaissance sur le travail effectué.


Bien évidemment, les tandems changent chaque semaine. Le coordinateur et le secrétaire ne sont pas dans le même tandem. Vous établirez un calendrier des tandems par projet. Essayez de travailler en tandem même en dehors du TD.

Compte-rendu de projet

Le compte-rendu de projet doit tenir en cinq (5) pages, et contenir impérativement les éléments suivants :

  • Les informations concernant l’équipe (nom du coordinateur, nom du secrétaire, constitution des tandems, date du TP).

  • Une présentation du travail réalisé (motivation du projet, lien avec le cours, part du projet réalisée et non terminée s’il y a lieu).

  • Un descriptif des fonctions codées, contenant le nom de la fonction et une définition de chacune des variables. Pour les fonctions principales, il est aussi demandé une estimation de leur complexité, ainsi qu’une évaluation du comportement dans les cas limites (grandes valeurs des variables, fonctions ou valeurs particulières)

  • Plusieurs exemples démontrant le fonctionnement du code (avec si possible une représentation graphique des résultats). En particulier et lorsque c’est demandé, donner des valeurs permettant de vérifier le bon/mauvais fonctionnement d’une fonction.

  • Un commentaire provenant de chacune des personnes du reste de l’équipe. Ce commentaire est là pour permettre d’ajouter des informations manquant dans le compte-rendu, des questions restant en suspens ou toute remarque d’intérêt sur le sujet du projet. L’absence d’un tel commentaire fait foi de l’acceptation irrévocable de tout ce qui est inscrit dans le compte-rendu, le secrétaire étant le seul à ne pouvoir y échapper.

Le compte-rendu ne doit pas dépasser cinq pages (deux recto-verso et un recto). Il peut être manuscrit ou soumis sous format électronique, en Postscript ou en PDF. Un en-tête LaTeX est disponible pour l’aide à la mise en page.
Le compte-rendu lui-même est bien entendu accompagné des fichiers source comme décrits ci-après. Il est inutile d’inclure des algorithmes entiers dans le compte-rendu.

Fichiers source

Les fichiers source doivent impérativement être exécutables à l’intérieur de l’environnement Python en utilisant la syntaxe suivante, sans provoquer de messages d’erreur ni aucun affichage (les warnings sont tolérés) :

exec (‘/path/to/file.sci’)

Chaque en-tête de fonction doit être accompagné d’un commentaire explicatif sur le code de la fonction et les valeurs de retour. Chaque fonction de test doit apparaître en fin de code entre commentaires, donnant un exemple d’utilisation.