Archives de la catégorie : Enseignement

Projet UML/Java : Ring

Guerrière

L’objectif du projet consiste à proposer un modèle UML d’une petite application permettant de mettre en œuvre des combats entres deux personnages, puis de proposer une implémentation en Java de cette application.

Les combattants peuvent être de trois types : guerrier, athlète ou magicien. Tous les combattants du jeu sont caractérisés par un nom, une force physique, une dextérité, une intelligence, une capacité de concentration, une vitalité et une expérience.

Ce projet a été donné aux étudiants de 1ère année du DUT informatique dans le cours d’UML en mai 2011.

Publié dans Enseignement | Tagué | 11 commentaires

Projet GL : Cohérence des tags ID3 de fichiers musicaux

ID3 est le nom des métadonnées pouvant être insérées dans un fichier audio (comme les fichiers mp3, ogg,…). Ces métadonnées permettent d’avoir des informations sur le contenu du fichier comme le titre, le nom de l’interprète, ou encore le genre.

L’objectif du projet consiste à développer une application d’assistance à la restauration de la cohérence de l’ensemble des tags ID3 des fichiers musicaux se trouvant dans un dossier donné.

Ce projet a été donné aux étudiants de 2ème année (semestre 4) du DUT informatique dans le cours de projet GL en octobre 2008 et 2009.

Publié dans Enseignement | Tagué | Laisser un commentaire

Projet UML/Java : Dilemme Itéré des Prisonniers

Le dilemme du prisonnier est un des plus célèbres exemples de la théorie des jeux. Il vise à estimer les bénéfices des stratégies de coopération. Les règles sont simples et partent de la petite histoire décrite ci-dessous dont le jeu tire son nom.

Deux suspects porteurs d’armes ont été arrêtés devant une banque et mis dans deux cellules séparées. Les deux prévenus ne peuvent pas communiquer et doivent choisir entre avouer qu’ils s’apprêtaient à commettre un hold-up ou ne rien avouer. Les règles que le juge leur impose sont les suivantes :

  • si l’un avoue et pas l’autre, celui qui avoue sera libéré en remerciement de sa collaboration et l’autre sera condamné à cinq ans de prison ;
  • si aucun n’avoue, ils ne seront condamnés qu’à deux ans de prison, pour port d’arme illégal ;
  • et si les deux avouent, ils iront chacun faire quatre ans de prison.

Lorsque le jeu est joué une seule fois, l’attrait de la dénonciation est très fort bien que la coopération soit la meilleure solution pour les deux joueurs. A défaut de connaître les intentions de l’autre, la dénonciation est souvent le premier choix. Mais en faisant jouer plusieurs fois de suite les mêmes joueurs, on commence à voir des stratégies comportementales se dessiner, chacun gardant la mémoire des choix précédents.

Ce projet a été donné aux étudiants de 1ère année du DUT informatique dans le cours d’UML en décembre 2007.
L’objectif du projet consiste à proposer un modèle UML d’une petite application permettant de mettre en oeuvre des tournois de stratégies jouant au Dilemme Itéré des Prisonniers, puis de proposer une implémentation en Java de cette application.

Publié dans Enseignement | Tagué | Laisser un commentaire

Projet UML : Système d’information d’une bibliothèque

L’objectif du projet consiste à proposer un modèle du système informatique d’une bibliothèque. Actuellement, la bibliothèque en question n’en possède pas et ne travaille qu’avec des notices et des fiches papier.

Ce projet a été donné aux étudiants de 1ère année du DUT informatique dans le cours d’UML en décembre 2006.

Publié dans Enseignement | Tagué | 1 commentaire

Projet C : Conway’s Game of Life

Conway’s Game of Life est un projet a réaliser en C en mode texte. Il consiste en une implémentation de l’automate cellulaire imaginé par John Horton Conway. Le principe est simple. Sur une grille théoriquement infinie (appelée plan de Conway), les cases représentent des cellules vivantes ou mortes. À chaque étape, l’évolution d’une cellule est calculée en fonction de l’état de ses huit voisines.

Ce projet a été donné aux étudiants de 1ère année du DUT informatique dans le cours Bases de la programmation le 29 janvier 2008.

Publié dans Enseignement | Tagué | Laisser un commentaire

Traitement Automatique du Langage Naturel (TALN) : Outils d’analyse de données textuelles

