Catch multiple pieces of cheese... more efficiently

Durée2h30 + préparation

Présentation & objectifs

Lors de la session précédente, vous avez découvert que capturer toutes les pièces de fromage en un nombre minimal d’actions est un problème très difficile à résoudre. Une approche alternative consiste à utiliser des heuristiques, c’est-à-dire des algorithmes approximatifs qui retourneront une solution généralement non optimale, mais suffisamment proche de l’optimal pour être acceptable, et qui peuvent être calculés en un temps réduit. Une heuristique très classique est l’algorithme “glouton” (greedy). Son objectif est d’approximer la solution globale d’un problème par une série de solutions localement optimales.

Les notions ci-dessus sont couvertes par quelques articles que vous devez étudier avant le cours. Dans l’activité pratique, vous devrez approximer une solution au problème du voyageur de commerce (TSP) basée sur une recherche gloutonne.

Important

Le contenu de cette session sera évalué. Consultez les détails à la fin de cette page.

Avant le cours

Prérequis techniques

Pour pouvoir commencer à travailler sur l’activité, vous devez remplir les conditions suivantes :

Acquisition des connaissances préalables

Pour pouvoir commencer efficacement l’activité pratique, nous avons introduit certains concepts nécessaires à la fin de la session précédente. Voici les diapositives utilisées en cours :

Ces diapositives couvrent uniquement les éléments principaux du cours, et beaucoup plus de détails sont donnés dans les articles associés. Ainsi, vous devez étudier les articles suivants chez vous avant la session :

Vous pouvez vérifier votre compréhension de ces articles ici :

Pendant le cours

Quiz

Au tout début de la session, nous commençons par un quiz Wooclap évalué pour vérifier votre compréhension des articles que vous deviez étudier. Le lien sera donné par l’enseignant au début du cours. Assurez-vous d’être à l’heure !

Attribution des rôles

Lors de l’évaluation précédente, vous avez dû sélectionner un rôle, correspondant à votre responsabilité dans le livrable évalué. Cette fois, vous devez prendre un rôle différent. Utilisez le tableau suivant pour trouver le vôtre :

Votre rôle la dernière fois
Votre rôle cette fois
Code quality Documentation
Documentation Unit tests
Unit tests Code quality

Comme décrit à la fin de cette page, vous devrez téléverser une archive, qui inclut un fichier README.md. Dans ce fichier, vous devrez indiquer qui est responsable de quoi.

Activité pratique

Le cours est dédié à une activité pratique. Une fois que vous avez terminé toutes les étapes ci-dessus, cliquez sur le lien ci-dessous pour commencer :

Après le cours

Compléter la session en cours

Cette session est évaluée. La modalité d’évaluation est décrite sur la page principale du projet. Avant la prochaine session, vous devez donc :

  • Revoir le contenu des articles ci-dessus.

  • Compléter les parties non optionnelles de l’activité pratique.

  • Créer une archive nommée student1_student2_student3.zip, où student1, student2 et student3 sont les noms de famille des membres de votre groupe. Cette archive doit être structurée comme suit :

    student1_student2_student3.zip
    |
    |_ games
    |  |_ # Put your game scripts here
    |
    |_ players
    |  |_ # Put your players here
    |
    |_ tests
    |  |_ # Put your unit tests here
    |
    |_ utils
    |  |_ # Put your additional codes here (if any)
    |
    |_ data
    |  |_ # Put your other files here (if any)
    |
    |_ README.md

    Le fichier README.md doit être un fichier texte formaté en Markdown. Téléchargez ce fichier pour l’utiliser comme base, et remplissez-le là où c’est demandé (remplacez tout ce qui est dans <...>).

  • L’étudiant responsable du code doit téléverser cette archive sur Moodle avant le début de la session 6.

Important

En plus de la qualité du code, de la documentation et des tests unitaires, nous évaluerons également votre capacité à produire un livrable. Autrement dit, faites attention aux éléments importants suivants :

  • Nous allons décompresser votre archive, et l’utiliser comme espace de travail dans Visual Studio Code. Votre code doit fonctionner directement, c’est-à-dire qu’exécuter un script dans les répertoires games ou tests doit créer un jeu ou effectuer des tests sans aucune intervention de notre part. Vous devez vous assurer de cela en testant dans un nouvel espace de travail Visual Studio Code avant de téléverser votre code sur Moodle.

  • Nous évaluerons votre capacité à produire un livrable selon des directives données. Considérez que nous sommes un client à qui vous envoyez un logiciel que vous avez dû produire. Le nom de l’archive, l’organisation de son contenu, et le contenu du fichier README.md doivent correspondre à nos exigences listées ci-dessus.

Préparer la prochaine session

  • Consultez la section “Avant le cours” de la prochaine session, et assurez-vous de faire tout ce qui est nécessaire pour la préparer.
  • La prochaine session commencera par un quiz évalué pour vérifier que vous avez compris les articles.