IST Syllabus L3 Programme Majeure M6b informatique


 

Semestre 6

97,5 heures

UE Graphes et optimisation combinatoire   18h de CM & 30h de TD

UE Introduction à l’intelligence artificielle   12h de CM & 12.5h de TD

UE Gestion de projet   12h de CM & 12.5h de TD

*************************************************

UE Graphes et optimisation combinatoire

Prérequis
Module d’algorithmiques et structures de données avancées en L3-S5

Compétences visées
Se familiariser avec des modèles classiques de problèmes d'optimisation, notamment des modèles basés sur les graphes et la programmation linéaire : outils de modélisation et de résolution de problèmes d'optimisation ou de décision.
Connaissance des algorithmes fondamentaux sur les graphes et programmation linéaire.
Apprendre à modéliser des problèmes, qui sont issus de l'informatique et de la recherche opérationnelle, puis à les résoudre à l'aide d'un algorithme et être capable de choisir la bonne structure de données appropriées.
Acquérir une bonne maîtrise des modèles et algorithmes pour la résolution de problèmes d'optimisation, qu'il s'agisse de problèmes réels rencontrés dans un contexte industriel, ou de problèmes de recherche académique.
Les exercices et les projets guidés visent à se familiariser à la résolution de problèmes.

Contenu du cours
Le module graphes et optimisation combinatoire se décompose en deux parties :

1. Algorithmiques des Graphes
Etude des différentes structures de données et des algorithmes de graphes les plus classiques.
Généralités sur les graphes : graphes orientés et non orientés.
Matrices associées aux graphes. Différentes structures de données.  
Conversions entre les structures.

Algorithmes classiques de parcours (en profondeur et en largeur).
Cheminements et connexités simple et forte.
Algorithmes de détermination des composantes connexes et fortement connexes. 
Tri topologique 
F
ermeture transitive (Warshall) 
Problèmes des plus courts chemins (Ford, Dijkstra, Bellmann,Floyd) 
Arbres couvrants minimaux (Prim, Kruskal) 
Problème du flot maximal (Ford et Fulkerson) 

2. Programmation linéaire
Introduction à la programmation linéaire, modélisation, différentes formes d’un programme linéaire (canonique et standard), etc. 
Résolution géométrique et algébrique
Algorithme du simplexe
Dualité
Analyse de sensibilité 
Cas spéciaux du simplexe
Langage de programmation utilisé : langage C

*************************************************
UE Introduction à l’intelligence artificielle

Prérequis
Capacité de programmer (typiquement en Python ou C).

Compétences visées
Initiation à la compréhension critique des problématiques et paradigmes majeurs de l’intelligence artificielle
Initiation à la conception et à la programmation d’exemples représentatifs de systèmes d’IA.

Enjeux du cours
Une première introduction à la théorie et la pratique de l’intelligence artificielle et sa diversité de thématiques et approches.

Contenu du cours
1. Les origines, objectifs, et paradigmes de l'IA :

Les racines et enjeux interdisciplinaires de l’IA
Rapport de l’IA avec l'intelligence humaine et avec les sciences de l'ingénieur
Les principaux paradigmes : IA symbolique, IA "incarnée", IA bio-inspirée


2. Systèmes d'IA qui raisonnent logiquement :
Représentation, raisonnement et programmation en logique 
Systèmes à base de connaissances
Résolution de problèmes et prise de décision basées sur la représentation et le raisonnement


3. Systèmes d’IA qui interagissent avec leur environnement de façon autonome :
Les principes et notions majeurs à la base de l’IA incarnée
Modélisation de systèmes d'IA "incarnée" : principes et méthodologies de conception

Systèmes d’IA qui prennent des décisions en interaction avec le monde I : systèmes d'IA incarnée réactifs
Systèmes d’IA qui prennent des décisions en interaction avec le monde II : systèmes d'IA incarnée actifs
Systèmes d’IA qui prennent des décisions en interaction avec le monde III : systèmes hybrides d'IA incarnée et symbolique


*************************************************

UE Gestion de projet

Prérequis
Génie logiciel
Maîtrise d’un langage de programmation orientée objet

Compétences visées
Disciplinaires 

Identifier les étapes d'un projet informatique standard et le rôle (travail) de différents membres de l'équipe à chaque étape.
Analyser les avantages/inconvénients de différents modèles de cycles de vie de projet, et adapter un modèle à un projet spécifique.
Planifier de façon agile les releases intermédiaires d’un projet
Calculer la charge d'un projet avec la méthode "Point de fonction", en estimant les paramètres d'entrées de la méthode.
Prévoir les différents scénarios d'une gestion de projet en intégration continue et différencier différents types de tests d'un projet.
Rédiger les documents de type process ou product, correspondant aux besoins et étapes spécifiques de projet.

Transversales ("Soft-Skills")
Travail d’équipe (partie non technique)
Organiser de façon efficace les activités liées à la gestion du projet, telles que les réunions, la répartition des tâches etc., ainsi qu'évaluer les performances des membres de l’équipe. 
Expression écrite et orale dans un projet, communication extérieure et intérieure

Contenu du cours
Étapes d'un projet informatique, répartition des rôles
Cycles de vie de gestion de projet : classique et agiles (ASD, FDD et Crystal)
Intégration continue : environnement, outils, test suites et procédure
Planification des release intermédiaires
Gestion des tests de projet : catégorisation et procédure
Gestion de documentation du projet : Process et Product documentation
Estimation des charges : méthode point de fonction
Qualité du projet : méthode Mc Call avec critères et facteurs de qualité
Gestion des ressources humaines : entretiens, comités, évaluation et autoévaluation
Gestion de stress : sources CINE, analyse et méthodes