Le Traitement automatique du langage naturel (TALN) ou Traitement automatique des langues (TAL) est une discipline à la frontière de la linguistique, de l’informatique et de l’intelligence artificielle, qui concerne l’application de programmes et techniques informatiques à tous les aspects du langage humain [Wikipedia].
Dans le cadre du Master Informatique 2ème année, spécialité Modélisation Informatique des Connaissances et du Raisonnement (MICR), de L’École Doctorale Galilée, je dispense un cours sur les Outils d’analyse de données textuelles.
Le plan du support de cours de la première séance est :
  1. Introduction au Traitement Automatique du Langage Naturel
  2. Niveaux de traitements et principaux outils
  3. Plateformes d’annotations linguistiques
  4. Apache UIMA
Voici quelques sites rassemblant ou inventoriant des outils pour le TALN :
Pour compléter cette liste, voici quelques réservoirs de composants UIMA :
Publié dans Enseignement, UIMA, TALN | Laisser un commentaire

Livre : UML 2 – de l’apprentissage à la pratique

UML 2 - de l'apprentissage à la pratique Enseignant à l’institut universitaire de technologie de l’Université de Paris 13, lorsque le cours d’UML m’a été confié, j’ai dû rechercher dans la volumineuse bibliographie UML un support de cours adéquat. Les ouvrages pédagogiques concernant le langage UML sont nombreux et de qualité très inégale, mais je n’ai pas eu à chercher bien loin puisque mon collègue et ami Aomar Osmani avait coécrit un support de cours d’une grande qualité (UML2, Charroux, Osmani et Thierry-Mieg, 2005). Cependant, cet ouvrage ne me convenait pas parfaitement. Il ne couvrait pas l’ensemble de la matière que je voulais enseigner et ne répondait pas à toutes mes interrogations. C’est pourquoi j’ai entrepris la rédaction de ce support, qui, de révision en révision est est devenu cet ouvrage édité dans la collection Info+ des éditions Ellipses sous le titre UML 2 – de l’apprentissage à la pratique.
L’objectif de ce livre est d’offrir une approche progressive, rigoureuse et pédagogique du langage de modélisation UML, et d’aborder des problématiques connexes comme celle des patrons de conception (design patterns en anglais) et des processus de développement logiciel mettant en œuvre le langage UML. Cet ouvrage propose également une analyse critique et pointue de certains choix de modélisation. Vous trouverez enfin dans ce livre une série de travaux dirigés accompagnés de corrigés complets et détaillés, élaborés pour permettre un apprentissage progressif et méthodologique des principales notions du langage UML.
Ce livre de 298 pages est composé de 10 chapitres décrits ci-dessous.
  1. Introduction à la modélisation objet – Ce chapitre introductif aborde la problématique du génie logiciel et de la modélisation, les différents cycles de vie d’un logiciel, les différences qui opposent la programmation structurée à l’approche orientée objet, puis les concepts fondamentaux de la pensée objet avant de présenter brièvement le langage de modélisation UML et ses différents diagrammes.
  2. Diagramme de cas d’utilisation et notions transversales d’UML – Ce chapitre commence par aborder des notions transversales du langage UML, avant de détailler les éléments constitutifs d’un diagramme de cas d’utilisation. Ces diagrammes permettent la modélisation des besoins des utilisateurs. La dernière section propose des conseils concernant leur élaboration.
  3. Diagramme de classes – Le diagramme de classes est considéré comme le plus important de la modélisation orientée objet. Ce chapitre présente, dans un premier temps, les notions fondamentales qui régissent les diagrammes de classes, puis détaille les classes et les relations, avant d’aborder les interfaces. Le chapitre traite ensuite de la problématique des diagrammes d’objets avant d’aborder l’implémentation d’un diagramme de classes, et plus précisément sa traduction en Java ou en SQL.
  4. Langage de contraintes OCL – L’objectif de ce chapitre est de permettre la spécification de contraintes sur des éléments de modèle. Ce chapitre présente tout d’abord comment les contraintes s’expriment en UML, puis détaille le langage OCL (Object Constraint Language en anglais) qui permet d’exprimer des contraintes complexes dans les diagrammes UML en général, mais plus particulièrement dans les diagrammes de classes.
  5. Diagramme d’états-transitions – Un diagramme d’états-transitions permet de spécifier de manière exhaustive et non ambigüe, à l’aide d’un automate à états finis, l’ensemble des comportements d’une instance d’un classeur. Cette modélisation est utilisée pour représenter et mettre en forme la dynamique du système.
  6. Diagramme d’activités – Un diagramme d’activités permet de mettre l’accent sur les traitements et est particulièrement adapté à la modélisation du cheminement de flots de contrôle et de flots de données.
  7. Diagramme de structures composites et diagrammes d’interaction – Les diagrammes d’interaction permettent d’établir un lien entre les diagrammes de cas d’utilisation et les diagrammes de classes en montrant comment les objets collaborent pour réaliser une certaine fonctionnalité. Le diagramme de structures composites permet de modéliser le contexte particulier d’exécution dont les diagrammes d’interaction cherchent à modéliser la dynamique.
  8. Diagrammes de composants et diagrammes de déploiement – Ces diagrammes, qui constituent les deux derniers types de vues statiques en UML, permettent respectivement de décrire le système modélisé sous forme de composants réutilisables en mettant en évidence leurs relations de dépendance, et d’identifier les éléments matériels et leur disposition physique.
  9. Patrons de conception (Design Patterns) – Un patron de conception est une solution de conception commune à des problèmes récurrents dans un contexte donné. Les patrons de conception sont désormais inévitables dès qu’il est question de technologie orientée objet. L’objectif de ce chapitre est de montrer leut intérêt à travers la présentation de quelques patrons incontournables (5 patrons GRASP, 6 patrons du GoF puis 4 autre patrons incontournables).
  10. Mise en œuvre d’UML – UML n’est qu’un langage de modélisation, ce n’est pas une méthode. La première section de ce chapitre est justement consacrée à la présentation des principales méthodes issues des meilleures pratiques de l’ingénierie logicielle : le Processus Unifié (UP, RUP), Scrum et XP. Les sections suivantes détaillent une méthode simple et générique, située à mi-chemin entre UP et XP.
