Projets scolaires

Cette page vous présente quelques-uns des projets que j'ai réalisé durant mon cursus scolaire.


Master Informatique - 2ème année
Performances de la programmation multi-thread

Octobre 2008 - Février 2009
Projet de C, Java, C++ & CSharp
Projet semestriel de fin d'étude consistant à réaliser une étude des performances de la programmation multi-thread. Nous avons alors pour cela utilisé deux algorithmes (calcul du nombre de Fibonacci et multiplication de matrices) afin de comparer les temps d'exécution de différentes bibliothèques permettant de faire du calcul parallèle (Thread POSIX (C), OpenMP (C), fork(C), TBB (C++), Thread JAVA, Thread CSharp (Mono)), sur différents systèmes (Linux/Windows) et différents processeurs (Core2Duo, P4 Hyperthreading, Xeon Bi-Proc Quad-Core). Nous avons aussi réalisé une étude des techniques de synchronisation disponible dans chaque langage.

Téléchargements :
Sujet du projet de multi-threading (6500 hits)
Rapport du projet de multi-threading (8247 hits)
Soutenance du projet de multi-threading (7315 hits)
Fichiers sources des tests (5992 hits)

Capture d'écran :

Programmation d'applications distribuées (1)

Octobre 2008 - Février 2009
Projet de Java, EJB3, JBoss, LDAP & MySQL
Projet consistant à réaliser un gros projet divisé en 4 sous-projets avec 16 personnes. Le projet consistait en trois modules fonctionnant en WebService : système d'authentification via LDAP avec gestion de droits, gestionnaire de version et conversion de fichier. Les modules étaient alors contrôlés via une interface graphique en Eclipse RCP. Les technologies utilisées pour réaliser les WebService furent EJB3 sous JBoss. J'ai occupé le rôle de chef de la partie gestion des droits.

Capture d'écran :



Autre(s) :

Programmation d'applications distribuées (2)

Décembre 2008 - Février 2009
Projet de Java, EJB3, JSP, Servlet, JBoss & MySQL
Projet consistant à réaliser avec un groupe de 16 personnes, un jeu de rôle en ligne de type Warcraft fonctionnant sous JBoss avec EJB3, en utilisant une base de donnée MYSQL. Utilisation de la technologie de persistance des données pour accéder à la base de données. J'ai occupé le rôle de chef de projet en binôme avec un camarade.

Capture d'écran :

Traitement d'images en distribué

Octobre 2008 - Février 2009
Projet de Java RMI & Swing
Projet réalisé en binôme dans le cadre du cours d'algorithmes distribués, consistant à créer un anneau de serveurs effectuant le traitement d'une image parmis différents filtres. Un client envoi l'image qu'il veut traiter à un serveur. Ce dernier découpe l'image reçu en morceaux de 400x400 pixels et envoie les morceaux d'images sur l'anneau via des jetons. Lorsqu'il recoit un jeton, un serveur effectue le traitement si les 2 à 4 threads de traitement qu'il possède ne sont pas occupés, sinon le jeton et envoyé au serveur suivant. Lorsque le traitement du morceau d'images est fini, il est renvoyé au client qui reconstruit l'image au fur et à mesure. Enfin, la plate-forme de calcul peut être arrêté suivant l'algorithme de Safra afin de s'assurer de la fin de tout les traitements en cours.

Téléchargements :
Rapport du projet de traitement d'images en distribué (6057 hits)
Fichiers sources du projet de traitement d'images en distribué (5834 hits)

Capture d'écran :

Calcul de l’ensemble de Mandelbrot en calcul distribué

Janvier 2009 - Février 2009
Projet de C & MPI
Ce projet consistait à réaliser le calcul de l’ensemble de Mandelbrot en calcul distribué en utilisant la bibliothèque MPI en C. Cet ensemble est un calcul permettant de dessiner des fractales. Ce calcul a été mis en oeuvre sous trois formats : calcul séquentiel, calcul parallèle à équilibrage de charge statique et calcul parallèle à équilibrage de charge dynamique. A partir de là, une courte étude comparative sur les performances des trois méthodes nous étaient demandés.

Téléchargements :
Rapport du projet de calcul de l’ensemble de Mandelbrot (8461 hits)
Fichiers sources du projet de calcul de l’ensemble de Mandelbrot (6193 hits)

