Nom de l encadrant : Denis Nicolas
Mail de l'encadrant :
Catégorie(s): app. gestion, framework/librairie, site web
Contexte
Ce projet a pour but de créer un site qui aidera les personnes confrontées au décès d'un proche, à connaître les organismes auxquelles elles doivent s'adresser.
Objectifs :
Le site accueillera deux types d'utilisateurs :
1er type d'utilisateur : le prévoyant L'utilisateur du site peut s'y enregistrer pour préparer les formalités qui suivront son décès en déposant des informations personnelles. Toutes les données devront être cryptées / décryptées. L'utilisateur définit qui peut accéder à ses données (ses « proches »). Pour chacun, un nom d'utilisateur et un mot de passe sont attribués et transmis par mail.
2nd type d'utilisateur : le proche Avec son compte, le proche accède aux données du défunt. Il peut enregistrer le décès du défunt. Passée cette étape, et sous un certain délai, il pourra accéder aux données déposées par le prévoyant.
Attention particulière à la protection des données personnelles !
Usage d'un framework PHP vivement conseillé !
Références bibliographiques
n/a
Technologies
PHP, MySql
Contraintes:
Les rendez-vous auront lieu un soir en semaine entre 17h30 et 20h30.
Mots-clés
Données personnelles, décès, succession, site web
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Positionnement
Activité principale : Programmation
Niveau d'abstraction : Pratique
Difficulté des algorithmes : Avancé
Interactions logicielles : Simple
Documentation
Spécifications fonctionnelles : Non
Technologies documentées : Non
Nom de l encadrant : Denis Nicolas
Mail de l'encadrant :
Catégorie(s): framework/librairie, site web
Contexte
Créer un site web permettant de créer des réseaux sociaux de taille volontairement réduite
Objectifs :
Les réseaux sociaux actuels favorisent la possibilité de communiquer avec le plus grand nombre de personnes possibles. Cela a peu de sens pour entretenir des relations de qualité (cf. travaux sur le nombre de Dunbar).
Ce sujet propose donc la création de réseaux sociaux au nombre limité de participants.
Par ailleurs, une autre dérive des réseaux sociaux actuels est qu’ils mettent en relations des personnes ayant souvent les mêmes centre d’intérêt et les mêmes avis. Dans le cadre de notre projet, l'utilisateur ne pourra filtrer les membres de son réseau.
Fonctionnalités : Un utilisateur s’inscrit et déclare vouloir créer un groupe, de 20, 50 ou 100 personnes. Il peut limiter l’accès selon l’âge ou la proximité géographique. D’autres utilisateurs peuvent d’inscrire, jusqu’à ce que ce groupe soit rempli. Le rythme des publications et des réponse est également limité. Un membre peut décider de « sortir » du groupe. Si une majorité des 2/3 le décide, le groupe peut être dissous. etc.
Usage d'un framework PHP vivement conseillé !
Références bibliographiques
Nombre de Dunbar, réseau social Minus
Technologies
PHP; javascript; MySQL
Contraintes:
Rendez-vous un soir en semaine, entre 17h30 et 20h30.
Mots-clés
réseau social; web
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Positionnement
Activité principale : Programmation
Niveau d'abstraction : Pratique
Difficulté des algorithmes : Avancé
Interactions logicielles : Simple
Documentation
Spécifications fonctionnelles : Non
Technologies documentées : Non
Nom de l encadrant : Alaa Dandan
Mail de l'encadrant :
Catégorie(s): app. gestion
Contexte
Dans le monde actuel, les données sont au centre des préoccupations.
Certaines entreprises et certains individus ont pour but de protéger leur données en les internalisants sur des serveurs privés.
Objectifs :
Le but de ce projet est de créer un gestionnaire de tâches complet permettant de s'organiser facilement, d'avoir des notifications mobiles (android ou IOS), de recevoir des mails en fonction de l'importance des tâches.
Simplicité et modularité sont demandées, vous devez donc faire preuve d'initiative.
Il est également demandé dans le projet d'utiliser les méthodes d'intégration continue en utilisant des outils comme Jenkins, svn, graphana, et de s'interroger sur la sécurité des serveurs de tests et de déploiements.
Technologies imposées
- Développement en micro-service java
- Front-end libre
- BDD postgresql
- Devops Jenkins + dépot SVN
- Metrics des serveurs
Références bibliographiques
n/a
Technologies
api java devops
Contraintes:
Encadrement après 18h et le samedi
Mots-clés
java api
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Positionnement
Activité principale : Intégration
Niveau d'abstraction : Pratique
Difficulté des algorithmes : Élémentaire
Interactions logicielles : Simple
Documentation
Spécifications fonctionnelles : Non
Technologies documentées : Non
Nom de l encadrant : Trollet Antoine
Mail de l'encadrant :
Catégorie(s): jeu vidéo
Contexte
L'intelligence artificielle couvre de nombreux domaines et les portes d'entrées sont nombreuses. Venez découvrir une de ses portes à travers la réalisation d'un programme autonome apprenant de ses erreurs en jouant à un jeu vidéo (en l'occurrence super mario bros)
Objectifs :
- Comprendre le fonctionnement de l'émulation des jeux vidéos et des interactions automatisées possible avec ces derniers
- Découvrir le fonctionnement d'un réseau de neurones et d'un algorithme à sélection naturelle à travers un projet ludique
- Entrainer son réseau de neurones pour le rendre de plus en plus performant à chaque itération.
- Rendre l'IA capable de finir au moins un niveau
Références bibliographiques
n/a
Technologies
python
Contraintes:
LEs rendez-vous auront lieu après 18h
Mots-clés
IA, jeux vidéo, réseau de neuronnes, algorithme génétique
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Positionnement
Activité principale : Programmation
Niveau d'abstraction : Pratique
Difficulté des algorithmes : Avancé
Interactions logicielles : Simple
Documentation
Spécifications fonctionnelles : Non
Technologies documentées : Oui
Nom de l encadrant : Jastrebic Dragutin
Mail de l'encadrant :
Catégorie(s): app. autonome
Contexte
Le scénario: Le client de la banque 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 client (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, 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 troisième module, le module central, effectue l'opération souhaitée par le client (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, 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.
Notre but est de développer des modules qui simulent ce scénario. Les outils développement seront Java, Android, Objective C/ Ios selon le choix des étudiants.
Objectifs :
Développement d'un prototype
Références bibliographiques
n/a
Technologies
n/a
Contraintes:
Les réunions auront lieu après 18H
Mots-clés
n/a
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Positionnement
Activité principale : Programmation
Niveau d'abstraction : Pratique
Difficulté des algorithmes : Élémentaire
Interactions logicielles : Simple
Documentation
Spécifications fonctionnelles : Non
Technologies documentées : Non
Nom de l encadrant : Jastrebic Dragutin et Koviljka
Mail de l'encadrant :
Catégorie(s): app. scientifique
Contexte
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.
Outils de développement: Java (pour les besoins de développement des traitements multitâche) et Java/HTML/Java Script/Ajax pour la visualisation des données.
Algorithmes : Smith & Watterman, Needleman & Wunsch, Réseaux Bayésiens
Objectifs :
Développement d'un prototype
Références bibliographiques
n/a
Technologies
Java,HTML/JavaScript
Contraintes:
Les réunions auront lieu après 18h
Mots-clés
Séquences bologiques
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Positionnement
Activité principale : Programmation
Niveau d'abstraction : Pratique
Difficulté des algorithmes : Élémentaire
Interactions logicielles : Simple
Documentation
Spécifications fonctionnelles : Non
Technologies documentées : Non
Nom de l encadrant : Selçuk Mete
Mail de l'encadrant :
Catégorie(s): site web
Contexte
Cette application web permettra dans un premier de visualiser, pour la ville de paris, les différentes stations avec le nombre de vélib disponible et dans un second de temps pouvoir lancer une recherche de disponibilité de vélib le plus proche à partir d'une adresse.
Il y aura donc une carte sur laquelle il faudra représenter ces données qui viennent directement de l'api public de vélib.
Objectifs :
Le but de ce module est d'apprendre à utiliser les outils tels qu'on les utilise dans le monde professionnel ainsi que certaines bonnes pratiques. L'intégration d'une API est une tâche très courante dans le monde du web et vous exploiterez celui de Vélib.
Cela peut être un vrai plus sur votre CV et durant vos entretiens technique quand vous chercherez des stages / alternances / emplois.
Par contre, vous allez vite vous rendre compte qu'il y a beaucoup de choses à apprendre quand on part de zéro sur le web et dans le monde du développement web. Donc soyez prévenu, même pour des L2, il y a aura un travail conséquent de recherche et d'apprentissage.
Les objectifs de ce projet:
Références bibliographiques
Si vous ne deviez en lire qu'un cette année:
Ça vous sera utile peu importe le langage, et peu importe le métier vers lequel vous vous tournerez en informatique.
Technologies
nodejs, react, vélib, github
Contraintes:
Mots-clés
n/a
Remarques
Possibilité de stage à l’issue du projet: Oui
Poursuite d’un projet déjà existant: Non
Je serai accessible facilement via un groupe whatsapp pour faciliter la communication et afin de répondre au mieux à vos questions.
Relisez bien l'objectif du module plus haut concernant la quantité de chose à apprendre.
A part nodejs, react, vélib et github, vous pourrez envisager plusieurs solutions pour accomplir vos objectifs.
Positionnement
Activité principale : Programmation
Niveau d'abstraction : Pratique
Difficulté des algorithmes : Élémentaire
Interactions logicielles : Complexe
Documentation
Spécifications fonctionnelles : Non
Technologies documentées : Oui
Nom de l encadrant : TEMIM Ramy
Mail de l'encadrant :
Catégorie(s): app. autonome, découverte/initiation, framework/librairie, intelligence artificielle, open-source, smartphone, veille technologique, web-service
Contexte
Quand on fait des séances d’entraînements réguliers il est utile d’avoir une séance de type “évaluation ” pour mesurer ses progrès. Exemple :
- Un 100m en course ou en natation
- Un Maxi en musculation.
Mais il peut s’agir d’une séance plus complexe : - VMA en course - Pan gulliche en escalade etc…
Cependant le suivie de ses séance se fait souvent de manière artisanale via une note sur son smartphone, un google sheet ou même un cahier. Ce qui en soit fonctionne très bien mais avoir un suivie sur une période donnée (1 mois, 1 année,…) est parfois difficile à représenter visuellement.
De plus quand on est amateur et qu’on est pas suivi par un préparateur sportifs on peut parfois avoir envie de changer les séances pour les rendres plus ludique et manquer d'inspiration.
La mesure de ses séances est tout un problème auquel certaines grandes marque (Apple, Samsung, Garmin, coros…) essaye d’y répondre avec les montres connectés. L’Apple Watch et les montres Garmin en sont un exemple. Et certaines d’entres elles propose même une plateforme pour suivre ses activités. Mais elle reste peu paramètrable.
Objectifs :
L’objectif est de proposer une plateforme web qui permet à un.e sporti.f.ve de s’inscrire et d’entrée ses séances, les caractéristiques que le/la sporti.f.ve veux suivre et de lui proposer différente manière de représenter son suivie (tableau, spiderGraph etc…) voir même de lui proposer des séances.
Ce premier objectif vise à initier les étudiant.s.es au développement web en se concentrant sur la partie visible, un travail d’UI/UX est à prévoir notamment pour le responsive (le fait qu'un site web soit compatible mobile).(techno: React/TypeScript)
si le développement se passe bien on pourra même passer à la deuxième phase qui consiste à récupérer les informations des montres de sports automatiquement via les API des constructeurs (Garmin dans notre cas) pour initier les étudiant.s.es à la deuxième partie du développement web c’est à dire la partie non visible: le backend et les api publique.(langage NestJS, Go, Kotlin aux choix)
Enfin il y aura le stockage en base de donné
La troisième partie (attention gros challenge non obligatoire) C’est de réussir à faire de la prédiction de performance (certaines marques comme garmin le font mais uniquement pour de la course à pied) et même de proposer des séances adaptés en fonction des précédentes séances de la personne qui pratique le sport. Exemple :
Le projet de base est donné mais il est très ouvert à de nouvelles propositions les étudiant.s.es peuvent proposer leurs propres modules (tant que ça sert l’application et que le tuteur valide) c’est même la bienvenue
Etant moi même un developpeur web je vise avec ce projet de donner une approche assez complète d’une application web avec les technologies utilisé actuellement dans le monde du travail en traitant les points suivants:
Le développement se fera sur github avec contrôle de la qualité (comme en entreprise). Des tests automatisé seront un plus.
Le but c'est qu'en sortant de se projet vous soyez prêt a intégrer une entreprise .
/!\IMPORTANT/!\
- Aucune connaissance en montre connecté ou en sports n'est requise
- N'hesitez pas à me poser des questions par mail : ramy.temim@gmail.com
Références bibliographiques
n/a
Technologies
voir description
Contraintes:
Les réunions se feront le soir entre 18h30 et 20h30
Mots-clés
Sports web react api garmin frontend backend typescript
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Positionnement
Activité principale : Programmation
Niveau d'abstraction : Pratique
Difficulté des algorithmes : Avancé
Interactions logicielles : Complexe
Documentation
Spécifications fonctionnelles : Non
Technologies documentées : Non
Nom de l encadrant : Boniol Paul
Mail de l'encadrant :
Catégorie(s): découverte/initiation
Contexte
Le naufrage du Titanic est l'un des naufrages les plus tristement célèbres de l'histoire.
Le 15 avril 1912, lors de son voyage inaugural, le RMS Titanic, largement considéré comme “insubmersible”, a coulé après avoir heurté un iceberg. Malheureusement, il n'y avait pas assez de canots de sauvetage pour tout le monde à bord, ce qui a entraîné la mort de 1502 des 2224 passagers et membres d'équipage.
Bien qu'il y ait eu une part de chance dans la survie, il semble que certains groupes de personnes aient eu plus de chances de survivre que d'autres.
Dans ce défi, nous vous demandons de construire un modèle prédictif qui répond à la question suivante : “à l'aide des données relatives aux passagers (nom, âge, sexe, classe socio-économique, etc.), qui a le plus de chance de survivre?
Objectifs :
Dans ce projet, nous suivront le format de la compétition kaggle correspondante (https://www.kaggle.com/competitions/titanic).
Les objectifs sont les suivants:
Références bibliographiques
n/a
Technologies
Python
Contraintes:
n/a
Mots-clés
machine learning
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Positionnement
Activité principale : Exploration
Niveau d'abstraction : Pratique
Difficulté des algorithmes : Avancé
Interactions logicielles : Simple
Documentation
Spécifications fonctionnelles : Non
Technologies documentées : Non
Nom de l encadrant : Bouzy Bruno
Mail de l'encadrant :
Catégorie(s): intelligence artificielle
Contexte
Le « Rectangle Packing » (RP) est un sujet de recherche en IA ayant des applications nombreuses en ordonnancement d’objets : remplissage optimal de containers avec des caisses, conception d’emplois du temps, conception de circuits imprimés par exemple.
Il s’agit de remplir une « boîte » ou « grand rectangle » avec des « petits rectangles » de dimensions variées appartenant à un ensemble de départ donné, sans que ceux-ci ne se recouvrent quand ils sont placés dans la boîte. Le problème du remplissage peut être « parfait », c’est-à-dire sans espace vide dans la « boîte ». Dans ce cas on parle de « Perfect Rectangle Packing » (PRP).
Objectifs :
Références bibliographiques
Technologies
n/a
Contraintes:
n/a
Mots-clés
n/a
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Positionnement
Activité principale : Programmation
Niveau d'abstraction : Pratique
Difficulté des algorithmes : Avancé
Interactions logicielles : Simple
Documentation
Spécifications fonctionnelles : Non
Technologies documentées : Oui
Nom de l encadrant : Bouzy Bruno
Mail de l'encadrant :
Catégorie(s): intelligence artificielle
Contexte
Le Morpion Solitaire (MS) se joue sur une grille. Il consiste a faire le plus possible de lignes de cinq points (ou x), en partant d’une grille sur laquelle est déjà dessinée une grande croix de départ (une croix grecque).
A son tour, le joueur peut ajouter un point (un x) pourvu qu’il relie cinq points alignés horizontalement, verticalement ou en diagonale.
La partie s’arrête lorsque le joueur ne peut plus ajouter un point créant une ligne de cinq points. Le score est égale au nombre de lignes créées.
Il y a une version dure et une version douce. Dans la version dure, un point ne peut pas être l’extrémité de deux lignes à la fois. Dans la version douce, c’est possible à condition que les deux lignes ne soient pas en prolongement.
Dans la version dure, les meilleurs scores obtenus par des humains tournent autour de 60, celui obtenu par une machine vaut 82, et la borne supérieure vaut 84 (il a été démontré qu’on ne peut pas faire mieux que 84). Dans la version douce, le meilleur score obtenu par un humain est 170, 178 par une machine.
Objectifs :
Références bibliographiques
Christopher D. Rosin, « Nested Rollout Policy Adaptation for Monte Carlo Tree Search », IJCAI-11 : AAAI Press, pages 649–654, (2011).
Technologies
n/a
Contraintes:
n/a
Mots-clés
n/a
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Positionnement
Activité principale : Programmation
Niveau d'abstraction : Pratique
Difficulté des algorithmes : Avancé
Interactions logicielles : Simple
Documentation
Spécifications fonctionnelles : Non
Technologies documentées : Oui
Nom de l encadrant : El Debs Elie
Mail de l'encadrant :
Catégorie(s): app. autonome, prototypage, site web, veille technologique
Contexte
Dans un contexte concurrentielle les entreprises se voient obligées de rester à l'écoute des nouveautés du marché sur différents sujets. De nos jours, une multitude d'outil sont à la disposition des sociétés afin de scruter le web à la recherche d'informations stratégiques à la fois sur la concurrence mais aussi sur la réputation de leurs propres marque.
Ces outils ont pour principal objectif d'agréger plusieurs flux d'information dans une seule et même interface (Article web, post sur les réseaux sociaux etc …).
Objectifs :
L'objectif attendu est la mise en place d'une application web responsive de veille informationnelle. Cet outil doit pouvoir répondre aux problématiques suivantes :
1.Permette de suivre et d'afficher les nouveaux articles sur un ou plusieurs sites internet configuré par l'utilisateur.
2.Permette de suivre et d'afficher les postes sur les réseaux sociaux en fonction de topics prédéfinies par l'utilisateur.
3.La mise à jour de l'interface utilisateur doit se faire en temps réel.
Au choix du groupe, il est possible de pousser l'outil vers un outil de veille concurrentielle.
Références bibliographiques
n/a
Technologies
Python, Flask, Django, REST Api, HTML / CSS / Javascript
Contraintes:
Réunions à partir de 17h30
Mots-clés
Python, Flask, application web, API …
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Positionnement
Activité principale : Programmation
Niveau d'abstraction : Pratique
Difficulté des algorithmes : Élémentaire
Interactions logicielles : Simple
Documentation
Spécifications fonctionnelles : Non
Technologies documentées : Non
Nom de l encadrant : Roussel Elodie
Mail de l'encadrant :
Catégorie(s): app. autonome, app. gestion, open-source
Contexte
Ces dernières années, avec la popularisation des cryptomonnaies, l’intérêt pour les marchés financier ne cesse de croître. Pourtant, les paramètres régissant le cours des actions sont innombrables. Le but ici est donc de créer des BOT qui vont générer des gains à partir des données financières et de comparer leurs performances.
Objectifs :
L’objectif de ce projet est de développer des BOT de trading (basé sur la cryptomonnaie ou la finance de marché) qui, en utilisant des données open-source de marché et différents algorithmes, vont émettre des ordres d’achats et de ventes. Le but final sera de comparer l’efficacité de chacun de ces BOT.
Plus concrètement :
Références bibliographiques
n/a
Technologies
Java ou Python, SQL ou MangoDB (+ HMTL/CSS/JS)
Contraintes:
Développement de deux Bots de trading au minimum
Mots-clés
finance de marché, Bot de trading
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Positionnement
Activité principale : Programmation
Niveau d'abstraction : Pratique
Difficulté des algorithmes : Avancé
Interactions logicielles : Simple
Documentation
Spécifications fonctionnelles : Non
Technologies documentées : Oui
Nom de l encadrant : Lattaud Claude
Mail de l'encadrant :
Catégorie(s): app. scientifique
Contexte
Ajout d'un module à une application existante
Objectifs :
L'objectif de ce projet est de développer un module à une application déjà existante, fruit de plusieurs années de collaborations d'étudiants de L3. Celle-ci est une suite d'outils d'aide à la randonnée regroupant de nombreux modules indépendants les uns et des autres, allant de la reconnaissance de plantes et de champignons à la reconnaissance de constellations.
Cette année, les étudiants réaliseront un module permettant à un utilisateur d'appeler un numéro d'urgence, paramétrable, et de pouvoir communiquer également en urgence. De nombreux cas de figure peuvent se présenter, tels qu'un accident de randonnée où le randonneur, sous l'effet de la douleur, ne parvient pas à articuler de phrases cohérentes, ou encore une personne victime d'un AVC et n'ayant plus accès à la parole.
Ce module devrait offrir à l'utilisateur la possibilité de communiquer son état de santé avec ses antécédents, ainsi que sa position GPS pour l'arrivée des secours, parmi d'autres éléments éventuels.
Finalement, les étudiants feront une démonstration en live, sans appeler de services officiels bien sur, de leur module intégré à l'application originale, présentant quelques situations d'urgence.
Références bibliographiques
n/a
Technologies
Java Android
Contraintes:
n/a
Mots-clés
Aide urgence, application existante
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Positionnement
Activité principale : Programmation
Niveau d'abstraction : Pratique
Difficulté des algorithmes : Élémentaire
Interactions logicielles : Complexe
Documentation
Spécifications fonctionnelles : Non
Technologies documentées : Non
Encadrants : Michel Soto
Mail de l'encadrant :
Catégorie(s): Robotique
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:
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.
Encadrant : Laurent Wendling
Mail de l'encadrant :
Catégorie(s): app. scientifique
Contexte
Ces dernières années, la disposition spatiale des objets (ou des différents sous-objets composant les objets) présents dans une image a reçu une attention particulière dans le domaine de l’analyse d’images. En effet, les relations spatiales liant les différents objets d’une scène constituent une information particulièrement importante dans la perception humaine (est-ce que l’objet A est à gauche de l’objet B, est-ce que A est entouré par B …). Il s’agira ici d’implémenter et d’analyser un modèle de description de relations spatiales directionnelles fondé sur des sous-ensembles flous.
Objectifs :
Les étapes à suivre sont les suivantes
- Lecture d’une image binaire par objets (argument et référent).
- Calcul de l’histogramme d’angles entre les deux objets.
- Estimation de relations spatiales en calculant la compatibilité entre un prototype trapézoïdal (ou sinusoïdal) et l’histogramme d’angle suivant la direction recherchée.
- Comparaison de cette approche avec une approche classique à partir de barycentre.
- Suivant l’avancée, le calcul d’une relation spatiale intégrant trois objets (relation entre) sera étudié.
La programmation pourra se faire en Python, java ou C++.
Références bibliographiques
Fournies dés le début du projet
Technologies
n/a
Contraintes:
n/a
Mots-clés
Relations spatiales, images
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Encadrant :
Mail de l'encadrant :
Catégorie(s): app. autonome, framework/librairie, open-source
Contexte
La compréhension du pseudo-code d'un algorithme peut être difficile si l'on ne se représente pas visuellement le déroulement de l'algorithme et la manière dont les structures de données sont transformées par celui-ci. Cette difficulté est particulièrement forte dans le cas d'algorithmes récursifs sur des structures non-linéaires, comme des arbres.
Objectifs :
L'objectif est de construire un programme de visualisation animée du déroulement d'algorithmes. De nombreux outils de ce type existent, on se concentrera donc sur ce qui manque : la visualisation d'algorithmes récursifs sur les arbres.
Le programme devra à la fois comporter un ensemble de fonctions suffisamment génériques pour mettre en œuvre des algorithmes quelconques (un framework) et l'implémentation d'algorithmes spécifiques issus du cours d'algorithmique de L2.
Références bibliographiques
Exemples de visualisateurs :
Librairies :
Technologies
python ou programmation web
Contraintes:
n/a
Mots-clés
algorithmique, visualisation, arbres
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Encadrant : George Butler
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 :
É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):
Contrainte(s) :
Encadrant :
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 :
Langage(s) : C/C++ ou Java
Références
Langage
Contrainte(s) :
Nom de l'encadrant:
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 :
Langage(s) :
Contrainte(s) :
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).
Lors de ce projet vous aurez plusieurs tâches à accomplir :
Langage(s) :
Contrainte(s) :
Nom de l'encadrant:
Mail de l'encadrant :
Catégorie(s):Site web, open-source
Présentation du sujet
De nombreuses associations assurent des permanences pour recevoir du public, les bénévoles s'engage à être présent une demi-journée par semaine pour assurer ces permanences.
Bien que ces activités soient fréquentes, il n'existe aucun logiciel open-source permettant d'automatiser la gestion des permanences.
Chaque bénévole peut avoir des contraintes fortes et des contraintes souples pour ses disponibilités; ces contraintes peuvent changer d'une semaine à l'autre.
Pour rendre un service efficient à son public, l'association doit pouvoir s'assure que toutes les demi-journées de la semaine pourront être assurée par des bénévoles.
A la fin de l'année, il serait souhaitable que tous les bénévoles aient contribué de manière égale pour éviter de gros déséquilibres.
Objectifs:
Le logiciel développé doit permettre de:
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) :
Encadrant :
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
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:
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) :
Nom de l'encadrant:
Mail de l'encadrant :
Catégorie(s): Jeu vidéo
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 :
Langage(s) :
Contrainte(s) :
Encadrant :
Mail de l'encadrant :
Catégorie(s): smartphone
Description : Vous réaliserez une application mobile qui permette de :
S'il reste du temps à la fin du projet, on appliquera les filtres au mode vidéo.
Langage souhaité :
Contrainte :
Posséder un smartphone
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 :
Langage souhaité :
A déterminer
Contrainte(s) :
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) :
Nom de l'encadrant: Elodie Roussel
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 :
Langage souhaité :
Contrainte(s) :
Nom de l'encadrant:
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 :
Langage souhaité :
Référence(s) :
Contrainte(s) :
Nom de l'encadrant:
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 :
Langage souhaité :
Référence(s) :
Contrainte(s) :
Nom de l'encadrant:
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 :
Langage(s) :
Contrainte(s) :
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
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) :
Encadrant :
Mail de l'encadrant :
Catégorie(s): Jeu Vidéo
Présentation du sujet
Bubble shooter est un type particulier de casse brique; c'est un classique des salles d'arcade.
L'objectif de ce projet est de développer votre propre bubble shooter.
Travail à effectuer
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) :
Nom de l'encadrant:
Mail de l'encadrant :
Catégorie(s): Site web
Présentation du sujet
Il arrive souvent lorsque l'on possède une importante bibliothèque de ne plus être sûr des livres que l'on possède.
De même dans ces cas là, on peut être amené à prêter des livres à 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 bibliothèques.
Les utilisateurs pourront alors entrer les données correspondant à leurs livres (titre, auteur, année de sortie, date d'achat…), et à tout moment effectuer des recherches dans la liste de leurs livres (et ainsi par exemple ils éviteront d'en acheter un deuxième exemplaire).
Les utilisateurs pourront aussi garder une trace des livres 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 livres.
Il doit être possible de modifier les données d’un livre enregistré, ou de le supprimer de la liste, et d’indiquer qu’un livre a été prêté à un ami, en précisant les informations sur ce prêt (personne, date du prêt, …).
L’utilisateur doit également pouvoir faire des requêtes sur sa liste de livres (par exemple, afficher tous les livres d’auteurs japonais, possédés en livre de poche, ou qui sont sortis entre 2009 et 2012, …).
Enfin, l'utilisateur doit pouvoir planifier l'achat de nouveau livres.
Langage(s) et technologie(s):
Contrainte(s) :
Nom de l'encadrant:
Mail de l'encadrant :
Catégorie(s): Smartphone, jeu vidéo
Contexte
Le jeu 2048 a eu un grand succès ces dernières années, aussi bien sur le web qu’en tant qu’application mobile.
Il s’agit d’un petit casse-tête qui consiste à déplacer des cases dans une grille 4×4 de façon à faire fusionner deux cases identiques lorsqu’elles se rencontrent. Les cases contiennent des puissances de 2.
Ainsi, deux cases 2 fusionneront en une case 4, deux cases 4 fusionneront en une case 8, etc Le but du jeu est de faire apparaître la case 2048 (2 à la puissance 11).
Il est bien entendu possible de continuer au-delà, et de faire apparaître des valeurs plus élevées.
Travail à réaliser :
Le but du projet est de développer une application mobile pour 2048.
En plus des fonctionnalités de base (pouvoir jouer une partie), il faudra prévoir un certain nombre d’extensions : possibilité de jouer dans des grilles de taille différente, objectif à atteindre différent, tableaux des meilleurs scores, modification du thème graphique, partage du score sur les réseaux sociaux, etc
Une fonctionnalité optionnelle est le développement d’une intelligence artificielle capable de jouer au jeu.
L’intérêt de cette IA serait de permettre à un joueur qui hésite sur son prochain coup d’obtenir un indice.
Langage(s) et technologie(s):
Référence(s) :
Mots-clés :
Nom de l'encadrant:
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 :
Langage(s) et technologie(s):
Au choix: Java ou C
Interface graphique, Intelligence artificielle
Contrainte(s) :
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.
Travail à effectuer :
L'objectif de ce projet est de réaliser une application qui fonctionne sur un smartphone. Elle devra permettre :
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
Nom de l'encadrant:
Mail de l'encadrant :
Catégorie(s): Jeu vidéo
Présentation du sujet
Le blackjack 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.
Dans sa version classique, la partie oppose tous les joueurs contre la banque.
Le but est de battre le croupier sans dépasser 21
Travail à effectuer
Le but du projet est d’implémenter un jeu de blackjack dans lequel le joueur affronte l'ordinateur. Le programme devra proposer les fonctionnalités suivantes :
Afin d'améliorer les possibilités offertes, on envisagera de :
Langage(s) et technologie(s):
Interface graphique, Intelligence artificielle
Contrainte(s) :
Encadrant : Sylvain Lobry
Mail de l'encadrant :
Catégorie(s): intelligence artificielle, site web
Contexte
Le visual question answering est une tâche récente visant à extraire de l’information depuis des images via des requêtes exprimées en langage naturel. Une démonstration de cette tâche est accessible sur [1]. Les modèles proposés pour traiter cette tâche reposent sur l’apprentissage profond, et nécessitent une grande quantité de données d’entraînement (une donnée est un triplet image/question/réponse). L’objectif de ce projet est de proposer une plateforme web permettant l’annotation de données pour le visual question answering.
Objectifs :
La plateforme à réaliser contiendra une interface administrateur et une interface utilisateur. L’interface administrateur permettra d’ajouter des images à annoter, d’accéder aux statistiques de la plateforme et de télécharger les annotations. L’interface utilisateur affichera les statistiques individuelles et fonctionnera selon deux modes:
Par ailleurs, selon l'avancement des étudiants, un mode démo pourra être créer (à partir de modèles définis et entraînés) et permettra une prise en main d'une bibliothèque d'apprentissage sur la partie inférence.
Références bibliographiques
Technologies
La plateforme devra suivre un patron modèle-vue-contrôleur (MVC). L’utilisation d’un framework (e.g. Django) est conseillée, mais les étudiants pourront aussi s’orienter vers un développement avec HTML/CSS/PHP/Javascript.
Contraintes:
Les différentes briques de la plateforme devront être facilement modifiable pour permettre de nouvelles fonctionnalités.
Mots-clés
Plateforme, web, annotation, apprentissage profond
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non