Cet ouvrage est naturellement destiné aux étudiants en informatique qui suivent un cursus comportant du génie logiciel, de la modélisation UML ou de la programmation objet, aux professeurs désirant s’appuyer sur un support de cours précis et complet, ou encore aux professionnels informaticiens utilisant UML dans leurs projets.
Publié dans Livres, Enseignement | 11 commentaires

Nouvelles du cours d’UML 2

Ce billet est l’alter ego de celui déjà publié concernant le cours de Bases de Données et langage SQL. Le cours d’UML hébergé chez Developpez.com se porte très bien. Depuis sa mise en ligne en janvier 2007, il totalise plus 1 085 000 pages consultées au jour de l’écriture de ce billet. Le flux moyen sur 2009 est de 1500 pages par jour. Cet intérêt m’a donné la motivation nécessaire pour continuer mon effort afin d’améliorer significativement ce support de cours. Cette nouvelle version est éditée ce mois-ci dans la collection Info+ des éditions Ellipses. J’en parlerai prochainement dans un nouveau billet.
Je tiens à remercier les éditions Ellipses pour m’avoir autorisé à conserver la première ébauche en ligne sur le site Developpez.com.
Voici ce que la version publié apporte par rapport à la version en ligne chez Developpez.com :
  • De nombreuses améliorations (corrections, illustrations, exemples…). En fait, seulement 20% de la version éditée se retrouve à l’identique dans la version en ligne.
  • De nouvelles notions (Design Patterns, introduction aux principales méthodes de développement, diagramme de structures composites…). La version éditée est pratiquement 2 fois plus volumineuse que la version en ligne (en nombre de phrases et en nombre de figures).
  • Des séances de travaux dirigés et de travaux pratiques accompagnées de corrigés complets et détaillés.
  • Une présentation bien plus agréable sous la forme d’un vrai livre.
Publié dans Enseignement | Laisser un commentaire

Livre : Bases de données – de la modélisation au SQL