Capture d'écran :

Serveur de certificats

Octobre 2008 - Décembre 2008
Projet de C, JAVA, Corba, JMS
Le but de ce projet est d'avoir un serveur Java qui délivre des certificats X509 à deux clients, disposant de clés, pour permettre à ces derniers d’établir une connexion sécurisée et authentifiée. Cet échange ne se fait pas directement mais plutôt à travers un relais qui permettra la communication entre C et Java via Corba.

Téléchargements :
Sujet du projet de serveur de certificats (5373 hits)
Rapport du projet de serveur de certificats (5595 hits)
Fichiers sources du projet de serveur de certificats (5369 hits)

Capture d'écran :



Master Informatique - 1ere année
Siam

Avril-Mai 2008
Projet de C & Java Jasper & Sicstus Prolog
Projet d'un jeux de Siam avec une intelligence artificiel. Le projet consistait d'une part à implémenter un protocole de communication avec un arbitre en C pour pouvoir jouer à plusieurs. Puis d'autre part, utiliser le langage Prolog pour réaliser une IA permettant de générer un coup à jouer à chaque tour. L'interface entre le Prolog et le client du joueur en C et réaliser grâce à la librairie Jasper en Java (communication via des sockets).
Ce projet avait aussi pour but de réaliser un tournoi entre les projets de chacun des étudiants de la promo. Le travail que j'ai réalisé m'a permis de remporter ce tournoi parmi une vingtaine de projet.


Téléchargements :
Règles du jeu de Siam (6903 hits)
Fichiers sources du jeu de Siam (5743 hits)

Capture d'écran :

Compilateur MiniJaja

Novembre-Décembre 2007
Projet de Java
Projet d'un compilateur réalisé à partir de la grammaire du langage MiniJaja. Projet commencé à 6, mais terminé à 3 n'est donc pas complet. Il comporte seulement le compilateur MiniJaja (annalyse syntaxique, contrôle de type...) qui génére du code executable appelé JajaCode, et aussi un interpréteur de Jajacode qui permet d'executer le code compilé. La gestion du tas n'est pas fonctionnelle donc impossible de créer des tableaux dans le code MiniJaja.

Téléchargements :
Grammaire du langage MiniJaja (6453 hits)
Support du cours de compilation (6757 hits)
Fichiers sources du projet de compilation MiniJaja (6003 hits)

Capture d'écran :



Licence Informatique - 3ème année
Dames chinoises

Janvier-Février 2007
Projet de C++
Un jeu de dames chinoises en console. Jouable de 2 à 6 joueurs avec une mini intelligence articielle. Ecrit avec Visual C++, fonctionne sous windows.

Téléchargements :
Fichiers sources du jeu de dames chinoises (5935 hits)
Fichiers executables du jeu de dames chinoises (5775 hits)

Capture d'écran :



IUT Informatique - 2ème année
Créateur de listes chaînées

Mars 2006
Projet de Java & Swing
Programme JAVA permettant de créer, modifier, supprimer les différents types de liste chainée (doublement chainée, circulaire, pile, file...) dans une fenètre graphique Swing.

Téléchargements :
Fichiers sources du créateur de listes chaînées (5808 hits)

Capture d'écran :



IUT Informatique - 1ère année
Mini-Basket

Mai 2005
Projet de C/C++ & Graphlib
Un genre de jeu de basket où l'on doit envoyé la balle dans un panier en évitant un obstacle. Utilise la librarie graphique Graphlib donc ne fonctionne que sous linux avec X11.
Requiert: libx11-dev et g++ pour compiler.


Téléchargements :
Fichiers sources du Mini-Basket (5759 hits)
Fichiers executables du Mini-Basket (6734 hits)

Capture d'écran :

Jeu du Pendu

Décembre 2004
Projet de C/C++
Un jeu du pendu entre deux joueurs en mode console écrit en C/C++. Réalisé sous Linux, peut facilement être adpaté pour fonctionné sous windows en changeant quelques commandes systèmes dans les sources.

Téléchargements :
Fichiers sources du jeu du pendu (5999 hits)
Fichiers sources du jeu du pendu (5714 hits)
Fichiers executables du jeu du pendu (5832 hits)

Capture d'écran :