Site de contact pour la première année des masters informatiques de l'UVSQ (formation initiale).




Accueil
Inscription
Cours/Intervenants
Calendrier de l'année
Emploi du temps
Règles de réussite
Liste des projets
Cours optionnels
Secrétariat/Contact
Adresses/Transports
Ressources
FAQ



Proposition des projets (2013-2014)

La liste des projets sera disponible début décembre. Le projet commencera effectivement au début du second semestre.

Le projet en master informatique M1 est destiné à mettre en pratique les aptitudes acquises lors de l'enseignement magistral. Il permet également d'aborder un nouveau sujet tout en apprenant parfois de nouveaux outils (ex. langage de programmation). En fonction du souhait des tuteurs, les projets se font seul, en binôme ou en trinôme (voir le descriptif des projets ci-dessous pour de plus amples informations). Chaque projet est proposé par un ou plusieurs intervenants du laboratoire Prism (UVSQ). Celui-ci (ceux-ci) vous guidera et veillera à l'avancement du projet. N'hésitez pas à les contacter pour de plus amples informations.

Le projet se divisera en 4 parties:

  1. lecture de la littérature (livres, articles, etc),
  2. rédaction d'un document relié (environ 20 pages pour un projet seul, 30 pages pour un projet en binôme et 40 pages pour un trinôme).
  3. programmation,
  4. présentation orale.

A la fin du projet, un rapport relié sera remis au responsable du projet (date à déterminer avec celui-ci). Un seul document suffit pour un binôme ou un trinôme. Aussi, un autre exemplaire du document relié sera remis au coordinateur de l'ensemble des projets le jour de la soutenance.

Le coordinateur de l'ensemble des projets M1 assistera à la totalité des présentations orales qui auront lieu en mai (date à déterminer). Son rôle est d'assurer une équité entre les notations. La présentation orale sera effectuée au moyen de transparents (électroniques) et durera 20 minutes pour un étudiant, 30 minutes pour un binôme et 40 minutes pour un trinôme. Un séance de questions de 10 minutes suivra. Pour les projets à plusieurs une attention particulière sera porté concernant la juste répartition du temps de parole entre les étudiants, tant durant la présentation que durant la séance de questions. Le choix du logiciel de traitement de texte pour les transparents est laissé à l'appréciation du responsable du projet.

La notation du projet prendra en compte l'aptitude à lire la littérature, la capacité à trouver des solutions originales à un problème posé, la capacité à programmer proprement et finalement à présenter le travail fourni de façon claire sous forme écrite et orale.

La procédure à suivre pour s'incrire à un projet consiste à remplir la feuille qu'il faut télécharger sur ce site. Cette feuille dûment signée par l'étudiant (ou binôme) et un responsable du stage sera remise au secrétariat pédagogique (Fabienne Chevalier, bureau 221 B - bâtiment Descartes) jusqu'au vendredi 10 janvier 2014 au plus tard.

Bon projet!

Michaël Quisquater (coordinateur de l'ensemble des projets M1 en informatique)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Sujets proposés pour 2013-2014

Les sujets choisis par des étudiants et pour lesquels une fiche a été correctement remplie et remise au secrétariat sont en rouge . Ces sujets ne sont donc plus disponibles.

  1. Interface mobile pour le webmail RoundCube (Luca De Feo).
  2. Développement d'une plateforme d'exercices en ligne de math/info (Luca De Feo).
  3. Programmation de méthodes des sphères internes en JAVA ou C++ (Guérard Guillaume).
  4. Génération de code pour processeur ARM (Pablo Oliveira).
  5. Interface graphique pour l'outil ASK (Pablo Oliveira et Eric Petit).
  6. Etude experimentale des algorithmes de consensus (J.M. Fourneau).
  7. Etude pratique des stratégies d'accès pour remplir un avion (J.M. Fourneau).
  8. Etude experimentale de l'algorithme SSA de Gillespie (J.M. Fourneau).
  9. Traitement et analyse de logs (Stéphane Lopes).
  10. Développement d'application Androïd (Stéphane Lopes).
  11. Gestion de machines virtuelles avec Vagrant
  12. Etude de la migration des plateformes e-campus (Stéphane Lopes).
  13. Etude et mise en oeuvre de bases de données NoSQL (Stéphane Lopes).
  14. Etude du développement d'applications Javascript (Stéphane Lopes).
  15. Application Java pour l'installation des VMs cartable numérique (Stéphane Lopes).
  16. Modelisation par Automates Cellulaire pour Trafic Routier (Jean-Michel Fourneau).
  17. Modelisation par Automates Cellulaire pour Evacuation en presence de catastrophe (Jean-Michel Fourneau).
  18. Dessin de Graphes et Placement Planaire par l'algorithme de Eades (Jean-Michel Fourneau).
  19. Simulation Temps Parallèle de Traces (Jean-Michel Fourneau).
  20. Manipulations élémentaires pour le calcul matriciel creux sur GPU (Jean-Michel Fourneau et F. Quessette).
  21. Modelisation par Automates Cellulaire pour étudier la propagation d'un incendie(Jean-Michel Fourneau).
  22. Protection des courriers électroniques avec GnuPG (Christina Boura).
  23. Tests de Primalité (Christina Boura).
  24. Factorisation (Christina Boura).
  25. Cassage de mot de passe (Christina Boura).
  26. La sécurisation des transferts réseaux avec OpenVPN (Christina Boura).
  27. Développement d'un agrégateur de stockage dans le Cloud (Stéphane Lopes et Thierry Mautor).
  28. Développement d'une méthode de recherche arborescente pour un jeu à 2 joueurs: application au jeu Gobblet (Thierry Mautor).
  29. Application d'une meta-heuristique à un problème particulier de coloration de graphe: le weight coloring problem (Thierry Mautor).
  30. Simulation du mélange d'un jeu de cartes (Pierre Coucheney).
  31. Apprentissage dans les jeux stochastiques simples (Pierre Coucheney et Yann Strozecki).
  32. Concours de Programmation SIGMOD 2014 (Benjamin Nguyen).
  33. Extraction de données à partir de documents scannés (Benjamin Nguyen).
  34. Partage de fichiers 'sécurisé' sur téléphone portale (Benjamin Nguyen).
  35. Construction et programmation d'une machine de Turing en LEGO Mindstorm (Benjamin Nguyen).
  36. Auto guide indoor pour mobile (Karine Zeitouni).
  37. Parallélisation en mémoire partagé à base de tache (Loïc Thébault et Eric Petit).
  38. Une Application Web 2.0/Mashup pour la visualisation des données des capteurs environnementaux sur une carte géographique(Google Maps) (Yehia Taher).
  39. Interface web de saisie et de modification de donnée moléculaires (Yann Strozecki et Franck Quessette).
  40. Programmation d'un robot LEGO Mindstorm EV3 dans le cadre de l'enseignement de l'informatique en Licence Informatique (Sandrine Vial, Lise Rodier).
  41. Programmation de la méthode du cuboïde en JAVA ou C++ (Guérard Guillaume).
  42. DropBox sécurisée (Philippe Pucheral).

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Interface mobile pour le webmail RoundCube

Responsable: Luca De Feo

Descriptif:

RoundCube est le logiciel de webmail, utilisé par l'UVSQ à travers l'ENT. Ce logiciel manque d'une interface mobile, ce qui en limite l'attractivité.

Travail demandé:

Le but de ce projet est de développer une interface mobile pour RoundCube, en s'appuyant sur la technologie HTML5. Si le temps le permettra, l'étudiant pourra cibler des plateformes spécifiques (par ex. Android, iOS, ...) et développer un client lourd s'appuyant sur les APIs de la plateforme (gestion des contacts, stockage, etc.). L'utilisation de librairies multi-plateforme (par ex. PhoneGap) est aussi envisageable.

Nombre d'étudiants: 1 et déjà pris.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Développement d'une plateforme d'exercices en ligne de math/info

Responsable: Luca De Feo

Descriptif:

Ce projet a pour but de développer une plateforme d'exercices en ligne, avec possibilité de correction automatique. On vise des exercices de mathématiques ou de programmation de niveau licence, (ex.: problèmes numériques en algèbre linéaire, programmation d'algorithmes de tri, ...).

