Outils pour utilisateurs

Outils du site


projets:licence2:2018-2019

Projets de programmation 2018-2019

Vous pouvez saisir vos voeux : ici
Date limite de dépôt de votre fiche de voeux sur le site: 18/01/2019 à 18h

Sujet L2A - Robot ramasseur de balles

Encadrants : Michel Soto, Ramy Temim
Mail de l'encadrant :

Catégorie(s): Robotique

www1.pcmag.com_media_images_138615-lego-mindstorms-nxt-tribot.jpg

Présentation du sujet
L'objectif de ce projet est de construire et de faire fonctionner un robot ramassant des palets disposés sur une surface jeu. Deux robots s'affrontent dans un match qui consiste à récupérer le maximum de palets dans le temps imparti.

Travail à effectuer :
Dans le cadre d'une approche incrémentale, le programme développé devra permettre au robot de réaliser les tâches suivantes:

  • Se déplacer sur la surface donnée sans en sortir.
  • Repérer les billes de couleur et les ramasser.
  • Ranger les billes ramassées : autrement dit, les déposer dans une zone prévue à cet effet.

Evidemment, le robot devra réaliser ces tâches le plus rapidement possible.

Contraintes:
Le langage utilisé pour réaliser le(s) programme(s) sera obligatoirement : C ou Java
La salle de robotique est petite et il faudra la partager.
Participer aux événements de promotion de la robotique organisés par l'UFR.

Sujet L2B - Mycologik

Nom de l'encadrant: Florence Leclerc et Gwenaël Ruprich-Robert
Mail de l'encadrant :

Catégorie(s): Smartphone

Présentation du sujet
Le pharmacien d’officine doit être capable d’identifier les principaux champignons que l’on peut ramasser en forêt. Dans ce cadre, il est proposé de développer un outil simple d’identification des grands groupes, tels que les Cèpes ou les Amanites. La cueillette des champignons en France est très répandue et cette application vise à faciliter l’identification et à alerter sur les espèces toxiques.

Travail à effectuer
L'objectif de ce projet est de réaliser une application qui fonctionne sur smartphone. Elle devra permettre :

  • De recenser et d'explorer les différents groupes de champignon en s’appuyant sur des clés d’identification déjà existantes
  • D'informer sur les principales espèces et les risques associés
  • De présenter les caractéristiques des différents groupes de champignons
  • De proposer des conseils pour la cueillette et la préparation des espèces comestibles
  • De proposer un aide-mémoire pour les espèces les plus fréquentes

Langage(s) et technologie(s):

  • Javascript/React Native (iOS & Android)

Contrainte(s) :
Posséder un smartphone

Sujet L2C - Développement d'un logiciel d'emploi du temps: gestion des permanences en crèche parentale

Nom de l'encadrant: Elise Bonzon
Mail de l'encadrant :

Catégorie(s):Site web

Présentation du sujet

En crèche parentale, les parents doivent effectuer une demi-journée de permanence par semaine. De nombreuses crèches parentales existent en France, mais aucun logiciel permettant d'automatiser la gestion des permanences n'existe encore. Chaque famille a des contraintes fortes et des contraintes souples pour leur disponibilités, qui peuvent changer chaque semaine. Une permanence doit être accomplie chaque demi-journée de la semaine. Les parents doivent à la fin de l'année avoir effectué le même nombre de permanences (au prorata de leur date d'arrivée).

Objectifs:
Le logiciel développé doit permettre de:

  • rentrer les contraintes et préférences des familles de façon simple et intuitive pour un mois donné
  • calculer le nombre de permanences à effectuer pour chaque famille en fonction de leur date d'entrée en crèche
  • donner un planning de permanences respectant toutes les contraintes, et autant de préférences que possible
  • détecter les conflits pouvant empêcher de trouver une solution, et proposer des plans d'action


L'interface graphique doit être simple et intuitive.

Références

Langage(s) et technologie(s):
Le langage de développement est laissé à l'appréciation du groupe d'étudiants.

Contrainte(s) :


Vidéo(s)

Sujet L2D - Application d’auto-apprentissage

Nom de l'encadrant: Jean-Guy Mailly
Mail de l'encadrant :

Catégorie(s): Site web

Contexte
À l’heure des MOOC, de la vulgarisation scientifique et culturelle sur Internet, et des diverses plateformes d’apprentissage en ligne, nombreux sont les gens qui souhaitent pouvoir s’instruire en dehors de l’école par des moyens simples. Le but de ce projet est de développer une application qui permet de le faire, via un système de QCM portant sur différents sujets, avec un niveau de difficulté croissant.

Fonctionnalités attendues : Le but du projet est de réaliser une application qui permet à ses utilisateurs d’apprendre de nouvelles connaissances sur le(s) sujet(s) de leur choix. Cette application peut être destinée à être utilisée via un navigateur web, une application de bureau ou une application pour smartphone/tablette (au choix de l’équipe de développement). L’interface pour un utilisateur classique doit lui permettre de gérer les thèmes qui l’intéressent, de répondre à des questions sur ces thèmes, et de proposer de nouvelles questions ou de nouveaux thèmes aux administrateurs. On peut intégrer un système d’objectifs/trophées pour les utilisateurs, afin de les motiver à utiliser l’application régulièrement, et mesurer leurs progrès. Les administrateurs de l’application disposent d’une interface particulière qui leur permet d’ajouter/retirer des questions ou des thèmes, et d’accepter ou refuser les questions et thèmes suggérés par les utilisateurs.

Langage(s) et technologie(s):

  • Au choix des étudiants, développement pour le web (HTML, CSS, PHP, Javascript), développement d’application stand-alone (Java, C++,…) ou d’application mobile (Android, iOS)
  • Il faudra également prévoir la gestion d’une base de données

Référence(s) :

  • Voir les applications d’apprentissage des langues étrangères (ex : Duolingo), ou les jeux de culture générale (ex : Trivia 360)

Mots-clés :

  • Apprentissage, Culture générale



Sujet L2E - Site de gestion de collections

Nom de l'encadrant: Jean-Guy Mailly
Mail de l'encadrant :

Catégorie(s): Site web

