Mon enseignement de deuxième cycle se fit à l’Institut Universitaire Professionnalisé, département
Génie Mathématiques et Informatique
de l’Université des sciences et techniques du Languedoc Montpellier II.
Ce sont 3 années de formation (de l’année BAC+2 à BAC+4) pour obtenir un Deug, une Licence puis une Maîtrise GMI et éventuellement le titre d’Ingénieur Maître GMI. (BAC+4).
Je suis rentré sur dossier en 2ème année (année Licence BAC+3).
En 3ème année où j’ai obtenu le titre d’ingénieur-maître, j’ai suivi les options :
- Langages formels (20 cours, 30h TD) (1er semestre IUP2) Michel Meynard
L’objectif principal de ce cours est de former les étudiants à la manipulation des mots
et au raisonnement sur les langages formels.
La connaissance de ces techniques est fondamentale car l’informatique traite d’informations structurées
dans des langages plus ou moins complexes.
Une application pratique de ce cours est l’enseignement de compilation en troisième année.
L’enseignement théorique de calculabilité et complexité de troisième année constitue également un prolongement de ce cours.
Plus précisément, les buts recherchés sont :
- étudier les langages formels à l’aide de différentes caractérisations;
- illustrer les méthodes de preuve sur des objets mathématiques simples, les mots;
- assimiler les démonstrations par induction structurelle ou noethérienne;
- modéliser des langages par des grammaires algébriques et rationnelles.
Plan du cours :
- Introduction
- mots, langages, règles de réécriture;
- hiérarchie de Chomsky.
- Langages réguliers
- grammaires régulières (linéaires à droite ou à gauche);
- automates déterministes ou non déterministes;
- expressions régulières et modélisations de langages;
- théorèmes de Kleene et de la pompe.
- Langages algébriques
- Théorème de décomposition généralisée;
- récursivité centrale;
- arbre de dérivation et ambiguïté;
- modélisations de langages et automates à pile.
- Logique (20h cours, 30h TD) (1er semestre iup2) Michel Chein
La logique joue un rôle très important dans pratiquement tous les domaines de l’informatique
- en Génie Logiciel : synthèse, vérification, correction, et transformation de programmes
- en Intelligence Artificielle : systèmes à base de connaissances
- en programmation : programmation fonctionnelle ou logique
- en informatique théorique : calculabilité, complexité)
L’objectif du cours est de familiariser les étudiants avec les notions de base de la logique du premier ordre.
- Rappels de logique des propositions
- Termes (substitution et unification)
- Syntaxe
- Sémantique (théorie des modèles)
- Forme clausale et théorème de Skolem
- Théorème d’Herbrand
- Méthode de résolution
- Séquents de Gentzen (théorie de la preuve)
- Système (24h cours, 24h TD, 24h TP) (1er semestre iup2) Ehoud Arhonovitz
La communication entre processus dans des environnements simples ou complexes
constitue l’objectif principal de ce cours et de celui de réseaux.
Pour y arriver, il est nécessaire de connaître les principes des systèmes d’exploitation d’abord,
puis de ceux des réseaux.
La forme simple de l’environnement est celle d’un seul et même système d’exploitation,
multi-tâches, multi-utilisateur.
La forme complexe est celle d’hôtes reliés par un réseau.
Dans la première partie du cours on présente le rôle d’un système d’exploitation, et ses composantes :
la gestion des processus, de l’espace disque, de la mémoire et des entrées-sorties.
La communication entre processus est vue en partant des schémas simples de lecteurs-écrivains
(applications : les tubes simples ou nommés),
vers la communication par messages (files de messages, mémoires partagées, sémaphores).
Plan :
- Besoin et rôle d’un système d’exploitation,
- Programme et processus ; vie des processus,
- Système de gestion des fichiers ; gestion des entrées-sorties,
- Communication entre processus ; diverses formes de processus,
- Gestion de la mémoire.
- Algorithmique (24h cours + 48TD) (1er semestre iup2) Michel Habib
Il s’agit de montrer l’importance des structures de données dans la conception d’algorithmes efficaces.
On s’attachera aux preuves et analyse d’algorithmes en utilisant les notations asymptotiques.
Ce faisant, on manipulera et s’appropriera les algorithmes et structures de données élémentaires.
Plan :
- Analyse d’algorithmes : Temps et espace dans le pire des cas. Notations asymptotiques. Techniques pour résoudre les équations récurrentes simples.
- Conception d’algorithmes : Induction, Diviser pour régner.
- Structures de données avancées : File de priorité et arbres rouges et noirs, structure d’ensembles disjoints (Union-Appartient).
- Algorithmes de Graphes : Arbre de poids minimal, Plus court chemin et fermeture transitive.
- Algorithmes d’énumération : Modélisation par des graphes et simulation de parcours (chemin hamiltonien), notion de code de Gray.
- Algorithmes de recherche de motif dans un texte.
- Conception et Programmation par Objets (24h cours, 24h TD, 24h TP) (1er semestre iup2) Yolande Arhonovitz
Présenter les concepts essentiels de l’approche objet.
Le module est constitué de deux parties : conception et programmation.
Ces deux parties avancent en parallèle : chaque concept est présenté, puis mis en oeuvre.
- Introduction à l’analyse et à la conception par objets => Introduction à la programmation par objets
- Modélisation statique (classes, instances, associations) => Les objets : classes, instances, méthodes, messages
- Spécialisation/généralisation vs agrégation/composition => Héritage simple et multiple
- Modélisation dynamique et fonctionnelle => Compléments sur les messages. Implémentation des scénarios. Organisation des programmes.
- Généricité
- Exceptions
- Utilisation des librairies de classes
- Optimisation combinatoire (20h cours, 30h TD) (2ème semestre iup2) Lhouari Nourine
Il s’agit de montrer que la théorie des graphes est un moyen puissant de modélisation de problèmes concrets en terme de graphes.
Le théorème de Fort-Fulkerson (flot-max coupe-min) et le principe de dualité constituent le noyau de ce cours.
On insiste sur les transformations de problèmes pour résoudre certains problèmes combinatoires.
Plan :
- Flot maximal: Théorème Min-Max de Ford-Flukerson.
- Les réseaux de transport: Théorème de Gale.
- Connectivité (“fiabilité” d’un réseau): Théorème de Menger.
- Couplage dans les graphes bipartis (affectation): Théorème de Konig-Hall
- Bases de données (16h cours, 16h TD, 18h TP) (2ème semestre iup2) Claude Boksenbaum
Ce cours doit permettre à un étudiant de faire l’analyse d’un problème,
d’en faire un schéma normalisé,
de créer une base de données relationnelle correspondante,
et d’écrire en SQL les requêtes des fonctions essentielles de l’application,
tout en dégageant des règles ou contraintes à satisfaire par les traitements ou déclencheurs.
- Rappel du modèle relationnel
- Etude des contraintes usuelles dans le modèle relationnel
- Dépendances fonctionnelles : théorie jusqu`à normalisation
- Contraintes d’intégrité et clés
- Contraintes d’inclusion
- Aperçu sur les modèles plus récents
- Modèle objet
- Modèle déductif
- Difficultés de la modélisation
- Entités ou association
- Instanciation partielle d’un modèle
- TD : sur la simplification d’un ensemble de dépendances fonctionelles et normalisation
- TP: un mini-projet autour d’un cas traité en TD et TP
- Réseaux (24 cours, 24h TD, 24h TP) (2ème semestre iup2) Ehoud Arhonovitz
Après une introduction au monde des réseaux, on s’intéresse plutôt aux couches hautes,
à partir de la couche réseau, jusqu’à l’application.
Les problèmes rencontrés au routage permettent de faire le lien avec les cours d’algorithmique.
La mise en oeuvre d’applications du type client-serveur est détaillée.
Ceci amène aussi à voir quelle est la part prise en charge par les éléments de communication (couches sous-jacentes du réseau)
et de déterminer ainsi ce qui doit rester à la charge de l’application.
Plan :
- Introduction : un monde de problèmes,
- Adressage et nommage,
- Modes de connexion ; modes de communication,
- Spécificités du monde internet,
- Modèle client-serveur,
- Le routage (approfondissement)
- Grandes applications et protocoles d’applications (dont W3…)
- Interfaçage en Java et autres technologies du Web (24h cours, 24h TD, 24h TP) (2ème semestre iup2) Pierre Pompidor
- Interfaçage en Java : Connaissance de la bibliothèque AWT de Java
- Gestion du graphique de base
- Fontes et Couleurs
- Gestion des événements
- Emplois illustrés des différentes classes graphiques
- Autres technologies du Web : Faire un tour d’horizon des différentes technologies employées sur le Web.
- Format des pages Web (HTML, XML…)
- Tour d’horizon des technologies liées à la création d’applications téléchargeables
- Principes ActiveX de Microsoft
- Principes des Active Serveur Pages (ASP) de Microsoft
- Langues (1er et 2ème semestre iup2)
- Anglais (50h)
- Espagnol (30h)
- Projet de recherche (24h cours, 24h TD, 24h TP) (2ème semestre iup2) Michel Habib
Le stage dure un mois pendant le mois de juin.
Il permet aux étudiants de l’IUP d’avoir un premier contact avec la recherche.
Il fait l’objet d’un rapport et d’une soutenance.
En général les étudiants doivent lire et comprendre un ou plusieurs articles écrits en anglais.
Ils apprennent à rédiger un texte scientifique :
le rapport détaillé de leur stage,
en précisant bien leurs sources ou emprunts à l’aide d’une bibliographie.
Ce rapport doit être rédigé à la manière d’un cahier d’expérience,
présentant la progression durant le stage.
L’objectif n’est pas que des étudiants au niveau Bac+3,
produisent en un mois des articles publiables,
mais qu’ils aient une meilleure idée du monde de la recherche.
Toutefois certaines idées présentées dans ces rapports pourront faire l’objet d’études ultérieures
au sein des groupes de recherche qui ont proposé ces sujets et donner matière à publication.
- Préparation à la vie en entreprise (1er semestre iup3) Pierre Pompidor
Stage de quatre mois d’octobre à janvier.
Les étudiants d’IUP3 mettent en pratique leurs connaissances lors d’un stage long en entreprise de quatre mois (16 semaines).
Un des points forts de ce stage est son positionnement au début de l’année scolaire
qui permet aux étudiants d’être plus perceptifs à certains enseignements
(comme celui par exemple de l’option Génie Logiciel) lors de leur retour à l’IUP.
De plus ce créneau en début d’année leur permet de pouvoir choisir parmi un grand nombre de propositions de stages.
À la fin du stage, les étudiants doivent assister aux exposés de leurs camarades.
- Administration Système, Réseaux et Bases de données (24h cours, 48h TP) (2ème semestre iup3) Joël Maizi
Administration Système, Réseaux dont l’objectif est de permettre aux étudiants d’appréhender les bases
de l’administration système et réseaux en présentant des cas réels mis en oeuvre lors des séances de travaux pratique.
Les études de cas seront développées autour du protocole TCP/IP et du système LINUX.
- Compilation et mécanismes (40h cours, 20h TD, 40h TP) (2ème semestre iup3)
- Compilation () Claude Boksenbaum
Les objectifs sont :
- apprendre les techniques de compilation
- évaluer l’implémentation des langages de programmation notamment objet
Plan :
- Introduction
- Analyse lexicale
- Analyse syntaxique
- Analyse sémantique
- Génération de code
- Sémantique des langages de programmation
- Conclusion
Ce cours est destiné à des étudiants ayant des connaissances théoriques en langages formels
et doit leur permettre de comprendre les techniques de compilation et d’interprétation.
Les TDs et TPs aboutissent en un projet de réalisation d’un petit compilateur.
- Mécanismes de l’informatique () Michel Meynard
L’objectif est de montrer l’universalité de certains mécanismes dans les divers aspects de l’informatique souvent enseignés séparément.
Exercer l’esprit critique vis à vis de telles descriptions.
Plan :
- Introduction: les 3 qualités indépendantes
- Performance
- Files d’attente
- Simples (M/M/I); loi de Little; dédoublement série et parallèle
- Réseaux simples
- Réseaux; loi de Buzen et conséquences
- Applications : thrashing et système conversationnel
- Caches
- Cache MC
- Autre cache mémoire
- Caches de calcul
- Robustesse
- Spécifications formelles - Z et B
- Machines virtuelles
- VM: Pascal UCSD; Java
- Souplesse
- Interprétation
- Informatique et Société (22h cours, 22h TD) (2ème semestre iup3) Richard Terrat
Appréhender et comprendre la place de l’Informatique dans la Société.
Plan :
- Préhistoire et Emergence de l’Informatique : de l’aube de l’humanité à la Thèse de CHURCH et TURING
- Histoire contemporaine de l’Informatique et des Ordinateurs : de la Thèse de CHURCH et TURING à l’IMAC
- L’informatique et le citoyen : Lois nationales et recommandations communautaires - décrets et applications
- Enjeux économiques, sociaux, politiques et culturels de l’informatisation
- Option Réseaux du Futur (36h cours, 36h TD) (2ème semestre iup3) Jean-Claude König
Ce cours a pour objectif de décrire les nouveaux besoins en télécommunication et les réponses qui peuvent y être apportées.
Ces réponses peuvent être liées aux techniques de transfert de l’information (IP, ATM…)
ou à l’évolution technologique (utilisation de l’optique ou de constellations de satellites).
Le cours commencera par une présentation des différents modes de commutation
et des techniques de transfert de l’information (IP, ATM…) qui nous permettront d’illustrer les concepts étudiés.
Nous étudierons ensuite divers problèmes classiques liés au routage (couche réseau),
à la qualité de services (couche réseau et transport) et les problèmes de sécurité et d’administration.
En particulier nous montrerons à travers ces problèmes en quoi ATM et IP
sont des réponses adaptées ou non aux nouveaux besoins en télécommunication.
Puis nous essayerons de voir l’influence probable des nouvelles technologies sur le transfert d’information.
Enfin l’étude d’un exemple : les communications de groupe permettra de revoir l’ensemble des concepts introduits dans le cours
et d’étudier de nouveaux problèmes.
Plan :
- Les différents modes de commutation (messages, paquets, circuits, wormhole…)
- Les algorithmes de routage (CV et datagrammes) et les techniques d’adressage
- La gestion et le contrôle de trafic
- La Qualité de Service
- La Sécurité dans les réseaux
- L’administration de réseaux
- La fiabilité et le dimensionnement des réseaux
- Les technologies nouvelles et leurs conséquences : optique et constellations de satellites.
- Un exemple : les communications multipoints (protocoles de nomadisme et agents mobiles, la multidiffusion…)
- Option Algorithmique distribuée (32h cours, 24h TD, 16h TP) (2ème semestre iup3) Michel Habib, Jean-Claude König
Ce cours a pour ambition d’étudier les problèmes posés par l’algorithmique distribuée.
- Du parallélisme :
- Comment utiliser une machine parallèle, quels sont les modèles théoriques (PRAM) ?
- Quels sont les problèmes facilement parallélisables.
- Calcul des composantes connexes.
- De la distribution :
- On envisage maintenant la situation où l’on dispose d’un réseau de machines et
qu’il faut distribuer un calcul sur des processeurs asynchrones.
- Temps global, estampilles, horloges logiques.
- Le problème de la terminaison.
- Algorithmes auto-stables.
- Quelques exemples d’application réparties : Le routage dans Internet est un bon exemple des concepts ci-dessus
- Option Introduction à l’Intelligence artificielle (32h cours, 32h TD) (2ème semestre iup3) Frédéric Koriche
Le parti-pris de ce cours est d’enseigner l’intelligence artificielle au travers de l’étude d’agents
qui existent, perçoivent et agissent dans un environnement.
Ce cours s’appuie sur la démarche du livre de Stuart Russell et Peter Norvig.
Plan :
- introduction
- agents intelligents
- résolution de problèmes
- agents qui raisonnent logiquement
- logique des prédicats
- construire une base de connaissance
- planification
- apprendre à partir d’observations
- apprentissage et réseau de neurones
- apprentissage et connaissances
- agents et communications
- robotique
- fondements philosophiques
- Langues (2ème semestre iup3)