Le projet utilisera le langage Python pour la programmation. L'application web sera codée à l'aide des librairies standard python, et d'un framework web (ex.: Django, webapp2). L'interface sera codée avec les technologies de la famille HTML5 (HTML, CSS, JavaScript, Websockets...) ; elle s'appuiera, notamment, sur les dernières technologies en matière d'affichage de mathématiques (MathML, Mathjax).

Notez que, contrairement aux applications web traditionnelles, il n'est pas demandé de programmer une interface avec un système de BD.

Le développement du projet s'appuiera sur des technologies modernes et possiblement open source : Github pour le contrôle des versions, C9 pour le développement dans le cloud. L'interfacement et le déploiement sur Google App Engine est aussi une piste possible.

Travail demandé:

  • Apprendre les bases du développement web en Python
  • Apprendre l'utilisation d'un ou plusieurs frameworks web (Django, webapp...)
  • Concevoir un ou plusieurs formats pour les exercices, permettant d'entremêler texte, mathématiques et calcul en python
  • Programmer la partie serveur, générant les exercices à partir de leur description
  • Programmer l'interface client, permettant de présenter les exercices à l'utilisateur, de vérifier l'exactitude de la réponse, de présenter la solution
  • Programmer d'autres composants de l'interfaces, permettant, par exemple, la compilation de plusieurs exercices en un TD, l'édition d'exercices en ligne, etc...

Prérequis:

Aucune connaissance spécifique en mathématiques n'est nécessaire. Le projet doit pouvoir s'appuyer sur les différentes librairies de calcul scientifique disponibles pour python (Numpy/Scipy, Sagemath, ...), mais les élèves n'auront pas à en apprendre le mode d'utilisation. Cependant un interfacement avec le logiciel de calcul formel Sage (www.sagemath.org) est envisageable.

  • Connaissance de HTML, CSS et Javascript ; suivre le cours AWS
  • Capacité à apprendre rapidement un nouveau langage de programmation
  • Expérience avec un système de contrôle de versions (CVS, SVN, ...) ; la connaissance de git est un plus
  • Goût prononcé pour la programmation et l'open source

Mots clefs: HTML5, Python, Numpy/SciPy/Sagemath, Cloud

Nombre d'étudiants: 2-3

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Programmation de la méthode des sphères internes en JAVA ou C++

Responsable: Guérard Guillaume

Descriptif: De nouvelles méthodes d'optimisation du problème de maximisation convexe sont mis en oeuvre afin d'obtenir un maximum local de bonne qualité. Ces méthodes s'appuyent sur une reformulation du problème par les contraintes telles que la plus grande sphère incluse dans le domaine de possibilité ou la plus petite boite incluant le domaine.

Travail demandé: Les étudiants devront programmer la méthode de la plus grande sphère interne, approximation interne, et fournir un programme permettant d'entrer les contraintes et les méthodes de résolutions souhaitées par une interface graphique.

Prérequis: JAVA ou C++ Calcul matriciel

Nombre d'étudiants: 1 ou 2

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Programmation de la méthode du cuboïde en JAVA ou C++

Responsable: Guérard Guillaume

Descriptif: De nouvelles méthodes d'optimisation du problème de maximisation convexe sont mis en oeuvre afin d'obtenir un maximum local de bonne qualité. Ces méthodes s'appuyent sur une reformulation du problème par les contraintes telles que la plus grande sphère incluse dans le domaine de possibilité ou la plus petite boite incluant le domaine.

Travail demandé: Les étudiants devront programmer la méthode du cuboide, approximation externe, et fournir un programme permettant d'entrer les contraintes et les méthodes de résolutions souhaitées par une interface graphique.

Prérequis: JAVA ou C++ Calcul matriciel

Nombre d'étudiants: 1 ou 2

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Génération de code pour processeur ARM

Responsable:Pablo Oliveira

Descriptif: Les architectures ARM sont prédominantes dans l'informatique embarquée, on les retrouve dans la plupart des smartphones, dans des routeurs, et dans des consoles de jeu. Le but de ce projet et d'écrire un générateur de code ARM et de le tester sur une carte Raspberry Pi. On partira d'une description haut-niveau d'un programme sous forme d'arbre, par exemple :

          +

          / \

   mem mem

      |         |

      +       + (l'arbre décrit la somme de deux éléments d'un tableau a[i] + a[i+1])

     / \       / \

   a    i    a   +

                  / \

                 i   1

On transformera cette représentation en langage ARM :

   ldr r4, =i    @ charger i

   ldr r5, =a    @ charger a

   ldr r6, [r5, r4]    @ charger a[i]

   add r4, r4, #1    @ i++

   ldr r7, [r5, r4]   @ charger a[i+1]

   add r8, r6, r7    @ a[i] + a[i+1] que l'on pourra exécuter sur la Nintendo DS.

Travail demandé:

On partira d'un compilateur écrit en Java (réalisé par l'encadrant à des fins pédagogiques) qui génère du code pour l'architecture MIPS. Il faudra réécrire la partie génération de code du compilateur pour la porter au langage ARM (environ ~ 300 lignes de code à modifier).

Si le projet est mené à bout, on pourra compiler des programmes complexes comme par exemple un programme qui dessine l'ensemble de Mandelbrot.

Prérequis: Langage Java

Références: BURG: fast optimal instruction selection and tree parsing. CW Fraser, RR Henry, TA Proebsting - ACM Sigplan Notices, 1992

Nombre d'étudiants: 2

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Interface graphique pour l'outil ASK

Responsable: Pablo Oliveira + Eric Petit

Descriptif:

