Il sera attendu de votre part :
La création, dans les meilleurs délais, sur votre Gitlab d’un dépôt Git dans lequel vous rendrez votre projet.
Le dépôt doit m’être accessible en lecture (nom d’utilisateur : @jpp) ou être public.
Vous devez l’utiliser régulièrement pour remonter vos modifications, ces dernières devant être documentées de manière à bien refléter les changements.
La régularité et la cohérence de l’évolution de votre dépôt est capitale, elle est prise en compte dans l’évaluation (par exemple, un projet qui passe de 5% à 95% “fait” la veille de la date limite aura de fortes chances d’éveiller mes soupçons ; de même qu’un projet qui change du tout au tout durant sa période de vie).
Le projet est réalisé seul ou en binôme. Dans le cas où le travail est réalisé en binôme le code source doit être commun ; un seul dépôt Git devra être utilisé pour stocker le code source et répertorier les differents commit des deux contributeurs.
De travailler sur votre projet : coder. Il n’est pas interdit de glaner des idées çà et là ou de vous inspirer de ce qui est fait ailleurs, il est néanmoins obligatoire dans ce cas de citer ses sources ; toute omission peut être considérée comme une tentative de plagiat et être sanctionnée.
La création d’un fichier README à la racine du dépôt qui :
De préparer une présentation de votre travail. Cette présentation prendra la forme de slides projetés lors de la soutenance et, si besoin, de démo de fonctionnement de vos programmes.
La présentation devra durer une dizaine de minutes max suivi de quelques questions (à ne pas trop dépasser si vous ne voulez pas rester jusqu’à 14h le jour de la soutenance…).
Le projet donne lieu à un rapport individuel (comprendre : chaque membre d’un binôme fait son propre rapport) qui est rendu maximum la veille de la soutenance.
Il est rédigé en , compilé en .pdf (et pas en .word ou je ne sais quel format improbable), et devra respecter le template qui sera fourni.
Le but est de faire jouer un groupe d’agents les uns contre les autres au jeu du prisonnier de Tucker et de regarder ce qu’il se passe dans la partie en fonction de qui joue contre qui, suivant les règles (le nombre de points perdus/gagnés en fonction des choix, le nombre de rounds, etc…) et suivant la population.
Par exemple sur 10 joueurs, si la partie est composée que de coopératifs ou de copycat que se passe-t-il ? Que se passe-t-il si on introduit un tricheur, etc…
Chaque agent joue un certain nombre de round, contre chacun de ses adversaires, et les scores en fin de partie donne le ou les vainqueurs.
Le rapport devra tenter d’apporter une explication aux différents phénomènes observés.
Faire un programme permettant de jouer au binairo ainsi qu’une IA capable de résoudre le jeu.
Faire un programme permettant de jouer à 2 ou contre une IA à othello.
22004539
Faire un programme générant des labyrinthes valides.
Si possible en permettant à l’utilisateur d’entrer une seed et/ou en proposant lui des paramètres influant la génération du labyrinthe.
22001641
Faire un programme permettant de jouer au poker contre une (ou des ?) IA.
22008899
Faire un programme émulant le fonctionnement de youtube-dl.
youtube-dl dispose de fonctionalités très puissantes allant du téléchargement de playlistes à l’encodage de vidéos en passant par le téléchargement des sous-titres (sur a peu près tous les sites existant).
Le but ici n’est donc pas de se contenter de téléchager des vidéos depuis YouTube mais d’implémenter quelques fonctionalités supplémentaire qui semblent pertinentes.
22002895
Le problème de Monty Hall est un problème bien connu de probabilité conditionnelle.
Le but de ce projet est de simuler le jeu un grand nombre de fois pour montrer expérimentalement que les résultats théoriques contre-intuitifs sont conforme à ce qu’on observe dans la réalité et de produire un rapport expliquant le problème et ses résultats tant théoriques qu’expérimentaux.
Faire un prenant en entrée un fichier textuel et produisant en sortie un fichier html formatté (avec CSS).
22004472
Émuler MS Paint avec autant de fonctionalités que vous vous sentez d’ajouter.
Au minimum pouvoir dessiner des formes géométriques et écrire dans des fichiers.
22001767
22002823
Faire un programme générant (graphiquement ou dans une image) des fractales à partir de paramètres entrés par l’utilisateur.
Faire un programme permettant de jouer au 8 américain contre une (ou des ?) IA.
Faire un programme qui rassemble des tweets publics correspondant à un thème défini par un mot-clef.
Ce programme produira ensuite une analyse de ces tweets et les classera en fonction de divers paramètres thématiques et statistiques.
22001030
Faire un programme permettant de jouer au sudoku ainsi qu’une IA capable de résoudre le jeu.
22005461
22000313
Faire un programme permettant de jouer au UNO contre une (ou des) IA.
Faire un programme permettant de résoudre des problèmes du jeu de dames.
Faire un programme permettant de résoudre des problèmes du jeu d’échecs.
Faire un programme permettant de jouer pong contre une IA.
22001437
Faire un programme permettant de jouer au petits chavaux contre une (ou des) IA.
LZW (pour Lempel-Ziv-Welch) est un algorithme de compression de données sans pertes très utilisé.
Il s’agira ici de réaliser un petit soft permettant de compresser et de décompresser des fichiers en utilsiant cet algorythme.
18908633
22004155
Faire un programme qui simule le fonctionnement d’une machine de Turing. et pouvant accepter de petits programmes en entrée (incrémentation d’entiers, additions, conversions unaire -> binaire, castor affairé, …).
un L-system (ou système de Lindenmayer) est une grammaire formelle generative permettant de simuler procéduralement la croissance d’un système organique arborescent (comme un arbre ou un corail).
De nombreux L-systems bien connu existent très simple existent (Fractal (binary) tree, l’ensemble de Cantor, le triangle de Sierpinski, …)
Le projet consiste à créer un programme qui propose de dessiner (dans un fichier ou une fenêtre) des L-systems connus avec un paramètre de profondeur réglable.
La même chose que le 21 mais avec non pas des L-systems pré-générés mais avec en entrée le tuple G = (V, ω, P) et une grammaire explicative de l’ensemble P permettant de générer des L-systems quelconques.
Créer un programme qui prend en entrée une image et propose à l’utilisateur d’y appliquer des filtre graphiques (différents algorithmes de flou, cel shading, filtres expressifs, …)
Créer un programme qui génère une texture procédurale (paramétrable) à partir de bruit de Perlin.
L’idéal serait ensuite de pouvoir utiliser la texture ainsi générer pour générer une autre image (parmi les utilisations courantes de bruit de Perlin on trouve la génération de feu et de terrain).
Créer un programme qui simule (en 2D) un petit sytème physique.
Créer un programme capable d’éditer les métadonnées d’un fichier son.
Créer un programme qui émule le fonctionnement d’un explorateur de fichier.
Implémenter un petit shell (POSIX ou pas)