Spécial : Licence & Master

 

Sujets de licence 

Environnement multimodal de programmation pour un langage orienté vers le calcul sur les collections

Vers un Implémentateur de types abstraits

Sujets de master 

Vers une exploration multidimensionnelle des tweets pour l’analyse comportementale des populations.

Utilisation des SDDS pour le stockage et l’interrogation en temps réel des données sismiques.

 

 


 

SUJET Environnement multimodal de programmation pour un langage orienté vers le calcul sur les collections
PRÉSENTÉ PAR ZEGOUR Rachida & AMZAL Hanane & BOUKELLOUZ Wafa

Il s’agit de développer un environnement  multimodal de programmation offrant à l’utilisateur les  fonctions minimales pour le déploiement d’applications telles que l’édition, la compilation et l’exécution de programmes.

Nous considérons un langage simple de programmation dédié pour le calcul sur les collections. Ces dernières sont tout simplement des ensembles de nombres.

Le travail comporte deux parties.

La première partie est technique et consiste à :

- Concevoir un langage simple pour le calcul sur les collections et donc à définir la grammaire correspondante (grammaire)

- Ecrire le compilateur associé (interpréteur) et donc à réaliser les phases lexicale, syntaxique et sémantique. Une forme intermédiaire (structure de données) est générée pour qu’elle soit interprétée.

La seconde partie concerne l’interface et consiste à concevoir un environnement  multimodal dans lequel la parole est prédominante  permettant au moins  l’édition, la compilation et l’exécution des programmes  écrits  dans le langage considéré.

Nous utiliserons la technologie X+V  (langage de balisage combinant Xhtml et Voicexml)  et  l’outil SAPI  d’IBM pour réaliser l’application multimodale projetée.

 

Grammaire du langage ( BNF étendue)

Les symboles entre " désignent des terminaux . Les symboles entre < et > désignent des non terminaux. Les symboles {, }, (,  ), [ et ] sont des méta symboles exprimant respectivement une répétition, un choix et une option.

<Pg>            ::=  { <instr> " ;" }*

<Inst>          ::=  <Aff> | <Write> | <Read>

<Aff>           ::=  "Idf"  "="  <Exp>

<Read>         ::= "Read"  "Into" "Variable"  "Idf"  | "Read"  "Into"  "Collection"  "Idf"

<Write>        ::=  "Write"  [ "Chaine de caractères" ] <Exp>

<Exp>          ::=  <Terme> { ( "+" | "-" | "Union" | "Diff") <Terme> }* 

<Terme>      ::=  <Facteur>{ ( "*" | "/" | "Inter") <Facteur>}*

<Facteur>   ::=   "Idf"  | "Cste" | "(" <Exp> ")" | <Fonct> |"["  {  ( "Cste" | "Idf" |

                              "Random" ) }* "]"

<Fonct>      ::=    "Sum"  "("  "Idf"  ")" | "Mult"  "("  "Idf"  ")" |

                              "Average" "("  "Idf"  ")" | "Random"

 

Sémantique en langage naturel

- Un programme est un ensemble d’instructions.

- Une instruction peut être une affectation, une lecture ou une écriture.

- Une lecture introduit une donnée dans une variable ou plusieurs données dans une collection. Dans le dernier cas, les données sont séparées par des virgules et terminés par un #.

- Une écriture restitue ou affiche une expression. Cette dernière peut être précédée  d’un message (chaine de caractères).

- Le langage manipule les collections et les variables simples.

- Les collections et les variables ne sont pas définies de manière explicite (pas de déclaration). La première utilisation définit le type.

- Une collection est un ensemble de nombres (entiers ou réels).

- Une  expression peut porter uniquement sur des variables simples et constantes (expression simple). Ex : A+5 ; 5-3 +2

- Une  expression peut porter uniquement sur des collections. Ex : A+[3, 8, 9] ; [6, 9, 12, 5] – [5]

- Une  expression peut porter  sur des collections, des  variables simples et constantes (expression complexe). Ex : 24 + [32, 7, 0, 45] ; 5*[2, 5] Union 32+ [34, 78]

