Master Informatique

Détails des enseignements

Université d'Artois

La formation est découpée en quatre semestres. Les semestres sont d'une durée de dix semaines (de septembre à décembre et de janvier à mars) et sont suivis d'un stage en entreprise ou d'un travail d'études et de recherche en laboratoire de recherche d'une durée minimale de dix semaines en première année et de douze semaines en seconde année.

Chaque unité, si elle est validée, donne droit à un certain nombre d'ECTS. Il faut obtenir 30 ECTS pour valider un semestre, 60 pour obtenir l'année et 120 pour le master. Les modalités de contrôle des connaissances peuvent être obtenues depuis la page dédiée.

Les enseignements sont assurés par des enseignants-chercheurs ou chercheurs du CRIL (Centre de Recherche en Informatique de Lens - umr 8188 du CNRS et de l'Unviersité d'Artois), ou par des professionnels. Une unité d'enseignement est consacrée à des conférences sur des thèmes proches des spécialités. Ces conférences sont données par des professionnels.

Le CRIL est le laboratoire d'accueil du master informatique de l'Université d'Artois.

   Anglais première année
ECTS             3(S1) 3(S2)
Volume       0 CM / 20(S1) 20(S2) TD / 0 TP
Semestre  1 et 2

L'objectif de ces deux unités est l'approfondissement de la maîtrise écrite et orale du lexique propre à l'anglais de l'informatique; entraînement à la rédaction en anglais; développement de la compréhension écrite et orale de documents, apprentissage de la rédaction de mémoires et de documents; entraînement aux techniques d'exposés oraux.

Haut de page

  Bases de données
ECTS             5
Volume       15 CM / 15 TD / 7,5 TP
Semestre  1

Nous abordons principalement dans ce module les techniques liées aux notions de transaction, de gestion d’accès concurrents, de reprise après panne, de bases de données distribuées, ainsi que les aspects procéduraux des bases de données (déclencheurs, PL/SQL).

Haut de page

  Génie Logiciel (1)
ECTS             4
Volume       10 CM / 10 TD / 10 TP
Semestre  1

Le but de cette unité d’enseignement est d’acquérir les bases de la gestion de projet dans le cadre du développement logiciel et d’aborder la conception d’un logiciel en équipe. Ce module introduit aussi de nouvelles abstractions pour la conception d’application : les patrons de conception (classiques et architecturaux).

Ce cours présente les bases de la conception agile, que l’on retrouve formalisée dans le processus unifié, et qui se décline sous des terminologies à la mode comme SCRUM par exemple.

Une attention particulière est portée à la réalisation des documents nécessaires à la communication entre la maitrise d’ouvrage et la maitrise d’oeuvre dans ce cadre.

Les principaux patrons de conception d’architecture sont présentés et réalisés en TP.

Haut de page

  Logique
ECTS             4
Volume       20 CM / 10 TD / 0 TP
Semestre  1