ASK (Adaptive Sampling Kit) est un outil open-source ( https://code.google.com/p/adaptive-sampling-kit/) pour la mesure de performance sur de grands espaces de paramètres. Nous l'avons utilisé par exemple pour cartographier la performance d'un code numérique qui simule une propagation acoustique (PA) dans la croûte terrestre. PA peut être configuré avec plusieurs paramètres (le nombre de threads, la taille de l'espace à simuler, la stratégie d'optimisation du code (boucles splittées ou non), la taille du blocking, etc.), en considérant toutes les combinaisons possibles on arrive à 2.7 millions de possibilités. Si on souhaite connaître la performance en fonction de ces paramètres, une mesure exhaustive de toutes les combinaisons est impossible (bien trop coûteuse). ASK utilise des méthodes statistiques pour réduire le nombre de combinaison à mesurer. Avec 800 mesures seulement, ASK est capable de cartographier l'espace de performances de PA avec une erreur relative moyenne inférieure 6%. Pour l'instant, l'expérimentateur configure ASK uniquement depuis la ligne de commandes. Nous souhaiterions développer une interface graphique pour configurer ASK facilement et pouvoir surveiller le déroulement des expériences de manière visuelle. Il faudra donc mettre en place différentes visualisations permettant de représenter des espaces à plusieurs dimensions (pour quelques exemples en 2D voir https://code.google.com/p/adaptive-sampling-kit/wiki/Chapter3ExperimentSetup#Setting_Up_an_Experiment) et les intégrer à une GUI.

Travail demandé: Réalisation d'une interface graphique pour configurer et surveiller les expériences de l'outil ASK. Si le projet est mené à bout, vous pourrez développer des modules rajoutant des fonctionnalités supplémentaires dans ASK. Si votre rendu est de qualité, vous aurez l'opportunité d'intégrer votre code dans l'outil ASK (distribué avec Debian) et vous deviendrez contributeurs du projet.

Prérequis:

  • Interfaces Graphiques

Références:

  • https://code.google.com/p/adaptive-sampling-kit/ et Adaptive Sampling for Performance Characterization of Application Kernels, Concurrency and Computation: Practice and Experience. (2013)

Nombre d'étudiants: 2

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Etude experimentale des algorithmes de consensus

Responsable: J.M. Fourneau

Descriptif: Le but du projet est d'étudier expérimentalement la convergence des algorithmes de consensus. Un algorithme de consensus s'applique sur un réseau de capteurs. Chaque capteur effectue une mesure d'une quantité physique représentée par un flottant. L'algorithme de consensus est un algo distribué qui a pour but que les capteurs convergent vers la valeur moyenne de cette mesure. Les capteurs échangent des messages avec leurs voisins (au sens du réseau) et effectuent un calcul de mise à jour utilisant les données des voisins. La convergence vers la moyenne et la vitesse de convergence sont les deux parametres importants pour les performances de ces algorithmes.

Travail demandé:

  • une étude bibliographique sur les algorithmes de consensus et les modèles de convergence
  • un codage de ces algorithmes en centralisé pour étudier la vitesse de convergence
  • une etude experimentale de ces algorithmes en fonction de la topologie des réseaux

Prérequis: Le code peut etre fait en C ou en Java ou autre langage impératif.

Nombre d'étudiants: entre 1 et 3, selon le nombre on ajoutera le coté dynamique du réseau (disparition ou apparition de liens)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Etude pratique des stratégies d'accès pour remplir un avion

Responsable: J.M. Fourneau

Descriptif: Le but du projet est d'étudier expérimentalement le temps nécessaire pour remplir un avion de ses passagers. L'idée est de représenter l'avion par un réseau de cellules pour modéliser le couloir, les sièges et les coffres à bagage. Les passagers se propagent depuis l'entrée du couloir jusqu'au siège attribué avec les contraintes suivantes:

  • le temps est discret.
  • un passager avance dans le couloir de 1 cellule par unité de temps si il n'y a personne sur la cellule suivante. Sinon il est bloqué.
  • il y a une seule entrée dans l'avion et un seul passager peut entrer par unité de temps.
  • un passager possède un numéro de siège (sa destination) et il doit la respecter.
  • On modélise un avion monocouloir avec 3 sièges de chaque coté du couloir
  • un passager a des bagages à main (entre 0 et 2) et le coffre à bagage à une capacité.
  • lorsque le passager arrive devant son siège, il doit ranger ses bagages et rejoindre son siège. Le temps nécessaire prend en compte la place du passager, le fait que le chemin vers son siège soit libre ou non, le nombre de bagages et la place résiduelle dans le coffre.
  • Donc en général, il se forme une file d'attente dans le couloir et hors de l'avion.
On suppose que tous les passagers attendent à l'extérieur de l'avion dans un ordre aléatoire. L'algorithme d'accès reordonne les clients pour les faire rentrer. C'est la seule possibilité d'action pour la compagnie. Les méthodes d'accès se traduisent par des temps très différents pour remplir l'avion. Une méthode quasi-optimale est celle où un passager entre dans l'avion par unité de temps.

Travail demandé:

  • une modélisation du phénomène sous forme de réseaux d'automates cellulaires.
  • un codage de ce modèle (langage indifférent)
  • une interface graphique pour voir l'avion se remplir
  • une etude experimentale de la méthode d'accès, le critère important est le temps nécessaire pour remplir l'avion

Prérequis: Le code peut etre fait en C ou en Java ou autre langage impératif.

Nombre d'étudiants: 2 ou 3, selon le nombre on ajoutera plus de méthodes d'accès.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Etude experimentale de l'algorithme SSA de Gillespie

Responsable: J.M. Fourneau

Descriptif: Le but du projet est d'étudier expérimentalement les différentes versions de l'algorithme SSA de Gillespie. Cet algorithme calcule le nombre de molécules au cours d'une réaction chimique. Il s'agit d'un algorithme simple de simulation aléatoire. La difficulté est de représenter efficacement le nombre de molécules en interaction et de recalculer le plus vite possible les vitesses de réaction. Il s'agit donc essentiellement d'un travail sur l'algorithmique et les structures de données et il est inutile d'avoir des connaissances en chimie ou en biologie. Les diverses variantes de cet algorithme portent sur la façon de représenter les réactions. L'idée est de comparer expérimentalement la vitesse des algorithmes.

Travail demandé:

  • une étude bibliographique
  • un codage de ces algorithmes
  • une etude experimentale de la vitesse de ces algorithmes en fonction des réactions modélisées

Prérequis: Le code peut etre fait en C ou en Java ou autre langage impératif.

Nombre d'étudiants: entre 1 et 3, selon le nombre on adaptera le nombre d'algorithmes étudiées

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Traitement et analyse de logs

Responsable: Stéphane Lopes

Descriptif:

Le projet "Cartable numérique" de l'UFR des sciences permet à tout étudiant d'emprunter un ordinateur portable sur le campus. L'étude de l'usage de ces machines est une étape importante pour l'évolution de ce projet.

L'un des moyens permettant de suivre l'utilisation de chaque machine est de consulter les informations de connexion de la machine. En particulier, lorsqu'une machine se connecte sur le réseau du campus, une trace apparaît dans les journaux du serveur DHCP.

Ce projet a pour objectif de proposer une approche pour analyser ces journaux et produire des rapports. Par exemple, les enregistrements de plusieurs logs pourront être chargés dans une base de données pour ensuite être utilisés pour la génération de rapports.

Travail demandé:

  • Etude du format et de la sémantique des journaux
  • Etude des outils/langages pour l'analyse de journaux
  • Identification des rapports et indicateurs à extraire des journaux
  • Réalisation/configuration des outils nécessaires

Prérequis:

  • Notions de réseau et d'administration système
  • Connaissance de langages de scripts
  • Connaissance des base de données

Nombre d'étudiants: 1 à 2

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Développement d'application Androïd

Responsable: Stéphane Lopes

Descriptif:

Les équipements mobiles (smartphone, tablette, ...) se développent très rapidement. Le système Androïd est l'une des plateformes phare dans ce contexte.

L'objectif de ce projet est d'étudier les spécificités du développement Androïd et de développer une application de démonstration. Cette dernière consistera à réaliser une application d'apprentissage des nombres et du calcul mental.

Travail demandé:

  • Etude de la plateforme Androïd
  • Installation et configuration de l'environnement de développement
  • Réalisation de application de démonstration

Prérequis:

  • Bonne connaissance du langage Java

Nombre d'étudiants: 1 à 2

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Gestion de machines virtuelles avec Vagrant

Responsable: Stéphane Lopes

Descriptif:

Lors du développement d'une application, il est souvent nécessaire de la déployer dans un environnement proche de celui de production. Ce besoin peut être comblé par l'usage d'une machine virtuelle (VM). Le problème est alors de créer et de configurer cette VM. Les outils de type Vagrant proposent d'automatiser cette tâche.

L'objectif de ce projet est donc d'étudier cet outil et de l'appliquer dans un cas concret.

Travail demandé:

  • Etude de l'outil Vagrant et de ses alternatives
  • Réalisation d'un scénario de démonstration de l'usage de cet outil

Prérequis:

  • Notions d'administration système

Nombre d'étudiants: 1 à 2

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Etude de la migration des plateformes e-campus

Responsable: Stéphane Lopes

Descriptif:

Deux Learning Management Systems (LMS) cohabitent à l'heure actuelle dans notre université. Ce fait engendre un surcoût en terme de maintenance et une confusion pour les utilisateurs.

Le but de ce projet est d'étudier les solutions disponibles pour la migration vers une plateforme unique.

Travail demandé:

  • Etudier deux plateformes LMS (cible et source)
  • Proposer une approche pour la migration de la source vers la cible
  • Réaliser un propotype pour automatiser une partie de cette migration

Prérequis:

  • Connaissances du développement web

Nombre d'étudiants: 1 à 3

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Etude et mise en oeuvre de bases de données NoSQL

Responsable: Stéphane Lopes

Descriptif:

Les bases de données NoSQL sont des alternatives récentes aux bases données relationnelles.

L'objectif de ce projet est d'étudier ces nouveaux modèles de bases de données et de réaliser une application démontrant l'usage de l'un de ces SGBD.

Travail demandé:

  • Etude des modèles de données NoSQL
  • Etude d'un SGBD NoSQL (Neo4J)
  • Réalisation d'un prototype d'application utilisant ce SGBD

Prérequis:

  • Connaissances en base de données
  • Connaissances du langage Java

Nombre d'étudiants: 1 à 3

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Etude du développement d'applications Javascript

Responsable: Stéphane Lopes

Descriptif:

La plupart des applications web actuelles nécessite une interface dynamique et adaptable (smartphone, tablette). Pour cela, la technologie utilisée s'appuie fortement sur HTML5/CSS 3, le langage Javascript et ses frameworks (JQuery, YUI, ...).

Le but de ce projet est d'explorer ces technologies.

Travail demandé:

  • Etude comparative des framework Javascript.
  • Mise en oeuvre d'un framework sur une étude de cas.

Prérequis:

  • Connaissances du développement web

Nombre d'étudiants: 1 à 3

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Application Java pour l'installation des VMs cartable numérique

Responsable: Stéphane Lopes

Descriptif:

L'installation des VMs du cartable numérique sur un ordinateur personnel est une tâche relativement simple mais qui nécessite plusieurs étapes.

Afin d'en simplifier l'accès pour les utilisateurs les moins expérimentés, dans ce projet, vous réaliserez une application Java/Swing qui proposera une interface pour assister l'utilisateur.

Travail demandé:

  • Etude de l'API de Virtualbox pour la communication avec une VM
  • Réalisation de l'application Java permettant l'iunstallation

Prérequis:

  • Connaissances du langage Java
  • Notions d'administration système

Nombre d'étudiants: 1 à 3

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Modelisation par Automates Cellulaire pour Trafic Routier

Responsable: Jean-Michel Fourneau

Descriptif: Le but est de reproduire de facon fiable le comportement d'un ensemble d'agents representant chacun un vehicule ou un conducteur dans une voie de circulation en presence d'obstacle ou de croisement. On represente chaque agent par un automate sur une grille representant la route. Les lois de deplacement des agents prennent en compte la physique (vitesse, acceleration, impossibilite d'avoir deux vehicules en un seul noeud de la grille) et le comportement des agents (maitrise de la vitesse en fonction des autres agents, visibilite limitee, informations diverses apportees par le vehicule).