- Les fonctions Sum, Mult et Average ont comme argument des collections et retourne des nombres.

- La fonction Random génère un nombre aléatoire compris entre 0 et  106-1.

-  Entre collections, + et  - sont équivalents  à Union et Diff respectivement. 

- une opération (+, -, *, / ) entre un nombre et une collection donne une collection. Ex : 5 * [3, 2, 0] donne [15, 10, 0]

 

Exemples de programmes : 

P1 : Read  into Collection A ; Read into Collection B ; Write A + B ;

P2 : Read  into Collection A ; Read into Variable B ; Write A + B ;

P3 : Read  into Collection A ; Write Sum(A) ;

P4 : Read  into Collection A ; C = A Union [3, 4, 7] ;Write  "Le résultat est " C ;

 
top vers la page ENCADREMENT

 


 

SUJET Vers une exploration multidimensionnelle des tweets pour l’analyse comportementale des populations
PRÉSENTÉ PAR ZEGOUR Rachida  & LAHBIB Manel

Twitter est l’un des réseaux sociaux le plus utilisé dans le monde.  C’est un service offrant un nouveau mode de communication utilisant de courts messages rapides et fréquents n’excédant pas les 140 caractères. Ces derniers, appelés tweets, sont consultables sur la recherche Twitter.  Selon les chiffres officiels récents de Twitter, 500 millions de tweets sont postés chaque jour, soit un débit de  5787 par seconde.

 

Il s’agit de réaliser une interface pour exploiter au maximum le journal des tweets afin d’extraire à la demande toutes les informations désirées et de les mettre en forme pour une prospection  postérieure. De plus, l’interface est dotée de mécanismes de recherche d’information et de datamining permettant l’analyse des tweets préalablement répartis en classes dans le but d’étudier leurs centres d’intérêts.

 

Le système projeté aura ainsi plusieurs paramètres, un par dimension:

- Langue : définir une partition sur les tweets

- Région : définir une zone géographique

- Thématique : définir un filtre sur les tweets

- Temps : définir une période

- Etc.

 

Techniquement,  les taches suivantes sont à réaliser :

- Récupération des tweets désirés et leur répartition en classes

- Stockage des tweets en temps réel ( Fichier plat, Xml, table relationnelle (mysql ou postgres), table orientée colonne (NoSQL), etc.)

- Analyse des tweets  par les algorithmes de datamining (K-means, classification, etc.).

L’accent portera essentiellement sur :

 - un clustering des tweets pour montrer les thématiques de tweets postés par les utilisateurs et de dresser  les différences et les similitudes  dans leurs centres d'intérêts.

- des statistiques par rapport au nombre total de tweets, au nombre total d'utilisateurs, aux personnes les plus actives,  aux tweets les plus retweetés, aux  hashtags  (mot-clés précédés du caractère #), etc

 

Une mise en forme est aussi souhaitable pour mettre les résultats sous forme de documents PDF, XML, etc.

L’implémentation peut se faire avec  PHP (ou Python), MYSQL et des API pour la gestion des tweets.

Un environnement de développement intégré tel que NetBeans (sous Windows ou Linux) est nécessaire pour la réalisation de l’interface.

L’accès aux serveurs Twitter est  indispensable pour la réalisation du système projeté.

 

Exemple 1:

Paramètres du système:

- Langue : tweets en Anglais, Français et Arabe

- Région : Alger

- Thématique : Bouteflika.

Question: Comment réagissent (en temps réel)  les trois catégories d’utilisateurs (francophones, anglophones et arabophones) de la wilaya d’Alger sur le président Bouteflika?

 

Exemple 2:

Paramètres du système:

- Langues : tweets en français 

- Région : Maghreb

- Thématique : Gaza

- Période : Juillet 2014

Question: Comment ont réagi les personnes (francophones) de la région du Maghreb sur la bande de Gaza  durant le mois de juillet 2014 ?

 

Etc.

top vers la page ENCADREMENT

 

 

 

SUJET

Vers un Implémentateur de types abstraits