Le cours de logique pour l'informatique en M1 présente une introduction à la calculabilité via les machines de Turing. L'existence de fonctions non calculables - de façon non constructive (par les cardinaux), puis constructive (problème de l'arrêt et réductions) y est prouvée. Sont aussi présentées les notions de type abstrait algébrique, filtrage et unification et de systèmes formels. Enfin, les bases de la logique classique (syntaxe, sémantique) sont mises en avant, le problème de décision est introduit et sa calculabilité discutée, et quelques méthodes de démonstration automatique sont décrites (systèmes formels de Hilbert, de Gentzen et enfin les méthodes de résolution).

Haut de page

  Réseaux
ECTS             7
Volume       20 CM / 20 TD / 15 TP
Semestre  1

Description à venir ...

Haut de page

  Systèmes d'Exploitation Centralisés
ECTS             7
Volume       20 CM / 20 TD / 15 TP
Semestre  1

L'objectif de cette unité est la présentation des systèmes d'exploitation (centralisés) et de leur programation.

Haut de page

  Génie Logiciel (2)
ECTS             4
Volume       10 CM / 10 TD / 20 TP
Semestre  2

Cette unité d’enseignement a pour but de présenter divers moyens de s’assurer que le logiciel développé correspond bien aux spécifications et comment gérer les changements inévitables dans ces spécifications ou lors de la maintenance de l’application. Elle a aussi comme objectif de découvrir la conception d’application web 3-tiers en PHP.

On présentera par exemple une approche pragmatique comme la programmation dirigée par les tests mais aussi les spécifications formelles à l’aide d’Alloy.

Diverses métriques de qualité de code seront présentées dans le but produire des logiciels robustes et faciles à maintenir. L’approche de la reconception (refactoring) sera présentée pour améliorer continuellement la conception des logiciels.

La conception d’application web 3-tiers sera présentée à l’aide du cadriciel Symfony. Le rôle de chacune des couches dans ce type d’applications et le fonctionnement de la traduction automatique du modèle objet en modèle relationnel pour la couche de persistance sont présentés en détail. Une application complète est développée en TP.

Haut de page

  Intelligence Artificielle
ECTS             4
Volume       20 CM / 20 TD / 0 TP
Semestre  2

Haut de page

  Programmation Logique
ECTS             3
Volume       10 CM / 0 TD / 15 TP
Semestre  2

Les objectifs du cours de Programmation Logique sont multiples :

Il s'agit d'un cours d'ouverture sur un mode de raisonnement et la programmation déclarative. Pour résoudre un problème, on le décrit (en logique), et le moteur d’inférence de Prolog s'occupe de la résolution.

L'organisation du cours est orientée sur la compréhension des mécanismes conduisant à un tel niveau de déclarativité du langage. Ainsi, la première partie du cours est consacrée à un bref rappel de logique formelle (calcul propositionnel et calcul des prédicats) pour expliquer concrètement comment on peut programmer avec la logique. Ensuite, une présentation classique du langage est proposée, illustrée par des travaux pratiques.

  1. Rappels de logique (logique propositionnel, logique des prédicats du premier ordre, formules de Horn, résolution, unification)
  2. Programmation logique et Prolog (syntaxe et sémantique)
  3. Bases du langage Prolog (structures de données simples)
  4. Aspects avancés de Prolog (règles prédéfinies, entrées-sorties, mise au point des programmes, la coupure)
  5. Les listes
  6. Les termes préfixés et N-uplets
  7. Quelques applications

Haut de page

  Sécurité Informatique (1)
ECTS             4
Volume       15 CM / 15 TD / 10 TP
Semestre  2

Haut de page

  Systèmes et Programmation Distribués
ECTS             3
Volume       10 CM / 10 TD / 10 TP
Semestre  2

Ce cours s'intéresse aux interactions entre éléments logiciels distants. En particulier, il abordera les problèmes de décentralisation et de distributions d'applications et de données à travers un réseau. Il s'appuiera pour cela sur différents concepts vus dans les unités de système et de réseau.

Thèmes abordés :

Haut de page

  Travail d'Études et de Recherche
ECTS             9
Volume       0 CM / 0 TD / 0 TP
Semestre  2

Le TER s'effectue à à la fin de la partie cours du second semestre, ce qui correspond au début du mois d'avril . Il s'effectue en entreprise (sous la forme d'un stage conventionné) ou en laboratoire de recherche. Il est d'une durée minimale de 10 semaines, mais peut être étendu jusque fin août.

Ce travail fiat l'objet d'un rapport écrit et d'une soutenance. Même si le stage ou le TER se prolonge au-delà des 10 semaines, la soutenance se tiendra à l'issue des 10 semaines (mi juin).

Les TER en laboratoire proposés chaque année sont regroupés sur une page dédiée.

Haut de page

   Anglais en seconde année
ECTS             3(S3) 3(S4)
Volume       0 CM / 20(S3) 20(S4) TD / 0 TP
Semestre  3 et 4

Ces unités s'inscrivent dans la continuité des deux unités d'anglais de la première année et poursuivent le même objectif : l'approfondissement de la maîtrise écrite et orale du lexique propre à l'anglais de l'informatique ; l'entraînement à la rédaction en anglais ; le développement de la compréhension écrite et orale de documents ; l'apprentissage de la rédaction de mémoires et de documents ; l'entraînement aux techniques d'exposés oraux.

Au cours de cette seconde année, une attention particulière sera donnée à la préparation des tests du TOEIC qui seront passés à l'issue de la partie cours du semestre 4, par l'ensemble des étudiants du master.

Haut de page

  Fouille de Données
ECTS             4
Volume       10 CM / 10 TD / 10 TP
Semestre  4

La fouille de données (ou « data mining &raquao;) a pour objectif de « valoriser « les données. Cela concerne l'analyse, l'exploration et l'extraction de motifs ou de modèles explicatifs ou prédictifs à partir de gros volumes de données.

Les objectifs de cette unité sont multiples :

Le cours aborde les étapes principales de la fouille de données. Il est structuré autour des points suivants :

Le cours est illustré sur des applications réelles et il aborde les principaux problèmes et algorithmes/techniques/plateformes rencontrés dans la pratique. En plus des cours magistraux, cette unité comporte des travaux dirigés et pratiques pour analyser, approfondir et mettre en œuvre les concepts vus en cours.

Haut de page

  Langage PERL
ECTS             4
Volume       10 CM / 10 TD / 10 TP
Semestre  3

L'objectif de cette unité est de présenter le langage de scripts PERL. Le cours est articulé autour des points suivants :

Haut de page

  Langages XML
ECTS             4
Volume       10 CM / 10 TD / 10 TP
Semestre  3