Présentation du sujet
Il arrive souvent lorsque l'on possède une importante collection de ne plus être sûr des objets que l'on a. De même dans ces cas là, on peut être amené à prêter des objets à un proche, et parfois ne plus savoir à qui on l'a prêté, ni quand. Le but de ce projet est de résoudre ces problèmes grâce à un site web qui permettra aux utilisateurs de gérer leurs collections : livres, films, jeux de plateau, jeux vidéos,… Les utilisateurs pourront alors entrer les données correspondant à leurs possessions (titre, auteur, année de sortie, date d'achat…), et à tout moment effectuer des recherches dans la liste de leurs possessions (et ainsi par exemple ils éviteront d'en acheter un deuxième exemplaire). Les utilisateurs pourront aussi garder une trace des objets qu'ils ont prêté à des amis.

Travail à réaliser :
On attend une application web ou mobile qui permettra à l’utilisateur d’ajouter des données concernant ses items (par exemple, livres, films, jeux de plateau, jeux vidéos, … On peut imaginer d’autres catégories). Il doit être possible de modifier les données d’un objet enregistré, ou de le supprimer de la liste, et d’indiquer qu’un objet a été prêté à un ami, en précisant les informations sur ce prêt (personne, date du prêt, …). Enfin, l’utilisateur doit pouvoir faire des requêtes sur sa liste d’objets (par exemple, afficher tous les films d’origine japonaise, possédés en Blu-Ray, et qui sont sortis entre 2009 et 2012).

Langage(s) et technologie(s):

  • Au choix de l’équipe de développement. Dans le cas d’un site web, il s’agit par exemple de HTML/CSS/PHP/Javascript. Il est également possible de travailler sous Android ou iOS.
  • Enfin, il faudra prévoir un moyen de stockage des données (base de données, XML,…)

Contrainte(s) :


Sujet L2F - Guichet automatique bancaire

Nom de l'encadrant: Dragutin Jastrebic
Mail de l'encadrant :

Catégorie(s): Application

Présentation du sujet
Le scénario: Un porteur met sa carte de crédit dans un GAB (guichet automatique bancaire). Le premier module envoie un message vers le module “central.”. Ce message contient des informations différentes, comme le numéro de la carte, la date de l'opération, le type de l'opération souhaitée par le porteur (le retrait d'espèces, le dépôt d'espèces, la consultation du solde, l'impression du solde etc.), le numéro du guichet etc. Pour des raisons de sécurité, ce message est crypté avec une signature. Aussi, le format du message dépend du constructeur du guichet – chaque constructeur peux avoir son propre format. Avant la réception du message par le module “central”, un deuxième module, le “driver”, le transforme en format interne du logiciel. Un troisième module, “le module de sécurité”, vérifie le code confidentiel et refuse la transaction si le code saisi sur le guichet ne correspond pas au code confidentiel du propriétaire de la carte bancaire. Il vérifie aussi la signature avec la même clé et refuse la transaction si la signature ne correspond pas. Un quatrième module, le module “central”, effectue l'opération souhaitée par le porteur de la carte (par exemple, il met à jour le solde de son compte en cas de retrait /dépôt, ou renvoie le solde au guichet en cas de consultation, renvoie les données contenues dans le RIB en cas de l'impression etc.). Le module “central” peut refuser d'effectuer l'opération si les droits du propriétaire sont insuffisants – en cas de dépassement du seuil quotidien ou hebdomadaire, par exemple. Un message est renvoyé au GAB pour l'informer du succès /échec du traitement. En fonction du message reçu, le GAB effectue l'opération demandée (distribue des billets par exemple), ou affiche le message de refus. Le GAB envoie aussi d'autres messages, appelés “les messages d'état” au module central. Les “messages d'états” typiques sont les suivants: tout est OK, le niveau de billets est bas, le niveau d'encre dans l'imprimante est bas, le niveau de papier est bas, la caméra est en panne etc. En fonction du message reçu, le module “central”, peut décider de faire une action corrective (remonter un avertissement à la supervision) ou d'éteindre le guichet.

Travail à effectuer
L'objectif de ce projet est de développer des modules qui simulent ce scénario. Il faudra créer aussi une interface pour accéder au compte bancaire, visualiser les opérations. Il peut s’agir d’une interface WEB ou Smartphone.

Langage(s) :

  • Java, HTML, Android

Contrainte(s) :


Sujet L2G - Introduction à la bioinformatique

Nom de l'encadrant: Dragutin Jastrebic / Koviljka Lukic Jastrebic
Mail de l'encadrant :

Catégorie(s): Application scientifique, application web

Présentation du sujet
La bioinformatique est une discipline d'analyse de l'information biologique contenue dans les séquences nucléotidiques (séquence de nucléotides) et protéiques (séquences d'acides aminés). Il s'agit d'une “interdiscipline”, à la frontière de la biologie, de l'informatique et des mathématiques. Les systèmes biologiques sont très complexes, leur bases et/ou banques de données sont volumineuses, et en plus les traitements des informations stockées nécessitent des algorithmes performants. Il s'agit en général des traitements qui ressemblent à un traitement traditionnel « data warehouse » (on traite en parallèle une masse de données sur une machine avec plusieurs processeurs) mais qui nécessitent un calcul plus complexe (pas seulement les simples minimums, maximums, moyennes comme dans le cas des « data warehouses » des systèmes de commerce par exemple).

En bioinformatique, les différents algorithmes (alignement et autres) sont utilisés dans le contexte de recherche de fonctions biologiques, de la phylogénie moléculaire, du séquençage de génome etc.

La bioinformatique propose des méthodes et des outils pour le recueil des données, leur traitement, leur distribution et leur visualisation.

Sur notre projet, nous allons travailler sur les parties traitement et visualisation des données

Langage(s) et technologie(s):

  • Java (pour les besoins de développement des traitements multitâche) et Java, Scheme, HTML pour la visualisation des donnéesJava (pour les besoins de développement des traitements multitâche) et Java/HTML/Java Script/Ajax pour la visualisation des données.

Contrainte(s) :


Sujet L2H - La plateforme de livres

Nom de l'encadrant: Dragutin Jastrebic / Koviljka Lukic Jastrebic
Mail de l'encadrant :

Catégorie(s): Site web

Présentation du sujet
La plateforme “Pulsar” est inspirée de la plateforme “Wattpad.” Elle permet la publication en ligne des livres des nouveaux auteurs. C’est un peu un réseau social aussi, qui lie les auteurs et les lecteurs. La plateforme fait le classement des livres, l’analyse des commentaires des lecteurs, certaines analyses des textes de livres aussi, et cela aide le comité de lecture de notre maison d’édition de faire le choix. Vous ne partez pas de zéro, une première version du logiciel existe, développée par un étudiant de Paris Descartes pendant de son stage dans la société « Editions Pulsar ».

Langage(s) et technologie(s):

  • HTML, JavaScript, CSS, PHP, MySQL, WAMP

Contrainte(s) :


Sujet L2I - Time Series Query Plan Description Language

Nom de l'encadrant: Themis Palpanas
Mail de l'encadrant :

Catégorie(s): Librairie

Présentation du sujet

Overview
In this project we are going to develop a time series query plan description language. We will define a set of operators that operate both over records of each data series, as well as ones that operate over complete series.

Time Series
Time series (a.k.a. data series or sequences) are sequences of recordings that are ordered over a dimension. When this dimension is time, we specifically talk about time series. Examples include: recordings of weather data as they fluctuate over time, engine monitoring and sensor values in industrial applications, etc.

Collections/Databases of Time Series
A collection or database of time series is a set of multiple distinct sequences which can be measured at different time intervals, capturing one or more variables and having varying lengths. An example is the set of opening and closing prices for all ticker symbols in a stock exchange. Each ticker symbol is a distinct data series, with opening and closing prices being the variables that are measured over time. Additionally, we can have non-time-varying attributes of each series. An example is the industry in which a symbol belongs. This doesn’t change with time, and still represents an attribute of the series.

Querying Databases of Time Series
In a previous project we developed a language specifically designed to query databases of time series. The query language is a variant of SQL where every reference to a column name can be accompanied by a range predicate and some constraints on its value. Such constraints can be added in both the where statement, as well as in the select statement. This language allows us to intuitively formulate queries that are very difficult to express in SQL. Some examples are the following:

  1. Bring all opening prices from the 1st of January 2018 to the 10th of January 2018 for series in industry: “Technology”.
  2. Bring all closing prices for the last 10 days, for all series for which 20 days ago we had a consistent opening value less than 10$ that lasted for 5 days.
  3. Bring all closing prices >12$ when the opening price was >10$ for all series that had an opening price drop, at least once, below 5$ last year.

Goal

The goal of this project will be to translate queries expressed in the time-series query language into a set of logical operators. These simple logical operators will represent primitive actions such as:

  • TimeVaryingRange: Scan time stamps in the table and find all locations of all points that are within a range of timestamps (e.g., today-10 to today) and are part of a specific subset of the data series.
  • VariableFilterGetLOCS: Filter a set of variables and provide the locations of the records for which a given variable is above a threshold.
  • VariableFilterGetSIDS: Filter a set of variables provide the time series id for the series that have records for which a specific variable crosses a limit at least once.
  • VariableFetch: Read the values of a given variable at a given set of locations.
  • Etc.

What you will learn
To parse query languages, translate queries to query execution plans, understand how columnar query processing algebra works, and if time permits implement basic versions of these operators for constructing an end to end data processing system.

Pré-requis:

  • experience with file and data structures, good programming skills in Python and C.

L'équipe:

  • Themis Palpanas is a professor of computer science at the Paris Descartes University, where he is co-director of diNo, the data management group. He received the MSc and PhD degrees from the University of Toronto, Canada. His team has developed world-wide expertise on data series management and analysis.
  • Michele Linardi is a PhD student at Paris Descartes University. He has expertise in all the technologies needed for this project.

Références :

Langage(s) et technologie(s) :

  • C/C++, SQL

Contrainte(s) :


Sujet L2J - Comparaison d’images à partir de motifs binaires locaux

Nom de l'encadrant: Laurent Wendling
Mail de l'encadrant :

Catégorie(s): Application scientifique, Initiation/Découverte

Contexte
Ce sujet concerne le domaine de la reconnaissance des formes. La croissance de l’Internet, l’évolution de technologies a entrainé la construction de bases d’images de plus en plus grandes (médicales, satellitaire, …). Il est important de se doter d’outils puissants et rapides pour pouvoir comparer et trouver des similitudes entre ces images pour mieux les étudier.

Objectifs
L’objectif est d’implémenter un algorithme de reconnaissance fondé sur les LPB (Local Binary Patterns) qui seront ici calculés sur une fenêtre centrée de taille 3×3 autour de chaque pixel) pour comparer des images à niveaux de gris et déterminer à quel degré elles se ressemblent.

  • La première partie du travail consistera à écrire le code permettant de lire et de sauvegarder une image à niveaux de gris.
  • La seconde étape sera de calculer le vecteur LBP (distribution sous forme d’histogramme de niveaux de gris) sur une image.
  • La troisième étape consistera à déterminer le degré de ressemblance entre deux images (en calculant la distance entre les deux distributions LBP).

Suivant l'état d'avancement, une étude sera réalisée sur des images en couleur ou sur l’extension de cette méthode pour classer une petite base d’images médicales en deux catégories.

Langage(s) et technologie(s):

  • Java ou C/C++

Référence(s) :

Mots-clés :

  • Traitement d’images, reconnaissance de formes

Contrainte(s) :


Sujet L2K - Recherche d’images par le contenu à partir de l’histogramme couleur

Nom de l'encadrant: Laurent Wendling
Mail de l'encadrant :

Catégorie(s): Application scientifique, Initiation/Découverte

Contexte :
Dans de nombreux domaines d’application en imagerie, les quantités d’images deviennent de plus en plus importantes, formant de véritables masses de données. Les systèmes de recherche d'images par le contenu (Content Based Image Retrieval ou CBIR) nécessitent l’utilisation de descripteurs de formes discriminants et rapides à calculer. L’idée est de présenter une image au système (par exemple une voiture) et de faire ressortir les images les plus proches dans la base.

Travail à réaliser :
Nous proposons, dans ce projet d’étudier et d’adapter, une approche simple et efficace de reconnaissance entre images fondée sur une représentation de l’histogramme couleur des images RGB. Les étapes à suivre sont les suivantes :

  • Lecture d’une image en couleur.
  • Calcul d’une nouvelle représentation fondée sur une représentation simplifiée de l’histogramme couleur de l’image.
  • Calcul de distance (comparaison de deux images à partir de leur histogramme) et test sur la base entière avec classement en fonction de la proximité par rapport à l’image requête.

Suivant l'état d'avancement, un test sur plusieurs bases d’images sera réalisé ainsi que l’impact de intégration d’autres caractéristiques (code fourni)

Langage(s) et technologie(s):
Java ou C/C++

Référence(s) :

Mots-clés :

  • Traitement d’images, reconnaissance de formes

Contrainte(s) :


Sujet L2L - Envoi automatisé de feuilles d’émargement

Nom de l'encadrant: Yannick Parchemal
Mail de l'encadrant :

Catégorie(s): Application de gestion

Présentation du sujet
L’objectif de ce projet est de transmettre à la demande des enseignants les feuilles d’émargements de leur groupe de cours ou de tds. L’enseignant se connecte à une page web en précisant son adresse mail et le code du module et il reçoit en retour les fichiers pdf et excel correspondant à ce module. Coté serveur, un fichier csv contient les inscriptions des étudiants aux différents groupes et c’est à partir de ce fichier que les fichiers pdf et excel sont générés avant transmission à l’enseignant. Les enseignants autorisés à recevoir ces informations sont enregistrés dans un fichier csv.

Documents fournis
Un fichier csv d’inscriptions pédagogiques

Références :

Langage(s) :

  • Java, Itext, CSV, Apache POI, javamail

Contrainte(s) :


Sujet L2M - Analyse de films

Nom de l'encadrant: Nicolas Denis
Mail de l'encadrant :

Catégorie(s): Site web

Contexte :
Le but de ce projet est réaliser une interface d'assistance à l'analyse de film. Il s'agit d'une reprise d’un sujet déjà traité l’année dernière pour corriger des anomalies et amélioration du site d’analyse de films : https://www.nicolas-denis.net/movies4u/M4Uci/

Objectifs

  1. Corrections de bugs pour prendre la main sur le framework et le site.
  2. Sécurisation (pour l’instant, accès par mot de passe uniquement).
  3. Améliorations :
    1. Améliorer la fluidité des interfaces
    2. Etablir des liens entre les analyses pour réaliser des travaux comparatifs
    3. Gérer du contenu : ajout image et vidéo.
    4. Etc.
    5. Et toute proposition sera bien vue.


Bibliographie :

Mots-clés:

  • cinéma, audiovisuel, analyse, film

Langage(s) et technologie(s) :

  • PHP, MySql, Webservices, JSON/REST, Codeigniter

Contrainte(s) :
Les rendez-vous auront lieu un soir de la semaine entre 17h30 et 20h15. Le site repose sur le framework Codeigniter : il faudra s’y adapter pour réaliser les évolutions.

Sujet L2N - Logiciel de gestion par les exigences

Nom de l'encadrant: Nicolas Denis
Mail de l'encadrant :

Catégorie(s): Site web

Contexte :
Réaliser une interface en PHP de gestion de projetsLe site devra :

  • Extraire des informations d’un document pdf (un cahier des charges en fait) pour alimenter une base de données.
  • Générer un cahier des charges normé et un plan de test à partir de la base de données.
  • Permettre l’enregistrement des résultats des tests et produire une note de qualité de projet.
  • Avoir les fonctions minimales d’un site pro : connexion/déconnexion de l’utilisateur

Le projet reposera donc beaucoup sur de l’intégration de librairies PHP toutes prêtes, pour le parsing (extraction des données) et la génération de PDF, dans une interface, de préférence réalisée avec l’aide d’un framework (choix libre : Symfony, Codeigniter, …).

Mots-clés:

  • Gestion des exigences, développement logiciel, PHP, PDF, parsing

Références:


Langage(s) et technologie(s) :

  • PHP, framework PHP, base mysql, parsing de fichier PDF avec PHP, génération de PDF avec PHP

Contrainte(s) :
Les rendez-vous auront lieu un soir de la semaine entre 17h30 et 20h15.

Sujet L2O - Simulateur de coût multi Cloud

Nom de l'encadrant: Nasime El Fartass
Mail de l'encadrant :

Catégorie(s): Site web

Contexte :
Une plateforme PaaS (Platform as a Service) est un environnement de développement et de déploiement complet d’application et de service dans le cloud. Les utilisateurs d’une plateforme Paas font l’acquisition des ressources nécessaires à l’application/service auprès d’un fournisseur de services Cloud, avec un paiement à l’utilisation. Ce paiement à l’utilisation varie en fonction de la plateforme PaaS et en fonction du fournisseur de services Cloud.

L’objectif de ce projet est de permettre à des utilisateurs de calculer le cout d’utilisation d’une plateforme PaaS Cloud Foundry sur les principaux cloud public AWS, GCP et Azure

Travail à réaliser :

L’objectif de ce projet est de permettre à des utilisateurs de simuler le cout d’utilisation de la plateforme PaaS Open source Cloud Foundry sur les fournisseurs de Cloud publics Amazon AWS, Google GCP et Microsoft Azure.

Le travail à réaliser consiste à développer :

  • une application web responsive pour la saisie des critères d’utilisation de la plateforme PaaS,
  • des micro services pour le calcul du coût et l’appel aux services des fournisseurs de Cloud publics

L’application web et les micro services seront développés en Java à l’aide de la plateforme PaaS open source Cloud Foundry.

Mots-clés:

  • Cloud Public, AWS, GCP, Azure, Micro services, REST, Java

Références:


Langage(s) et technologie(s) :

  • Architecture reactive, web design responsive, Java, API REST, micro services



Sujet L2P - Boite à rythmes

Encadrant : Hervé Suaudeau
Mail de l'encadrant :

Catégorie(s): Smartphone

Présentation du sujet
Une boîte à rythmes est un appareil électronique (ou un logiciel) qui simule des instruments de percussion. Elle permet de jouer à l'infini des rythmiques correspondant à des styles de musique pré-programmés (rock, salsa, …) ou de créer des rythmiques personnalisées.

Travail à effectuer :
L'objectif de ce projet est de réaliser une boite à rythme qui fonctionne sur un smartphone. Cette boite à rythme devra permettre :

  • la gestion des échantillons pré-enregistrés
  • la gestion des échantillons sonores enregistrés par l'utilisateur.
  • la génération de ses propres sons électroniques
  • l'enregistrement des morceaux composés

Éventuellement, on pourra améliorer l'expérience utilisateur en utilisant les capteurs du smartphone : gyroscope et accéléromètre.

Langage(s) et technologie(s):

  • Java/Android/XML

Contrainte(s) :


Sujet L2Q - Quarto

Encadrant : Hervé Suaudeau
Mail de l'encadrant :

Catégorie(s): Jeu vidéo

Présentation du sujet
Le quarto est un jeu de réflexion basé sur une grille carrée de 16 cases. Sur cette grille deux joueurs déposent des pièces tour à tour. Le but du jeu est d'aligner 4 pièces présentant les mêmes caractéristiques : blanches ou noires, grandes ou petites, rondes ou carrées, pleines ou creuses.

Travail à effectuer :
Le but du projet est d’implémenter un jeu de quarto. Le programme devra proposer les fonctionnalités suivantes :

  • Tout d’abord, le programme devra permettre à deux joueurs humains de s'affronter
  • Ensuite, le programme devra permettre de jouer contre l'ordinateur et de proposer des conseils
  • Enfin, le programme devra être capable de sauver et de charger une partie en cours

Langage(s) : C/C++ ou Java

Références

Langage

Contrainte(s) :


Sujet L2R - Développement d’un shooter sur mobile

Nom de l'encadrant: Frank Sauvage
Mail de l'encadrant :

Catégorie(s): Jeu Vidéo

Contexte cible :

Le monde du jeu vidéo a subi ces dernières années une mutation grâce aux mobiles. En élargissant la base d’utilisateurs potentiels ainsi que leurs profils, les mobiles ont permis au jeu vidéo d’atteindre une croissance extrêmement forte. Le mobile rend à la fois accessible les jeux au plus grand nombre en permettant de jouer partout mais surtout pour de courtes périodes de temps. L’une des techniques les plus plébiscitées dans le monde du jeu mobile est de proposer des types de jeux dit classiques que l’on retrouvait sur les consoles des années 80/90.

Le shoot them up est l’un de ces style retro qui plait aujourd’hui et qui peut facilement être adapté à l’univers mobile en permettant des parties rapides. Le principe de base est de diriger un personnage ou un véhicule dans un univers 2D afin de détruire le plus de cibles possibles. Au fur et à mesure de l’exploration, la force du joueur augmente et doit esquiver des ennemis de plus en plus forts et rapides pour rester en vie. Space invaders est probablement le plus vieux et le plus connu des shooter.

Contexte technique :
Alors que longtemps Apple a volontairement ignoré les jeux, la société fournie depuis l’explosion de ce marché de nombreux kits de développements. Les technologies qui jadis furent complexes d’accès deviennent de plus en plus accessibles tout en offrant à la fois performance et richesse. SpriteKit, GameKit et GameplayKit proposent les bases techniques permettant le développement rapide de jeux totalement viables.

Objectifs :
Ce projet se consacrera principalement sur la création d’un shooter 2D grâce au Framework SpriteKit. Le ‘Game Design’, qui inclut l’univers graphique, historique et les règles du jeu, reste libre et sera défini par le groupe avec l’aide de l’encadrant. En adoptant une méthode de travail de type Agile, le groupe pourra enrichir le jeu et s’initier aux techniques avancées telles que les Shaders OpenGL pour de meilleurs effets graphiques, du multijoueur et des systèmes d’IA Simples (Agents Behavior, PathFindings, etc..).

Langage(s) et technologie(s):

  • Swift est le dernier langage conçu par Apple pour l’ensemble de ses produits afin de remplacer Objective-C vieux de 20 ans.

Mots-clés :

  • IOS, SpriteKit, OpenGL, Shaders

Référence(s) :

Contrainte(s) :

  • Avoir accès à un Mac et à un appareil IOS (Ipod, IPhone ou Ipad)

Remarque :
Le jeu pourra s’il correspond aux critères de qualités minimum être publié sur l’App Store.



Sujet L2S - Plateforme de jeux de logique en ligne

Nom de l'encadrant: Ramy Temim
Mail de l'encadrant :

Catégorie(s): Site web, Jeux vidéos, Intelligence artificielle

Présentation du sujet

Créer un site web qui permet de jouer a des jeux de logique en ligne (sudoku/dame…) Le site web devra respecter des principes d’architectures logiciels modernes (REST, Stateless) et devra permettre d’avoir la solution du jeu (Algorithme d’Intelligence Artificielle)

Objectifs : L’objectif est d'utiliser des technologies/framework modernes en vogue dans le monde du développement d’application web. Mais d'utiliser les outils et procédés utilisé dans le monde de l’entreprise (startup et grand groupe).

  • Utiliser GIT (Github) et le principe de Pull Request (outils de versionning de code)
  • Faire une application REST.
  • Application web en angular
  • Application back-end en springboot
  • Tests unitaires avec Junit
  • Évaluation de la qualité du code avec sonar

Langage(s) et technologie(s):
Angular(version 4), TypeScript, HTML/CSS, Java, SpringBoot, Junit, Git, Github

Référence(s) :

  • Google : Application REST, GIT, MVC, Angular, SpringBoot

Contrainte(s) :


Sujet L2T - Agenda en ligne

Nom de l'encadrant: Maniel Ristiguian
Mail de l'encadrant :

Catégorie(s): Site web

Présentation du sujet
Le but de ce projet est de créer un agenda en ligne. Cet agenda devra permettre à une personne d’accéder à son agenda en ligne et d’y pouvoir noter des rendez-vous par exemple, d’en supprimer, d’en décaler…. Il pourra aussi être utilisé par d’autres personnes pour qu’ils puissent prendre rendez-vous lors de créneaux ouvert à la prise de rdv sur internet.

Travail à effectuer
Lors de ce projet vous aurez plusieurs tâches à accomplir :

  • Créer un agenda en ligne
  • Permettre la création/suppression… de rendez-vous
  • Possibilité de prise de rendez-vous par d’autres internautes
  • Optionnel / Bonus : mails de rappels 24h avant le rdv, confirmations de prise et d’annulation de rendez vous

Langage(s) :

  • Nodejs, framework Express, MongoDB ou SQL, MVC, SOA

Contrainte(s) :


Sujet L2U - Jeu d'échecs

Nom de l'encadrant:
Mail de l'encadrant :

Catégorie(s): Jeu vidéo, application web

Présentation du sujet
Le jeu d’échecs est un jeu de réflexion qui se joue à 2 sur un échiquier composé de soixante-quatre cases noires et blanches. Chaque joueur tente d’infliger un échec et mat au roi adverse. Pour ce faire chaque joueur utilisent leurs pièces tour à tour, qui ont chacune des déplacements spécifiques. Un roi est échec et mat quand il est menacé et qu’il ne peut plus s’enfuir ou être protégé par d’autres pièces.

Travail à effectuer
Ce projet a pour but de créer un jeu d’échecs sous forme de web service. Le but étant de créer une application web conforme à l'architecture REpresentational State Transfer (REST), une architecture orientée services (SOA) avec le patron de conception modèle-vue-contrôleur (MVC).

chess.jpg

Lors de ce projet vous aurez plusieurs tâches à accomplir :

  • Le programme devra tout d’abord permettre à joueurs humains de pouvoir jouer l’un contre l’autre.
  • Ensuite chaque partie pourra être sauvegardé et chargé. Une partie achevée pourra être conservée et pourra être rejouée coup par coup.
  • Plusieurs fonctionnalités comme le temps, la demande à l’adversaire de rejouer un coup etc… devront être implémentées
  • Optionnel / Bonus : création d’une IA pour jouer contre l’ordinateur

Langage(s) :

  • Nodejs, framework Express/Socket.IO, MongoDB ou SQL

Contrainte(s) :


Sujet L2V - Galaxy Fighters

Encadrant : Fouad Miloudi
Mail de l'encadrant :

Catégorie(s): Jeu Vidéo

Présentation du sujet
Dans Galaxy fighters, le joueur est au commande d'un vaisseau spatial devant traverser un champ d'astéroïdes. Pour en sortir indemne, il devra faire preuve de dextérité. Au bout du champ de mines, une piste d'atterrissage apparaitra sur les flancs d'un énorme astéroïde; l'atteindre sans encombres permettra de compléter sa mission avec succès.

Travail à effectuer

  • Reproduire la traversée du champ d'astéroïdes
  • Permettre le pilotage du vaisseau
  • Gérer la vitesse de défilement en fonction du niveau
  • Sauvegarder les meilleurs scores

Pour améliorer la jouabilité et l'intérêt du jeu, il faudra également développer un système de bonus cachés dans le champ d'astéroïde:

  • bouclier
  • vie supplémentaire
  • etc…

Eventuellement, permettre un mode multi-joueurs.

Au choix: smartphone ou web

Références
Sinuous, un jeu dans le même esprit.

Langage(s) et technologie(s) :
HTML5, Canvas ou Java/Android

Contrainte(s) :


Sujet L2W - Tetris

Nom de l'encadrant:
Mail de l'encadrant :

Catégorie(s): Jeu vidéo

i.livescience.com_images_i_7197_original_090107-tetris-02.jpg

Présentation du sujet
Le tetris est un jeu d'arcade qui allie réflexes et réflexion. Des tetriminos de couleurs et de formes différentes descendent du haut de l'écran. Leur chute est inexorable mais peut être accélérer par le joueur. Le joueur peut également décider de l'angle de rotation et de la position où l'objet peut atterrir. Lorsqu'une ligne horizontale est complétée, elle disparaît et les blocs qui se trouvent au dessus tombent. La partie se termine lorsque la ligne du haut est atteinte et que le joueur ne peut plus agir. L(objectif du heur est donc de compléter un maximum de lignes.

Travail à effectuer
Le but du projet est d’implémenter un jeu de tetris. Le programme devra proposer les fonctionnalités suivantes :

  • Tout d’abord, le programme devra permettre de jouer une partie.
  • Il devra également permettre une sauvegarde des parties et inclure des tetriminos bonus.
  • Le jeu peut être programmé sur la plateforme de votre choix : ordinateur ou smartphone

Langage(s) :

Contrainte(s) :


Sujet L2X - Photo Deluxe

Encadrant : Valere Pique
Mail de l'encadrant :

Catégorie(s): smartphone

Description : Vous réaliserez une application mobile qui permette de :

  • prendre des photos
  • de filter les photos (plusieurs filtres à implémenter)
  • d'ajouter des emojis et des stickers sur des photos
  • d'envoyer les photos à ses amis

S'il reste du temps à la fin du projet, on appliquera les filtres au mode vidéo.

Langage souhaité :

  • Java/Android ou React Native

Contrainte :
Posséder un smartphone


Sujet L2Y - Jeu de Poker Texas Holdem

Nom de l'encadrant: Olivier Vallet
Mail de l'encadrant :

Catégorie(s): Jeu vidéo

Présentation du sujet
Le poker est une famille de jeux de cartes comprenant de nombreuses formules et variantes. Il se pratique à plusieurs joueurs avec un jeu généralement de cinquante-deux cartes et des jetons représentant les sommes misées. Les séquences de jeu alternent distribution de cartes et tours d'enchères. Le but du jeu est de remporter les jetons des adversaires en constituant la meilleure combinaison de cinq cartes ou en leur faisant abandonner le coup. Dans ce projet nous nous intéresserons uniquement à la variante la plus populaire actuellement: le No Limit Texas Hold'em dans son format Heads Up (1 contre 1).

Travail à effectuer
Le but du projet est d’implémenter un jeu de No Limit Texas Hold'em dans lequel le joueur affronte l'ordinateur. Le programme devra proposer les fonctionnalités suivantes :

  • Le programme devra gérer automatiquement toutes le règles du jeu et les tours d'enchères.
  • Il faudra développer l'intelligence artificielle qui affrontera le joueur.
  • L'environnement du jeu devra être entièrement paramétrable et les parties jouées devront être sauvegardées.

Langage(s) et technologie(s):
Au choix: Java ou C
Interface graphique, Intelligence artificielle

Contrainte(s) :


Sujet L2Z - Oenologik

Encadrant :
Mail de l'encadrant :

Catégorie(s): Smartphone

Présentation du sujet
L’oenologie est la science qui a pour objet l'étude et la connaissance du vin (Wikipédia). La France est le principal producteur de vins au monde et cette application vise à mettre en valeur les différents aspects de la production française.

image.freepik.com_vecteurs-libre_vecteur-verre-de-vin_644420.jpg

Travail à effectuer :
L'objectif de ce projet est de réaliser une application qui fonctionne sur un smartphone. Elle devra permettre :

  • de recenser et d'explorer les terroirs
  • d'informer sur les différents cépages et la vinification
  • présenter les caractéristiques de différents vins
  • proposer des conseils pour sa manipulation et sa dégustation
  • proposer des conseils pour marier vins et mets
  • proposer un aide-mémoire pour les AOC, les meilleurs vins et les meilleures années

Références

Langage(s) et technologie(s) : Java/Android/XML ou React Native/Javascript

Contrainte(s) :
Posséder un smartphone sous iOS (avec une licence développeur) ou sous Android

Sujet L2AA - Kakuro

Nom de l'encadrant: Lova Rakotozafy
Mail de l'encadrant :

Catégorie(s): Jeu vidéo

Présentation du sujet
Le kakuro est un jeu de réflexion. Ce jeu est basé sur une grille analogue à une grille de mots fléchés; il comporte des cases noires et des cases blanches. Le but du jeu est de remplir les cases blanches avec des chiffres de 1 à 9 en fonction des indications contenues dans les cases noires. Les cases noires sont divisées en deux par une diagonale et contiennent deux valeurs numériques. La première valeur concerne les cases blanches situées en dessous, la seconde valeur concerne les cases blanches situées à droite. Pour pouvoir remplir les cases blanches, il faut s’assurer que la somme de tous les chiffres d’une ligne ou d’une colonne soit égale au nombre indiqué dans la case noire correspondante, et qu’un chiffre n’apparaisse qu’une seule fois.

Travail à effectuer
Le but du projet est d’implémenter un jeu de kakuro. Le programme devra proposer les fonctionnalités suivantes :

  • Tout d’abord, le programme devra permettre la création automatique d’une grille de jeu en fonction d’un niveau de difficulté déterminé par le joueur.
  • Ensuite, le programme devra permettre de jouer une grille proposée par le programme ou une grille saisie par l’utilisateur.
  • Le programme devra être capable de calculer la solution d’une grille
  • Enfin, le programme devra être capable de sauver, charger et imprimer une grille

Langage souhaité :
A déterminer

Contrainte(s) :


Sujet L2AB - Jeu des 1000 bornes

Encadrant :
Mail de l'encadrant :

Catégorie(s): Jeu vidéo

Présentation du sujet
Il vous est proposé dans ce projet de concevoir et développer une version électronique du jeu de carte « 1000 bornes ».

Les 1000 bornes est un jeu de société utilisant des cartes spéciales sur le thème de la course automobile. Le but du jeu est d’être le premier joueur à effectuer 1000 kilomètres (ou bornes) précisément. Pour cela, il vous faudra éviter les pièges de la route : Panne de voiture, feux de signalisation et limitation de vitesses.
Pour commencer une partie, chaque joueur se voir distribuer 6 cartes qu’il ne doit pas montrer aux autres. Le reste du paquet servira de pioche. Pour commencer la partie, le premier joueur doit piocher une carte. S’il a en sa possession un feu vert, il pose cette carte devant lui et peut donc commencer sa partie. Le joueur peut aussi poser une carte « Botte » ou encore une carte « Limitation de vitesse » devant l’un de ces adversaires. Si le joueur ne peut ou ne désire pas poser une carte, il doit obligatoirement en jeter une afin d’avoir toujours 6 carte dans sa main.
C’est ensuite au tour du joueur suivant de jouer. Lui aussi a alors plusieurs possibilités. En plus de celles énumérés ci-dessus, il peut contrer une attaque en posant dessus le contraire de celle-ci pour l’annuler. Exemple : Il pose une carte « fin de limitation de vitesse » sur une carte « Limitation de vitesse ».
Autre choix : le joueur peut également attaquer le joueur qui à poser un feu vert en posant une carte feu rouge.
Le gagnant de la partie est celui qui a réussi à avoir posé exactement 1000 kilomètres devant lui à l’aide des cartes « distance ».

L’application devra permettre de jouer de 2 à 6 joueurs qui seront soit des personnes physiques soit des joueurs virtuels. Dans le cas d’un joueur virtuel, le jeu devra lui attribuer une stratégie de jeu comme par exemple : poser ses kilomètres en premier lieu, attaqué l’adversaire avant tout, …

Langage(s) :
C/C++ ou Java

Contrainte(s) :


Sujet L2AC - Kakuro

Nom de l'encadrant:
Mail de l'encadrant :

Catégorie(s): Jeu vidéo

Présentation du sujet
Le kakuro est un jeu de réflexion. Ce jeu est basé sur une grille analogue à une grille de mots fléchés; il comporte des cases noires et des cases blanches. Le but du jeu est de remplir les cases blanches avec des chiffres de 1 à 9 en fonction des indications contenues dans les cases noires. Les cases noires sont divisées en deux par une diagonale et contiennent deux valeurs numériques. La première valeur concerne les cases blanches situées en dessous, la seconde valeur concerne les cases blanches situées à droite. Pour pouvoir remplir les cases blanches, il faut s’assurer que la somme de tous les chiffres d’une ligne ou d’une colonne soit égale au nombre indiqué dans la case noire correspondante, et qu’un chiffre n’apparaisse qu’une seule fois.

Travail à effectuer
Le but du projet est d’implémenter un jeu de kakuro. Le programme devra proposer les fonctionnalités suivantes :

  • Tout d’abord, le programme devra permettre la création automatique d’une grille de jeu en fonction d’un niveau de difficulté déterminé par le joueur.
  • Ensuite, le programme devra permettre de jouer une grille proposée par le programme ou une grille saisie par l’utilisateur.
  • Le programme devra être capable de calculer la solution d’une grille
  • Enfin, le programme devra être capable de sauver, charger et imprimer une grille

Langage souhaité :
A déterminer

Contrainte(s) :


Sujet L2AD - Accidentologie

Nom de l'encadrant: Lova Rakotozafy
Mail de l'encadrant :

Catégorie(s): site web

Présentation du sujet
Chaque année il y a de nombreux accidents sur la route. Les données qui recensent tous les accidents (date, lieu, conditions météorologiques, …) sont disponibles en open-data.

Travail à effectuer

Le but du projet est de réaliser un site web qui permet de :

  • présenter tous les accidents sur une carte de France en fonction :
    • de la date
    • d'un intervalle de dates
    • des conditions météorologiques
  • calculer et présenter des statistiques relatives aux accidents
  • identifier les zones dans lesquelles il y a plus d'accidents

Langage souhaité :

Contrainte(s) :


Sujet L2AE - Morphing

Nom de l'encadrant: Achour Marwen
Mail de l'encadrant :

Catégorie(s): smartphone

Présentation du sujet
Le morphing d'images est un effet spécial souvent utilisé dans le cinéma qui consiste à passer d'une image à une autre en réalisant une animation. Pour qu'elle paraisse naturelle, la transformation s'appuie sur des zones de l'image (des points, des vecteurs voire des figures) pour lesquelles l'utilisateur indique une correspondance entre l'image source et l'image cible. On calcule alors les images intermédiaires pour réaliser l'animation par une interpolation des zones correspondantes entre les deux images.

Travail à effectuer

Le but du projet est de réaliser une application mobile qui permette de :

  • prendre ou de choisir des photos
  • définir des points de référence entre les deux images
  • calculer l'animation correspondante
  • sauvegarder l'animation dans un format vidéo ou au format gif

Langage souhaité :

Référence(s) :

Contrainte(s) :


Sujet L2AF - Webmon

Nom de l'encadrant: Olivier Vallet
Mail de l'encadrant :

Catégorie(s): application

Présentation du sujet
Les internautes fréquentent souvent les mêmes sites internet pourtant tous ne sont pas mis à jour à la même fréquence. Par exemple, certains blogs ou pages personnelles ne sont mis à jour que quelques fois par mois. Pour éviter aux internautes de perdre leur temps à vérifier si leurs sites préférés ont été mis à jour, on souhaite avoir une application pour monitorer différentes pages web.

Travail à effectuer

Le but du projet est de réaliser une application qui permette de :

  • récupérer une page web
  • comparer deux pages web provenant de la même adresse pour déterminer si la page a été mise à jour
  • notifier l'utilisateur lorsqu'une page a été mise à jour et lui permettre d'y accéder directement
  • gérer les sites préférés de l'utilisateur
  • supprimer les modifications liées aux publicités et aux trackers.

Langage souhaité :

Référence(s) :

Contrainte(s) :


Sujet L2AG - Tableaux caloriques des produits alimentaires

Nom de l'encadrant: Lova Rakotozafy
Mail de l'encadrant :

Catégorie(s): Smartphone

Présentation du sujet
Les données nutritionnelles sont souvent écrites en petit sur les emballages et il n'est pas toujours évident de bien les comprendre. L'objectif de ce projet est de développer une application mobile pour faciliter le compréhension des informations nutritionnelles et pour faciliter l'analyse de sa consommation quotidienne.

Travail à effectuer : Le but du projet est d’implémenter une application smartphone qui à partir du code barre, récupère les informations nutritionnelles du produit dans les bases de données publiques. Cette application synthétise un diagramme en une bande de plusieurs couleurs (rouge pour le gras, vert pour les fibres etc…) proportionnelles à la quantité. L'idée est de permettre à l'utilisateur d'avoir une idée de la qualité nutritionnelle du produit en un seul coup d'oeil.

Le programme devra proposer les fonctionnalités suivantes :

  • capturer une code barre d'un produit
  • consulter les bases de données publiques
  • afficher le diagramme de plusieurs couleurs
  • faire la somme des aliments consommés en : une journée, une semaine, un mois

Langage(s) :

  • Java/Android/XML ou React Native

Contrainte(s) :


Sujet L2AH - Angry Pigs

Encadrant : Amine Baiche
Mail de l'encadrant :

Catégorie(s): Jeu Vidéo

Présentation du sujet
Dans cet opus les cochons prennent leur revanche sur les oiseaux.

Travail à effectuer

  • Créer plusieurs niveaux
  • Permettre le tir de projectiles
  • Gérer la physique de l'environnement
  • Sauvegarder les meilleurs scores

Pour améliorer la jouabilité et l'intérêt du jeu, il faudra également développer un système de bonus cachés :

  • bombe
  • vie supplémentaire
  • etc…

Eventuellement, permettre un mode multi-joueurs.

Au choix: smartphone ou web

Références
[ Langage(s) et technologie(s) :
A déterminer

Contrainte(s) :


Sujet L2AI - Puzzle Mania

Encadrant :
Mail de l'encadrant :

Catégorie(s): Jeu Vidéo

Présentation du sujet
L'objectif de ce projet est de développer une application qui permet de reconstituer des puzzles à partir d'un ensemble de pièces mélangées.

Travail à effectuer

  • Créer plusieurs puzzles
  • Créer plusieurs niveaux de difficultés
  • Permettre à l'utilisateur d'importer ses propres images et d'importer des images depuis internet.
  • Avoir un mode chronométré

Pour améliorer la jouabilité et l'intérêt du jeu, on pourra éventuellement permettre un mode multi-joueurs.

Au choix: smartphone ou web

Références
[ Langage(s) et technologie(s) :
A déterminer

Contrainte(s) :


Sujet L2AJ - Casse-brique

Encadrant :
Mail de l'encadrant :

Catégorie(s): Jeu Vidéo

Présentation du sujet
Le casse brique est un classique des salles d'arcade. L'objectif de ce projet est de développer votre propre casse brique.

Travail à effectuer

  • Créer plusieurs niveaux
  • Créer plusieurs niveaux de difficultés
  • Ajouter un système de bonus
  • Avoir un mode chronométré

Pour améliorer la jouabilité et l'intérêt du jeu, on pourra éventuellement permettre un mode multi-joueurs.

Au choix: smartphone ou web

Références
[ Langage(s) et technologie(s) :
A déterminer

Contrainte(s) :


Sujet L2AK - Gestion des morgues des hôpitaux en Afrique francophone

Nom de l'encadrant: Philippe Mfomou
Mail de l'encadrant :

Catégorie(s): Application de gestion

Présentation du sujet
Il s’agit de concevoir et réaliser une plateforme permettant une gestion transparente des morgues.

Langage(s) et technologie(s) :
à définir

Remarque(s) :



projets/licence2/2018-2019.txt · Dernière modification : 2023/12/15 16:57 de David Janiszek

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki