TC101E : Algorithmique CAML avec pré requis


Retour
Imprimer la fiche programme
Code analytique: EDOTCG101
Responsable  : Daniel BOURGET   
Programmé en UVTC101, UVTC101

Présentation :

Le but de ce module est de présenter, en prenant en compte les connaissances acquises en classe préparatoire en option informatique, un ensemble de techniques du génie logiciel à l'aide du langage Caml afin de créer un composant, un logiciel à caractère industriel.
L'étude portera sur la réalisation d'un certain nombre de jeux comme par exemple l'Awalé, les dames, Othelo….

Le jeu (un par binôme), à réaliser en mode graphique, sera le support à la mise en œuvre de différentes techniques comme la compilation séparée, la modélisation, les jeux de tests, les notions de modules, etc.,
Le langage qui fera référence pour ce module sera Caml (Camlight ou OCaml) et le langage C pour l'écriture de quelques fonctionnalités à caractère graphique. Ce cours s'inscrit dans la continuité de la formation acquise en option informatique.

Le langage Caml permet d'aborder la programmation de façon simple et aisée. Il donne la possibilité de présenter tous les styles de programmation et la quasi-totalité des concepts du génie logiciel. Le langage Caml est très riche d'un point de vue conceptuel. Il permet d'introduire la programmation par flot de données, par filtrages, par objets, par contraintes, par réutilisation de composants logiciels. D'autre part ce langage permet d'introduire les différents mécanismes d'Évaluation, Évaluation par valeur, évaluation paresseuse ("lazy evaluation"). Le jeu à implémenter permettra de faire référence à un certain nombre de concepts novateurs ainsi que leurs développements liés à la programmation fonctionnelle et à la théorie des types appliqués à l'informatique.

Les objectifs de ce module sont multiples.
1)Il s'agira dans un premier temps d'analyser les spécificités du jeu choisi, d'en décrire sa modélisation. Il faudra notamment définir d'une manière précise le cahier des charges.
2)Il sera nécessaire de décomposer la solution précédente sous la forme de modules en précisant bien les interactions entre les différents modules,
3)On précisera au niveau des modules suffixé en .mli, la signature des différentes fonctions ou méthodes ainsi que le niveau d'encapsulation des données manipulées,
4)On s'intéressera à l'étude de la complexité des algorithmes étudiés pour savoir si tel ou tel algorithmique peut être exécuté dans un temps à préciser en fonction du matériel, de la mémoire, de la carte graphique sur lequel fonctionnera ce jeu,
5)On utilisera un outil de type Makefile afin de réaliser les compilations séparées,
6)On définira différents jeux de tests afin de réaliser une réelle simulation des fonctionnalités introduites au sein du jeu,
7)L'objectif est de savoir appliquer les bonnes méthodes pour obtenir les meilleures solutions pratiques.

Pré-requis :

Avoir suivi l'option informatique en classe préparatoire.
De plus, le cours s'appuiera sur certains éléments présentés en parallèle dans les modules suivants :
- TC131C, Maîtrise de l'environnement numérique de travail (système d'exploitation)
- TC131A, Langage C (TP d'algo en langage C, donc faits après ce module)

Liens :

Certains exemples pourront s'appuyer sur des éléments présentés en parallèle :
- TC 101C, Analyse harmonique et distributions
- TC 111B, Théorie des signaux et filtrage
- TC 131A, Codage, logique et langage C
- TC 131D, Bases de la programmation objet
- TC 131B, Méthodes et outils d'analyse numérique

Les éléments algorithmiques abordés dans le projet seront approfondis dans les modules suivants :
- INF 413, Algorithmique avancée
- INF 435, Graphes
- MTS 443, Technologies du multimédia

Volume horaire : 21h


Contenu détaillé :

C1 (1h30) : Introduction à la programmation modulaire et à l'étude de la librairie Caml (notamment graphics.mli)
TP1 (1h30) : utilisation de camlc + makefile
STP1(1h30)(salle de TP) : mise en œuvre des événements souris et clavier. Implémentation d'une solution simple du jeu du Taquin
STP2 (1h30)(salle de TP) : Analyse du jeu
TP3 (3h): Analyse de la solution proposée et architecture du jeu
TP4 (3H): Implémentation en C de différentes fonctionnalités graphiques et mise en place des bases du jeu choisi
TP5 (3h): Définition et début de l'implémentation de l'heuristique
TP6 (3h): Implémentation finale de la solution retenue
TP7 (3h): Définition des jeux de tests


Année 2012/2013
Dernière mise à jour le 11-SEP-12
Validation par le responsable de programme le


IMT Atlantique
Campus de Brest
Technopôle Brest-Iroise
CS 83818
29238 Brest Cedex 3
France

Tél  +33 (0)2 29 00 11 11
Fax +33 (0)2 29 00 10 00