Le cours de XML présente tous les langages de transformations (XSLT), d'interrogation (XQuery), de typage (DTD, XML Schemas, relaxNG) et de programmation (DOM, SAX) qui font l'intérêt de ce format interopérable. Il présente aussi les langages du web qui manipulent la structure des pages (javascript et les librairies associées). L'objectif est de comprendre et de savoir créer une chaîne complète de manipulation et d'extraction de données de documents XML. Le web sémantique et ses langages de description sont également abordés.

Haut de page

  Recherche Opérationnelle
ECTS             5
Volume       20 CM / 20 TD / 0 TP
Semestre  3

Le cours de recherche opérationnelle en M1 est centré sur la programmation linéaire (continue et en nombres entiers) et sur la modélisation de problèmes (gestion de stock, réseaux, flots, affectations, etc.) en programmes linéaires (la modélisation par graphes et l'algorithmique sous-jacente étant traités en L3). Dans ce cours sont présentés en particulier l'algorithme du simplexe et la procédure par séparation et évaluation. Le cours constitue aussi une introduction à la théorie de la complexité (via les classes P et NP, et le concept de réduction fonctionnelle polynomiale).

Haut de page

   Java pour Internet
ECTS             6
Volume       10 CM / 10 TD / 17,5 TP
Semestre  3 (parcours ILI)

Cette unité a pour but d’acquérir les bases de la programmation d’applications web « légères » en Java, c’est à dire des applications web 3-tiers qui sont déployées dans un conteneur de servlets. L’accent est mis sur le rôle des différentes technologies disponibles en standard dans la spécification JEE pour chacune des couches de l’application.

Haut de page

   Administration des Systèmes et des Réseaux
ECTS             4
Volume       10 CM / 10 TD / 15 TP
Semestre  3 (parcours ILI)

L'objectif de cette unité est l'étude et l'appronfidessement des réseaux locaux filaires et sans fil.

   Outils Formels
ECTS             4
Volume       15 CM / 0 TD / 0 TP
Semestre  3 (parcours IA)

Le cours d'outils formels donné en M2 est centré sur la logique classique (propositionnelle et du 1er ordre), la calculabilité et la complexité. Il complète le cours de logique pour l'informatique donné en M1. Sont présentés dans ce cours en particulier les « grands » théorèmes de la logique classique (complétude et incomplétude), les modèles de calcul, les réductions fonctionnelle et de Turing, la hiérarchie arithmétique, celle de Chomsky, les réductions polynomiales (Karp et Cook) et la hiérarchie polynomiale.

Haut de page

   Représentation des Connaissances et du Raisonnement
ECTS             6
Volume       40 CM / 0 TD / 0 TP
Semestre  3 (parcours IA)

Haut de page

   Fondements des Moteurs de Jeux
ECTS             6
Volume       10 CM / 0 TD / 30 TP
Semestre  3 (parcours ILJ)

L'objectif de ce module est de fournir les fondements de géométrie et de programmation pour la conception d’architectures de moteurs de jeux.

Exemples de projets: analyse de moteurs existants (Unity, UDK, Cryengine, Ogre3D, etc.) ; construction d’un jeu 2D pour PC (avec SDL, SFML, etc.); portage d’un jeu 2D sur mobile/console (optimisation);

Haut de page

   Moteurs Graphiques et Audios
ECTS             4
Volume       10 CM / 0 TD / 30 TP
Semestre  3 (parcours ILJ)

L'objectif de ce module est de fournir les concepts, modèles et techniques de programmation graphique dans les jeux.

Exemples de projets: analyse d'API graphiques (DirectX, Irrlicht, OpenCV, Android SDK, WebGL, etc.); conception d'une chaine de rendu 3D pour mobile, console ou PC; génération procédurale de terrains ; éclairage optimisé d'une scène complexe en 3D (ex: cathédrale) ; rendu sonore 3D d'un environnement urbain sous Unity/UDK ; analyse d'algorithmes et d'effets spéciaux pour le niveau de détail ; etc.

Haut de page

  Conférences
ECTS             4
Volume       40 CM / 0 TD / 0 TP
Semestre  4

Cette unité se présente sous la forme d'un cycle de conférences où des professionnels du milieu informatique ou de la recherche en intelligence artificielle présentent leurs expériences professionnelles, des outils et/ou des éléments méthodologiques liés à la gestion de projets, leur sujet de recherche, des technologies émergentes, ... Les années précédentes, les conférences ont porté sur :

Haut de page

  Stage
ECTS             12
Volume       0 CM / 0 TD / 0 TP
Semestre  4

Ce stage d'au minimum 12 semaines correspond au stage de fin d'études. Il commence dès la fin des cours du semestre 4, ce qui correspond au début du mois d'avril et s'étend souvent jusqu'au mois de septembre. Il sera s'effectué en entreprise ou en laboratoire de recherche sur un projet validé par l'équipe pédagogique et fera l'objet d'une soutenance et d'un rapport écrit.

Les soutenances ont lieu généralement la dernière semaine du mois d'août. Des soutenances pourront être organisées en juillet, pour les stages ne durant que 12 semaines.

Haut de page

   Java EE
ECTS             5
Volume       20 CM / 20 TD / 30 TP
Semestre  4 (parcours ILI)

Cette unité présente les technologies disponibles pour la conception d’applications web n-tiers en Java, et les méthodes et outils nécessaires à l’industrialisation de la conception d’applications (en Java).

Il s’agit avant tout de découvrir les différents concepts et technologies disponibles dans la bibliothèque standard Java EE. Le cadriciel Spring sera aussi étudié en détail, et utilisé pour mettre en pratique les notions vues dans ce cours.

Haut de page

    Mobilité
ECTS             3
Volume       10 CM / 10 TD / 10 TP
Semestre  4 (parcours ILI & ILJ)

L'objectif de ce cours est d'introduire la programmation sur objets mobiles (smartphones, tablettes, ...). Le cours sera principalement orienté sur la programmation sous Android et/ou IOS.

Haut de page

   Sécurité Informatique (2)
ECTS             3
Volume       15 CM / 15 TD / 10 TP
Semestre  4 (parcours ILI)

L'objectif de ce cours est de compléter l'unité de sécuité informatique 1 du second semestre du master. Le programme de cette unité se focalise en particulier sur les «technologies» de sécurité, la sécurité des programmes du Web et des réseaux.

Haut de page

   Algorithmes pour l'Inférence et les Contraintes
ECTS             5
Volume       30 CM / 20 TD / 20 TP
Semestre  4 (parcours IA)

Le but de ce cours est de s'attaquer à la résolution de problèmes combinatoire difficiles que l'on trouve fréquemment dans divers domaines applicatifs comme par exemple la configuration de produits, la planification, la vérification de matériel et de logiciel ou encore la fouille de données.

Deux modèles d’expression et de résolution de problèmes sous contraintes seront particulièrement étudiés : les problèmes de satisfaction de contraintes (CSP) et le problème de la satisfiabilité propositionnelle (SAT). Pour chacun de ses problèmes, nous décrirons dans un premier temps le formalisme en montrant des exemples de modélisations de problèmes. Ces deux problèmes étant NP-Complets, nous donnerons un aperçu des classes polynomiales connues. Seront ensuite présentés les algorithmes ou solveurs actuels les plus efficaces tout en mettant en avant leurs points forts et leurs limites. Cette présentation sera précédée par un panorama de différents paradigmes de résolutions (algorithmes complets de type retour-arrière et algorithmes incomplets de type recherche locale). Nous aborderons aussi diverses extensions de ces deux modèles permettant par exemple de modéliser et de résoudre des problèmes d’optimisations ou encore d’énumération. Ce domaine de recherche a donnée lieu à une multitude d’outils de modélisation et de résolutions de problèmes sous contraintes qui seront présentés tout le long du cours : Sicstus/Gnu-Prolog, Choco, CPLEX, etc.

Ce cours s’appuie sur une équipe enseignante de l’axe de recherche du CRIL du même nom « Algorithmes pour l’Inférence et contraintes ». Il a donc pour objet de présenter les évolutions les plus récentes dans le domaine.

Haut de page

   Apprentissage
ECTS             3
Volume       20 CM / 0 TD / 0 TP
Semestre  4 (parcours IA)

Haut de page

    Théories de la Décision
ECTS             3
Volume       20 CM / 10 TD / 0 TP
Semestre  4 (parcours IA & ILJ)

Le but de ce cours est d'étudier les formalisations mathématiques des processus de décision. On étudiera d'abord la décision individuelle, puis la décision de groupe (théorie des jeux et théorie du choix social).

Haut de page

   Moteurs Physiques & IA
ECTS             5
Volume       20 CM / 0 TD / 50 TP
Semestre  4 (parcours ILJ)

L'objectif de ce module est de fournir les concepts, modèles et techniques pour la programmation du comportement des éléments du jeu. Le module se focalise principalement sur la partie physique et IA des jeux.

Exemples de projets: analyse de moteurs physiques (Havok, PhysX, …) ; conception d'un moteur à particules sous Android/IOS; conception d'un moteur physique pour objets 3D non-déformables ; gestion sous CUDA des collisions pour objets 3D complexes ; programmation GPU de mouvement de fluides ; programmation mouvements/formations de groupes ; système d’ombrage temps-réel par collisions ; système de choix d'animation faciale en fonction de l'état mental du personnage ; conception d'un jeu de stratégie/tactique sous Unity/UDK ; ...

Haut de page