Bases de données - de la modélisation au SQL Enseignant à l’institut universitaire de technologie de l’Université de Paris 13, lorsque le cours de Bases de données m’a été confié, j’ai dû rechercher dans la volumineuse bibliographie sur les Bases de données un support de cours adéquat. Les ouvrages traitant correctement de la conception des bases de données, en utilisant le modèle entités-associations, ne sont pas si nombreux et datent souvent de l’époque Merise. En plus de la conception, je souhaitais aborder l’algèbre relationnelle, puis le langage SQL et enfin les déclencheurs. Chacune de ces parties devait être ponctuée de séances d’exercices sous forme de travaux dirigés ou de travaux pratiques. J’ai donc entrepris la rédaction d’un support de cours sur mesure, qui, de révision en révision, est devenu cet ouvrage édité dans la collection Info+ des éditions Ellipses sous le titre Bases de données – de la modélisation au SQL. Ce livre de 255 pages est composé de 5 chapitres décrits ci-dessous.
  1. Introduction aux bases de données – L’objectif de ce court chapitre est d’introduire la problématique des bases de données : définition de la notion de bases de données, principaux modèles de bases de données, systèmes de gestion de bases de données (SGBD).
  2. Conception des bases de données : le modèle entités-associations – Ce chapitre explique comment bien concevoir une base de données. Après une description des éléments constitutifs du modèle entités-associations, la notion de type-association est détaillée, puis un éventail méthodologique des règles qu’il est utile d’appliquer pour l’obtention d’un modèle bien formé est ensuite présenté. La problématique de la normalisation des type-entités et des type-associations est ensuite abordée avant de discuter de l’adéquation des type-associations n-aires.
  3. Modèle de données relationnel – Ce chapitre commence par une présentation du modèle relationnel, puis décrit le moyen de passer d’un modèle entités-associations à un modèle relationnel. La théorie de la normalisation, qui constitue un précieux outil pour débusquer la redondance dans les bases de données, est ensuite présentée en détail. Le chapitre aborde enfin l’algèbre relationnelle qui constitue le formalisme support du langage de requête de SQL.
  4. Langage SQL – Ce chapitre est entièrement consacré au langage SQL qui est considéré comme le langage d’accès normalisé aux bases de données relationnelles. La création et la manipulation de la structure de la base de données sont traitées en premier. Les commandes SQL d’insertion, de suppression et de modification des données sont ensuite abordées. Puis, deux sections sont entièrement consacrées à la commande d’interrogation d’une base de données. La dernière section s’intéresse à la description de quelques objets particuliers.
  5. Programmation SQL – L’objet de ce chapitre est de présenter comment combiner des commandes élémentaires SQL avec un langage de programmation. Le premier objectif est l’implémentation de fonctionnalités complexes au niveau du SGBD grâce aux fonctions utilisateur. Ces fonctions sont ensuite utilisées pour implémenter des comportements complexes et dynamiques en utilisant le mécanisme des déclencheurs, rendant ainsi la base de données active.
    Le second objectif est l’interaction entre un programme et un SGBD abordé en décrivant comment intégrer des commandes SQL à un programme écrit en langage C.
Ce livre, comportant de nombreux exercices corrigés, s’adresse à toute personne désirant se former à la problématique des bases de données.
Publié dans Livres, Enseignement, Base de données | Tagué | 28 commentaires

Nouvelles du cours Bases de Données et langage SQL

Le cours Bases de Données et langage SQL hébergé chez Developpez.com se porte bien. Depuis sa mise en ligne en 2007, il totalise plus 441000 pages consultées, soit de l’ordre de 500 consultations par jour.
Cet intérêt m’a donné la motivation nécessaire pour continuer mon effort afin d’améliorer ce support de cours. Cette nouvelle version est éditée ce mois-ci dans la collection Info+ d’Ellipses. J’en parlerai prochainement dans un nouveau billet.
Je tiens à remercier les éditions Ellipses pour m’avoir autorisé à conserver la première ébauche en ligne sur le site Developpez.com.
Cette version en ligne est actuellement en cours de mise à jour. Je ne peux y apporter que peu de modifications pour ne pas faire ombrage à la version publiée. J’ai donc corrigé quelques erreurs, supprimé les sujets d’exercices (ils n’ont que peu d’intérêt sans la correction) et retaillé les images.
Voici ce que la version publié apporte par rapport à la version en ligne chez Developpez.com :
  • De nouvelles notions (spécialisation, lien identifiant, validité d’un type association n-aire, agrégat, fonctions et opérateurs SQL, fonctions utilisateur, langage PL/pgSQL, déclencheurs…). La version éditée est 2,5 fois plus volumineuse que la version en ligne (en nombre de phrases et en nombre de figures).
  • Des séances de travaux dirigés et de travaux pratiques accompagnées de corrigés complets et détaillés.
  • De nombreuses améliorations (corrections, illustrations, exemples…). En fait, seulement 10% de la version éditée se retrouve à l’identique dans la version en ligne.
  • Une présentation bien plus agréable sous la forme d’un vrai livre.
Publié dans Enseignement, Base de données | Laisser un commentaire