Travail demandé: Il s'agit essentiellement de decrire des scenarios (par exemple une panne se produisant à une date t0 et l'influence sur le réseau) et des les jouer en observant grace a une interface graphique l'evolution de la simulation. Il y a essentiellement 3 parties: l'interpretation de scenario, le jeu du scenario sur un intervalle de temps, et la representation graphique plus ou moins sophistiquee (fonction magnetoscope, zoom, etc). Le but est de comprendre les phénomènes de ralentissement et d'engorgement en fonction du trafic.

Prérequis: Java et en particulier graphique

Nombre d'étudiants: 3

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Modelisation par Automates Cellulaire pour Evacuation en presence de catastrophe

Responsable: Jean-Michel Fourneau

Descriptif: Le but est de reproduire de facon fiable le comportement d'un ensemble d'agents representant chacun un individu dans un batiment alors que se produit une catastrophe (incendie par exemple). On represente chaque agent par un automate sur une grille representant un niveau du batiment (y compris les murs, les portes, les escaliers, etc...). Les lois de deplacement des agents prennent en compte la physique (vitesse, impossibilite d'avoir deux agents en un seul noeud de la grille, chaleur) et le comportement des agents (visibilite limitee, obstacles, trop forte chaleur, effet de panique informations diverses apportees par l'infrastructure, en particulier visibilité des signaux de sortie de secours). Le but est bien sur d'evacuer le batiment sans pertes humaines.

Travail demandé: Il s'agit essentiellement de decrire des scenarios et des les jouer en observant grace a une interface graphique l'evolution de la simulation. Il y a essentiellement 3 parties: l'interpretation de scenario, le jeu du scenario sur un intervalle de temps, et la representation graphique plus ou moins sophistiquee (fonction magnetoscope, zoom, etc).

Prérequis: Java et en particulier graphique

Nombre d'étudiants: 3

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Dessin de Graphes et Placement Planaire par l'algorithme de Eades.

Responsable: Jean-Michel Fourneau, jmf@prism.uvsq.fr

Descriptif: Soit G un graphe non orienté. Le but du projet est d'étudier un algorithme permettant de représenter G en attribuant aux sommets du graphe G des coordonnees planaires. L'idée est de générer ensuite des fichiers PS ou PDF (ou autre...) pour les visualiser par des outils classiques. Pour trouver des coordonnees pour les sommets, l'idee de Eades est d'associer a chaque arete un ressort qui atire ou repousse les sommets jusqu'a une certaine distance. Dans une premiere etape on fixe des positions initiales aleatoirement. Puis on laisse le systeme de ressort (et donc de forces) faire evoluer les positions des points. On arete l'algorithme quand les sommets sont a l'equilibre.

Travail demandé:

  • Faire un état de l'art du sujet de dessin de graphe
  • étudier l'algorithme de Eades
  • le coder (en C ou en Java)

Prérequis: notions simples sur les graphes et sur un outil de représentation de dessin vectoriel.