PRÉSENTÉ PAR ZEGOUR Hakima  & AMIROU Djahida

Le travail s’insère dans le domaine de la compilation.

Il s’agit dans un premier temps de concevoir et définir un langage indépendant de tout langage de programmation permettant de combiner  et composer les types abstraits, puis dans un deuxième temps implémenter les expressions du langage conçu vers les langages de programmation les plus utilisés. Nous considérerons comme langages cibles  un langage classique (C), un langage objet (Java) et un langage de production de pages Web dynamiques ( Php).

Prévoir des programmes généraux de tests.

Une interface textuelle, graphique et vocale est aussi à prévoir.

Exemple :

En entrée (sous forme textuelle, graphique ou vocale)

Arbre de listes d’entiers.

Pile de chaines de caractères.

File d’attente de (chaine de caractères, entier )

Liste de files d’attente de (chaine de caractères, arbre de listes de tableaux (5, 15))

En sortie :

- Traduction en C, Java et PHP.

- Génération d’un programme permettant de tester les résultats de la traduction.

Travail technique

- Utiliser Lex et Yacc pour générer l’analyseur syntaxique. Introduire des fonctions sémantiques pour générer la traduction vers le langage cible.

- Concevoir l’interface

Limitations Licence

- Commencer par un langage simplifié.

- Aller vers C.

top vers la page ENCADREMENT

 

 

 

SUJET

Utilisation des Structures de Données Distribuées et Scalables (SDDS) pour le stockage et l’interrogation  des données sismiques en temps réel

PRÉSENTÉ PAR ZEGOUR Hakima  & MAOUCHI Hiba
Plus de 8000 séismes sont recensés chaque mois  à travers le monde. Plusieurs sites Web reliés aux grands centres de recherche américains publient périodiquement des données sismiques.

Il s’agit de concevoir et réaliser un système capable dans un premier temps de récupérer en temps réel les données sismiques enregistrées dans tout le globe terrestre et de les stocker dans une structure de données distribuées à scalabilité limitée SDDSL (ensemble de serveurs). Dans un deuxième temps, le système analyse périodiquement les données figurant dans sa base de données pour les envoyer vers des observateurs (ensemble de clients).
De plus, les observateurs pourront lancer des requêtes sur toute la base et dresser des statistiques.


Informations  sur la SDDSL:
Au départ, un seul serveur est alloué. Donc tous les données y sont stockés. Quand le serveur devient plein, il est éclaté en deux, créant ainsi un deuxième serveur.
A chaque fois qu’un serveur devient plein, il donne naissance à un autre serveur. Ce processus continue jusqu’à M serveurs ( M désigne le nombre maximal de serveurs disponibles). Ceci assure donc la scalabilité.
A un moment donné, les données sont alors stockés dans un serveur choisi aléatoirement parmi les serveurs existants.
Quand un serveur est saturé et il n’y a plus de serveurs disponibles, les données arrivantes remplaceront les plus anciennes. Ceci limite donc la scalabilité.

Aspect recherche
L’aspect recherche réside dans le stockage des données dans le réseau. Le stockage est fondé sur le concepts des SDDS ( Structures de données distribuées et scalable) caractérisées par les propriétés suivantes : distribution des données du fichier sur plusieurs serveurs, absence d'un serveur central (répertoire) et scalabilité . Cette dernière stipule que les performances ne se dégradent pas quand les données stockées deviennent volumineuses.
Tâches à réaliser :
Récupération des données en temps réel figurant sur le site
Stockage des données en temps réel dans une structure de données distribuées et à scalabilité limitée.
Mise en forme et redirection des données vers les observateurs
Formulation des requêtes sur la base de données
 

Outils
L’implémentation peut se faire avec Java et JavaScript pour récupération des données en temps réel.
 Un environnement de développement intégré tel que NetBeans (sous Windows ou Linux) est nécessaire pour la réalisation des interfaces.
La programmation des threads est exigée pour la mise en place de la SDDSL.
L’accès au site hébergeant les données sismiques est indispensable pour la réalisation du système projeté.

 

top vers la page ENCADREMENT