Nombre d'étudiants: Nombre d'étudiants: 1 ou 2 (dans ce dernier cas, on etudiera aussi l'algorithme de Kawai, un autre algorithme pour positionner un graphe en employant des forces) et on comparera les resultats.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Simulation Temps Parallèle de Traces.

Responsable: Jean-Michel Fourneau, jmf@prism.uvsq.fr

Descriptif: La simulation à évènements discrets est une méthode essentiellement séquentielle puisqu'elle itère sur les évènements temporels successifs. Elle est donc intrinséquement difficile à paralléliser. Une simulation est vue comme une boite noire contenant des variables internes (X(n)) et régissant une séquence d'entrée ou trace (I(n)). Une approche assez originale consiste à paralléliser les tranches de temps qui seront simulées. Donc la simulation entre 0 et T devient N simulations entre D(i) et D(i+1) avec D(1)=0 et D(N)=T. On recolle ensuite les fragments obtenus en parallèle. Il y a deux approches possibles selon que l'on arrive à prédire les points des trajectoires (c'est-à-dire le temps et l'espace) qui sont des points de départ et d'arrivée corrects. Pour des modèles non prédictifs, on fixe la cardinalité du nombre de simulations et on prend des points initiaux au hasard puis on corrige dans des phases successives.

Travail demandé: Faire un état de l'art du sujet Coder l'algorithme classique de Mitrani

Prérequis: notions simples sur la simulation déterministe.

Nombre d'étudiants: 2

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Manipulations élémentaires pour le calcul matriciel creux sur GPU.

Responsable: J.M. Fourneau et F. Quessette

Descriptif: Le but du projet est de comparer les diverses structures de données pour représenter des matrices creuses pour faire des opérations élémentaires sur GPU. Les opérations basiques retenues sont le calcul du produit matrice par un vecteur et le maximum de deux lignes de la matrice (ce qui perturbe la structure creuse) Les structures de données pour représenter une matrice creuse ont une influence énorme qui devra être mesurée.

Travail demandé:

  • une familiarisation avec la programmation CUDA
  • une étude bibliographique sur les structures de données pour matrice creuse les plus souvent employées
  • divers codages des structures et des opérations et mesures de leur efficacité.

Prérequis:

  • un bon niveau en C et sur les structures de données.
  • Quelques notions sur CUDA seraient un plus mais ca n'est pas indispensable.

Nombre d'étudiants: 3

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Modelisation par Automates Cellulaire pour étudier la propagation d'un incendie

Responsable: Jean-Michel Fourneau

Descriptif: Le but est de reproduire de facon fiable la propagation d'un incendie en milieu naturel. Chaque cellule hexagonale représente l'état d'une zone géographique (bois intact, bois brulé, champs, étang, coupe feu, rocher, route, etc). Un incendie démarre d'une cellule et on étudie la propagation en fonction du vent des regles de propagation sur les différents terrains. Le but est bien sur de prédire si l'incendie détruit toute la zone géographique ou s'arrete naturellement.

Travail demandé: Il s'agit essentiellement de decrire des scenarios et des les jouer en observant grace a une interface graphique l'evolution de la simulation. Il y a 3 parties: l'interpretation de scenario, le jeu du scenario sur un intervalle de temps, et la representation graphique plus ou moins sophistiquee (fonction magnetoscope, zoom, etc).

Prérequis: Java et en particulier graphique

Nombre d'étudiants: 3

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Protection des courriers électroniques avec GnuPG.

Responsable: Christina Boura

Descriptif:

La messagerie électronique constitue aujourd'hui le vecteur d'échange d'information le plus repandu. Les révélations du programme de surveillance PRISM nous rappelle à nouveau qu'il est aujourd'hui indispensable de protéger le contenu de ces communications. GnuPG (ou GPG) est un logiciel libre permettant la transmission des messages chiffrés et assurant la confidentialité de la communication, l'intégrité ainsi que l'authenticité de la provenance des messages transmis. Il s'agit de l'implementation GNU du protocole OpenPGP (RFC 4880).

Travail demandé:

  • Réaliser une étude complète sur le fonctionnement de GnuPG ainsi que sur le protocole adjacent OpenPGP. Décrire les principes et les algorithmes cryptographiques intégrés.
  • Installer et configurer le logiciel sous Windows et Linux. Illustrer en pratique les fonctionnalités du programme.
Le résultat attendu sera le suivant:
  • Rédiger (au moyen du traitement de texte Latex) un rapport étendu en décrivant les principes de la norme OpenPGP, ces objectifs et les procédures cryptographiques utilisées. Présenter le fonctionnement de GnuPG et décrire la mise en pratique du programme.
  • Faire une démonstration des divers scenarii étudiés.

Références:

  • OpenPGP -- RFC 4880.
  • http://www.gnupg.org/
  • Simson Garfinkel. "PGP: Pretty Good Privacy", Éditions O'Reilly International Thomson, 1995.

Nombre d'étudiants: 1 ou 2

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Tests de Primalité

Responsable: Christina Boura

Descriptif:

Les nombres premiers ont aujourd'hui un rôle très important dans le domaine de la cryptographie à clé publique. Le système RSA est l'exemple le plus connu de l'utilisation des nombres premiers pour chiffrer et déchiffrer des messages. Pouvoir rapidement determiner si un nombre donné est premier ou composé est d'une importance capitale afin de permettre des communications sûres et efficaces. Aujourd'hui nous connaissons plusieurs algorithmes qui permettent de répondre à cette question. Certains de ces algorithmes sont de nature deterministe tandis que d'autres sont des tests probabilistes. De même, ils existent des algorithmes qui s'appliquent à tout nombre premier et d'autres qui ne traitent que certaines familles de nombres seulement.

Travail demandé:

  • Réaliser une étude comparative des différentes tests de primalité.
  • Implémenter ces algorithmes en C, en utilisant la librairie GMP.
  • Rédiger un rapport (en utilisant le logiciel de traitement de texte LaTeX) en comparant la nature des différents algorithmes ainsi que leurs compléxités théoriques et pratiques.

Prérequis:

  • Wikipedia, http://en.wikipedia.org/‎wiki/Primality_test
  • A. Menezes, P. van Oorschot, and S. Vanstone. "Handbook of Applied Cryptography", CRC Press, 1997, http://cacr.uwaterloo.ca/hac/
  • A. Das. "Computational number theory", CRC Press, 2013.

Nombre d'étudiants: 2 ou 3

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Factorisation

Responsable: Christina Boura

Descriptif:

Plusieurs cryptosystèmes à clé publique sont basés sur la difficulté du problème de la factorisation des nombres entiers. Le but de ce projet est d'analyser, d'implementer et de comparer certaines de méthodes de factorisation que nous possédons aujourd'hui. Ces algorithmes dépendent souvent des propriétés de l'entier à factoriser ainsi que de sa taille.

Travail demandé:

  • Réaliser une étude mathématique des différentes méthodes de factorisation.
  • Implémenter ces algorithmes en C, en utilisant la librairie GMP.
  • Rédiger un rapport détaillé (en utilisant le logiciel de traitement de texte LaTeX) présentant les résultats obtenus.

Références:

  • Wikipedia, http://en.wikipedia.org/‎wiki/Integer factorization
  • A. Menezes, P. van Oorschot, and S. Vanstone. "Handbook of Applied Cryptography", CRC Press, 1997, http://cacr.uwaterloo.ca/hac/
  • A. Joux. "Algorithmic Cryptanalysis", CRC Press, 2009.

Nombre d'étudiants: 2 ou 3

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Cassage de mot de passe

Responsable: Christina Boura

Descriptif:

Aujourd'hui, l'accès au contenu de nos ordinateurs ainsi qu'à une grande quantité de services offerts sur Internet sont protégés par des mots de passe. Retrouver le mot de passe d'une tierce personne permet à l'attaquant, dans certains cas, d'espionner des données sensibles ou de profiter des services qui lui sont normalement interdits. Le but de ce projet est d'étudier certaines techniques de cassage des mots de passe et mettre en oeuvre (et probablement adapter) certains logiciels spécialisés. Par exemple, une technique de cassage connue est basée sur des tables dites "arc-en-ciel" (rainbow tables en anglais). Les étudiants seront amenés à étudier cette technique et à implementer une telle table. De plus, selon le nombre et le profil des étudiants, d'autres techniques et logiciels (comme par exemple le logiciel John the Ripper) seront analysés et mis en pratique.

Travail demandé:

  • Réaliser une étude des différentes méthodes et logiciels de cassage de mot de passe.
  • Implémenter une table arc-en-ciel pour les mots de passe protégés par une fonction de hachage.
  • Installer et utiliser d'autres logiciels permettant de récupérer un mot de passe.
  • Rédiger un rapport détaillé (en utilisant le logiciel de traitement de texte LaTeX) présentant les résultats obtenus.

Références:

  • Wikipedia, http://en.wikipedia.org/‎wiki/Rainbow_table
  • http://www.openwall.com/john/
  • P. Oechshlin. "Making a Faster Cryptanalytic Time-Memory Trade-Off", CRYPTO 2003.http://lasecwww.epfl.ch/pub/lasec/doc/Oech03.pdf

Nombre d'étudiants: 2 ou 3

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: La sécurisation des transferts réseaux avec OpenVPN

Responsable: Christina Boura

Descriptif:

Dans le monde moderne, les réseaux gouvernementaux ou ceux d'entreprises utilisent des réseaux publics pour interconnecter leurs différentes agences ou leurs divers partenaires dans le monde entier. Sécuriser ces réseaux locaux à l'intérieur des réseaux publics est aujourd'hui un enjeu d'une importance majeure. Pour résoudre ce problème, les organismes concernés mettent en place ce qu'on appelle un "réseau privé virtuel" (VPN en anglais). OpenVPN est un logiciel libre permettant de créer un réseau privé virtuel. Le but de ce projet est d'étudier cette solution de sécurité et de mettre en place un réseau privé virtuel en utilisant OpenVPN.

Travail demandé:

  • Réaliser une étude sur les réseaux privés virtuels, le logiciel OpenVPN, les principes et les protocoles sous-jacents.
  • Installer OpenVPN sous Windows et Linux et mettre en place les différentes méthodes d'authentification.
  • Rédiger un rapport détaillé (en utilisant le logiciel de traitement de texte LaTeX) présentant les tests effectués et les résultats obtenus.

Références:

  • Wikipedia, http://en.wikipedia.org/‎wiki/Virtual_private_network
  • http://openvpn.net/

Nombre d'étudiants: 2

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Développement d'un agrégateur de stockage dans le Cloud

Responsable: Stéphane Lopes (stephane.lopes@prism.uvsq.fr) et Thierry Mautor (mautor@prism.uvsq.fr)

Descriptif: Les offres gratuites de stockage en ligne sont nombreuses à l'heure actuelle (Dropbox, Google Drive, ...). Chacune de ses offres a ses propres spécificités par exemple en espace de stockage disponible. Si un utilisateur souhaite utiliser plusieurs de ces espaces de stockage, la gestion manuelle de la répartition des données sur ces espaces indépendants devient très vite fastidieuse pour lui.

Travail demandé:

L'objectif de ce projet est de réaliser un agrégateur de stockage en ligne. L'idée est de pouvoir enregistrer dans l'outil un ensemble d'espaces de stockage en ligne et d'en obtenir une vue unifiée. Le système déchargera ainsi l'utilisateur de la gestion manuelle de ces zones.

Par exemple, l'utilisateur peut souhaiter qu'un document se trouve dupliqué au minimum sur deux zones de stockage pour assurer une certaine redondance et sécurité ou qu'un document devant être partagé avec d'autres utilisateurs soit stocké sur des zones de stockage auxquelles ont accès ces autres utilisateurs. On peut également essayer de minimiser au maximum le nombre de (gros) fichiers de données fragmentés sur plusieurs espaces de stockage.

Prérequis:

Nombre d'étudiants: 2 ou 3

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Développement d'une méthode de recherche arborescente pour un jeu à 2 joueurs: application au jeu Gobblet

Responsable: Thierry Mautor, mautor@prism.uvsq.fr

Descriptif: Il s'agira tout d'abord pour les étudiants de se familiariser avec les méthodes de recherche arborescente appliquées aux jeux, en particulier la méthode alpha-beta. Dans un second temps, il conviendra d'implémenter une telle méthode pour un jeu à 2 joueurs plutôt amusant et original, mais aux règles très simples, intitulé Gobblet. Ce jeu, de genre morpion un peu sophistiqué, peut être consulté dans le bureau 306. Il sera fourni aux étudiants durant la durée du projet. Ceci impliquera en particulier de réfléchir à des fonctions d'évaluation des positions de jeu pertinentes.

Nombre d'étudiants: 2 ou 3

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Application d'une meta-heuristique à un problème particulier de coloration de graphe: le weight coloring problem

Responsable: Thierry Mautor, mautor@prism.uvsq.fr

Descriptif: Le weight coloring problem est un problème de coloration de graphe un peu original possédant des applications concrètes. Il s'agira tout d'abord de bien comprendre le problème et ses applications. Par la suite, il conviendra de développer une approche méta-heuristique (le choix de la métaheuristique est laissé aux étudiants: méthode Tabou, Recuit Simulé, Algorithme Génétique ou Colonie de Fourmis) pour la résolution de ce problème.

Nombre d'étudiants: 2 ou 3

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Simulation du mélange d'un jeu de cartes

Responsable: Pierre Coucheney

Descriptif: Un résultat célèbre affirme qu'il faut battre au moins 7 fois un jeu de cartes afin d'obtenir un bon mélange, la façon de battre les cartes étant celle dite du "riffle shuffle". L'objectif de ce projet est de vérifier ce résultat par simulation, et de tester d'autres techniques pour battre les cartes.

Travail demandé: Il s'agira de modéliser le mélange des cartes, de le simuler et d'analyser les résultats (tester l'uniformité du mélange obtenu). Le chapitre 8 du livre "Markov Chains and Mixing Times" de Levin, Peres, Wilmer servira de base.

Prérequis: Bases de simulation. Le langage de programmation est libre.

Nombre d'étudiants: 1

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Apprentissage dans les jeux stochastiques simples

Responsable: Pierre Coucheney et Yann Strozecki

Descriptif: Les jeux stochastiques simples (SSG) impliquent 2 joueurs qui déplacent un jeton sur les sommets d'un graphe en cherchant à atteindre chacun un sommet cible. Bien que simples dans ses règles, le calcul de stratégies optimales demeure difficile en général. Dans ce projet, on testera des méthodes d'apprentissage générales issues de la théorie des jeux pour calculer les stratégies optimales d'un SSG. Ce projet permettra notamment de s'initier à la théorie des jeux.

Travail demandé:

  • Comprendre les algorithmes de base pour le calcul des stratégies optimales d'un SSG.
  • Etudier quelques algorithmes d'apprentissage issus de la théorie des jeux.
  • Les implémenter dans le simulateur existant et les tester.

Prérequis: Bases de simulation. La programmation se fera en Python.

Nombre d'étudiants: 2

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Concours de Programmation SIGMOD 2014

Responsable: Benjamin Nguyen

Descriptif: Chaque année, la conférence ACM SIGMOD propose un concours de programmation en relation avec la gestion de données ouvert aux étudiants des universités du monde entier.

Travail demandé: Le sujet 2014 paraitra en janvier 2014. Pour information, le sujet de l'année dernière est disponible ici.

  • Analyse du problème et étude de l'état de l'art
  • Réalisation du prototype dans le cadre du concours SIGMOD.

Prérequis: Bon niveau de programmation. Des connaissances en mécanismes internes des SGBD et de fouille de données sont un plus.

Nombre d'étudiants:2 à 4

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Extraction de données à partir de documents scannés

Responsable: Benjamin Nguyen

Descriptif:

De nombreux services administratifs travaillent encore avec des documents papier, normalisés (CERFA). Dans le cadre de ce projet, une base de données doit être constituée à partir d'informations venant d'un CERFA particulier. Il s'agit de développer une application qui prend en entrée un document scanné, et qui remplit automatiquement la base de données.

Travail demandé:

Il n'est pas demandé de réaliser le module permettant la reconnaissance des formes, mais de faire une étude des modules libres existants, d'en choisir un (en justifiant ce choix, par exemple par une série de tests) et de l'intégrer dans le prototype que vous développerez.

La structure de la base de données correspondra directement à la structuration du formulaire (e.g. une colonne pour un champ du formulaire)

Prérequis:

Nombre d'étudiants:2

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet:Partage de fichiers 'sécurisé' sur téléphone portale

Responsable: Benjamin Nguyen

Descriptif: L'objectif est de réaliser un système de partage de fichiers 'sécurisé' permettant de transférer un fichier d'un téléphone portable (on travaillera sous Android) à un autre, en utilisant un serveur pour stocker les données, mais de manière chiffrée.

Travail demandé:

  • modélisation du protocole permettant l'échange asynchrone de données entre deux téléphones, transitant par un serveur.
  • évolution de ce protocole pour permettre un échange anonyme de données. L'utilisation d'algorithmes de routage type TOR sera nécessaire, le chiffrement de données transitant par le serveur également.
  • analyse de la sécurité du système du point de vue de l'utilisateur.
  • réalisation d'une application Android et du logiciel serveur correspondant.

Prérequis: Une connaissance sur le développement d'applications Android est un plus.

Nombre d'étudiants:2

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet:Construction et programmation d'une machine de Turing en LEGO Mindstorm

Responsable: Benjamin Nguyen

Descriptif: L'objectif est de réaliser une machine de Turing, construite à partir des plans disponibles ici, et de pouvoir la programmer. Les briques nécessaires à la programmation seront fournies.

Travail demandé:

  • Comprendre comment représenter le fonctionnement d'une machine de Turing en LEGO
  • construire la machine selon les plans (possibilité de les modifier si besoin)
  • définir un format de fichiers permettant d'écrire les programmes de la machine de Turing
  • pouvoir exécuter un programme écrit pas un utilisateur dans ce formalisme sur votre machine LEGO.

Prérequis: La connaissance des LEGO Mindstorms et des machines de Turing est un plus.

Nombre d'étudiants:2

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Auto guide indoor pour mobile

Responsable: Karine Zeitouni, Karine.zeitouni@prism.uvsq.fr

Descriptif:

Imaginez une appli sur votre smartphone qui vous géolocalise dans le plan d’un bâtiment (ex. l’université, un centre commercial ou le château de Versailles), lequel comprend des points ou des zones d’intérêt (bâtiments, amphis, salles, magasin, objet, tableau, …). Ces derniers peuvent être associés à une description statique ou dynamiques (document historique, audio-description, événements, emploi du temps,...). Votre appli peut être utilisée comme un plan interactif. L’originalité de cette appli est en plus d’être proactive en restituant automatiquement les informations des points/zones d’intérêts (sur écran ou sonores) selon le lieu où vous êtes et selon votre préférences.Fonctionnellement, l’appli est analogue en intérieur (indoor) à Google Maps, pour ce qui est de l’interaction. Mais il y a certaines différences sur lesquels nous avons un acquis et des besoins d’évolution :

  • Le GPS est souvent inopérant à l’intérieur des bâtiments, ce qui amène à utiliser d’autres moyens de localisation indoor.
  • Contrairement à Google Maps où les cartes sont chargées en temps réel, il n’y a pas de serveur distant comprenant des plans. Ceux-là sont donc accédés offline sur le mobile.
  • La détection de point d’intérêt le plus proche, le zoom et l’ouverture du document correspondant se font sans action de l’utilisateur.

Travail demandé: Pour la première différence, une solution de géolocalisation indoor originale a été développée récemment (notamment par OledComm), basée sur des réseaux qui passent par la lumière (Li-Fi). Nous avons déjà testé avec succès leur usage et le code sera fourni. L’idée sera de placer des lampes « led » particulières dans les points d’intérêt (POI). Pour ce qui est des plans, nous avons utilisé un plan 2D (ou une image) pour la démonstration. Les POI sot superposés sur le plan. Un plan de Musée et quelques tableaux et objets d’art ont été virtuellement définis comme POI, nous ont servi d’exemples. Il reste à apporter des améliorations sur le contenu, le nombre de plans et la visualisation. Une amélioration est de centrer, zoomer et orienter le plan selon l’endroit où se trouve le mobile. De plus, on doit pouvoir afficher un plan parmi plusieurs au démarrage de l’application par localisation GPS cette fois-ci (par l’appel de l’API Google). Une base de données existe pour le cas d’un musée. Les œuvres du musée étant célèbres, nous avons utilisé des services web pour chercher à la volée leur description (dans DBPedia). Le déclenchement automatique ne pose pas de problème. Il reste à étendre ce travail pour modéliser d’autres lieux comme une partie de l’université et montrer des scénarios pertinents d’usages. Enfin, un dernier besoin est de rajouter des fonctions pour annoter, sauvegarder et publier des POI et des trajectoires.

Prérequis:

  • Maitrise du développement en Java, connaissances des BD
  • Les connaissances sur Android et Base de données SQLite sont un plus Une Tablette Samsung et 2 lampes OleComm (fournies pour le test).

Nombre d'étudiants: 1 ou 2 (travail séparé possible)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sujet: Parallélisation en mémoire partagé à base de tache

Responsables: Loïc Thébault et Eric Petit

Descriptif:

Ce projet s'inscrit dans la collaboration entre le laboratoire PRISM, LRC-ITACA (UVSQ-CEA) et Dassault Aviation visant à développer de nouvelles méthodes de parallélisation des codes de conception aéronautique de Dassault Aviation afin de mieux exploiter les architectures many-core modernes [1]. Le code cible est extrait d'un outil de déformation de maillages 3D, écrit en Fortran. Ce code, déjà parallélisé en MPI, exploite un parallélisme à mémoire distribuée. Afin de tirer partie plus efficacement des ressouces de calcul à mémoire partagée, un parallélisme basé sur le concept Divide & Conquer [2] et le modèle de programmation Cilk [3] a été ajouté (en C++) au sein de chaque rang MPI.

Travail demandé: Il s'agit de migrer la partie du code écrite en C++ et exploitant Cilk vers le modèle OpenMP [4], ceci afin de rendre le code plus portable et de pouvoir comparer ces deux modèles. Le but du projet est ainsi de :

  • Réimplémenter et optimiser en OpenMP la partie du code écrite avec Cilk.
  • Mesurer et comparer les résultats obtenus aux différentes versions existantes

Prérequis:

  • Système UNIX
  • Langage C/C++
  • OpenMP
  • Bonus: Langage Fortran, Cilk et openMP

Références:

  • [1] Divide and Conquer Parallelization of Finite Element Method Assembly (envoyer mail à loic.thebault@prism.uvsq.fr pour en avoir une copie)
  • [2] http://en.wikipedia.org/wiki/Divide_and_conquer_algorithm
  • [3] http://software.intel.com/en-us/intel-cilk-plus et http://bigbozoid.free.fr/CoursMASTER1/PAP/Cours/CILK%20%28MIT%29.pdf
  • [4] https://computing.llnl.gov/tutorials/openMP/ et https://iwomp.zih.tu-dresden.de/downloads/omp30-tasks.pdf

Nombre d'étudiants: 1 ou 2

-------------------------------------------------------------------------------------------------------------------------------

Sujet: Une Application Web 2.0/Mashup pour la visualisation des donnéesdes capteurs environnementaux sur une carte géographique(Google Maps).

Responsable: Yehia Taher (yehia.taher@prism.uvsq.fr)

Descriptif: Nous assistons aujourd’hui à une explosion sans précédents des volumes des données générées par des capteurs ou des terminauxmobiles. En particulier, les Smartphones disponibles aujourd’huioffrent un accès à temps réel à une grande diversité des capteurs, y compris des capteurs GPS pour le suivi et géolocalisation de l’utilisateur, des accéléromètres pour identifier leur activité, des microphones pour mesurer le niveau de bruit sonore. En outre, un nombre croissant des capteurs externes (portables) est disponible et possible d’être intégré au Smartphone via des interfaces standard (i.e., Bluetooth). Nous intéressons en particulier aux capteurs environnementaux qui offrent une opportunité de mesurage en continue de l’exposition réelle des individus à la pollution atmosphérique et sonore. Sur le plan technique, l’ouverture des systèmes d’information via leWeb 2.0 recouvre deux grandes facettes :

  • Une facette fonctionnelle, qui voit la mise en place des nouveaux outils et usages: outils collaboratifs de création et de partage d’info, i.e., blog, wiki etc.
  • Une facette architecturale et technique, qui voit l’émergence des nouveaux outils et techniques : éditeurs de Mashups, composants AJAX, et services REST. Les Mashups sont des applications composites publiées et accessible sur les Web. Les services appelés sont des services fournis par différents sites Web. L’objectif premier d’un Mashup est d’agréger (intégrer, synthétiser) des informations provenant des différentes sources des données.
Le stage en question s’inscrit dans ce contexte et consiste à faireusage de Web 2.0 pour développer une application de type Mashupayant pour but de visualiser sur une carte géographique ou satelliteles différents degrés de pollution au niveau des communes d’un département désigné.

Travail demandé: L’étudiant sera en charge de mettre en place l’application dont la logique est décrite comme suit :

  • L'utilisateur fournit à l'application la zone géographique concernée, par exemple le département des Yvelines de la France.
  • L'application récupère la liste des capteurs présents dans le département désigné s'inscrit aux flux de données provenant de ces capteurs.
  • L'application récupère une carte (Google Maps) correspondant au département désigné.
  • L'application détermine -à partir des informations lues en continue - le niveau de pollution dans les différentes communes du département et l'affichage sur la carte sous forme des ombres de couleurs significatives (vert, orange, rouge etc).

Nombre d'étudiants: 1 ou 2

-------------------------------------------------------------------------------------------------------------------------------

Sujet: Interface web de saisie et de modification de donnée moléculaires

Responsables: Yann Strozecki et Franck Quessette

Descriptif: Dans le logiciel existant Kekule, on génère à partir de briques de bases des molécules de grande taille. Les briques de bases doivent être saisies par un utilisateur non informaticien et nécessite donc une interface intuitive. De plus cet ensemble de briques de base doit pouvoir être manipulé et modifier pour optimiser le calcul dans Kekule.

Travail demandé: Développer une interface web en php ou en javascript afin de faier la saisie, visualisation et la modification de structures moléculaires.

Prérequis: Une connaissance de php et/ou javascript est un plus.

Nombre d'étudiants: 1

-------------------------------------------------------------------------------------------------------------------------------

Sujet: Programmation d'un robot LEGO Mindstorm EV3 dans le cadre de l'enseignement de l'informatique en Licence Informatique.

Responsable: Sandrine Vial, Lise Rodier

Descriptif:

Ce projet a pour but l'étude des nouveaux modèles de robots LEGO Mindstorm EV3 dans le cadre de l'enseignement de l'informatique en Licence Informatique. L'objectif est d'étudier les différences entre les précédentes versions de robots LEGO Mindstorm et, à partir du kit de construction fourni par l'université, de concevoir un modèle adapté aux séances de travaux pratiques. A partir de ce modèle vous devrez imaginer et créer de nouveaux énoncés utilisant au mieux les capacités du EV3. Les sujets doivent être construit de manière à prendre en main progressivement le robot et le logiciel et ne nécessitant aucun prérequis que ce soit en robotique ou en programmation. Une utilisation plus poussée du robot par les étudiants sur la programmation d'une heuristique pour un problème d'optimisation est à envisager.

Travail demandé:

  • Lecture de la documentation (caractéristiques des composants, construction, langages de programmation, etc.)
  • Comparaison avec les modèles précédents
  • Création d'un modèle de robot polyvalent (modélisation de la construction via LEGO Digital Designer), d'une documentation et de supports de travaux pratiques
  • Programmation de chaque exercice avec LabVIEW
  • Utilisation plus poussée avec RobotC

Prérequis: Avoir effectué le module IN101 - Applications de l'informatique en L1 est un plus mais pas une obligation.

Nombre d'étudiants: 1 ou 2

-------------------------------------------------------------------------------------------------------------------------------

Sujet: DropBox sécurisée

Responsable: Philippe Pucheral

Descriptif: L'affaire Snowden a mis en lumière à quel point les données personnelles stockées par les grands hébergeurs de données sur le Web étaient vulnérables. L'objectif de ce projet est de construire une surcouche à un outils de partage de documents type DropBox de sorte à ne faire héberger que des documents chiffrés sans que les clés de chiffrement ne quitte le terminal de l'utilisateur.

Travail demandé:

  • Comparatif des fonctionnalités et de la sécurité de quelques outils de partage de documents (ex: GoogleDrive, DropBox, SkyDrive, OwnCloud ...)
  • développement d'un prototype permettant de stocker, organiser et partager des documents chiffrés stockés dans DropBox
  • une interface permettant de visualiser le contenu d'une 'box', de le filtrer et de régler le contrôle d'accès devra être réalisée

Nombre d'étudiants:3