Property

Course objectives

From LRDE

This is a property of type Text.

Showing 51 pages using this property.
C
Notions de théorie des graphes.  +
Ce cours étudie la façon de construire un algorithme et présente plusieurs classes d'algorithmes particulières ainsi que la façon de calculer les complexité dans chaque cas. Des exemples d'algorithmes de programmation dynamique permettent d'aborder la théorie des graphe sur la fin du cours.  +
Ce cours expose les notions de base de l'algorithmique, avec une emphase sur les calculs de complexité. La présentation des algorithmes de tris et des structures de données classiques (pour la plupart déjà introduits en classes préparatoires intégrées) sert de support à l'introduction de la notion de complexité et des différents outils mathématiques qui permettent de l'étudier.  +
L’atelier se déroule en 5 jours :Matin cours, après-midi TD suivi d'un TP sur machine.Le but de cet atelier est d'appréhender et d’appliquer les concepts de l'algorithmique par la pratique. '''N'a pas eu lieu en 2020-2021. Le but est de le remplacer par des TDs/TPs tout le long de l'année, mais à cause du manque de préparation de l'école et du confinement, cela a simplement sauté en 2020-2021.'''  +
Ce cours présente des algorithmes et structures de données fondamentales, tout en introduisant les façons d'étudier ces algorithmes. Il s'adresse à la fois à des étudiants qui découvrent l'algorithmique qu'à des étudiants, plus informés, qui ont déjà des bases d'algorithmique mais vont apprendre à faire des calculs de complexité.  +
Create high quality scientific written articles and oral presentations.  +
Le but de ce cours est de pousser les étudiants à utiliser la parallélisme, en pratiquant les cas simples qui sont très nombreux et en analysant les techniques de parallelisation de cas plus complexes.  +
Résoudre des problèmes de classification et de reconnaissance probabilistes.  +
Comprendre les différentes analyses conduites par un compilateur ou un interpréteur. Être capable de s'en inspirer pour concevoir des systèmes d'échanges d'information structurée entre composants possiblement distants.Le compilateur est l'interface principale du programmeur vers la machine. On ne peut pas être un bon programmeur sans savoir d'un côté comment fonctionne un ordinateur (cours d'architecture, de système, d'assembleur, etc.) et de l'autre le langage de commande (cours de d'algorithmie, de C, C++, Eiffel, etc.). Sans une bonne connaissance des compilateurs – le pont entre le programmeur et la machine – cette connaissance est illusoire et donne lieu à des « mythes urbains de programmeurs ». Ce cours vise à démythifier la théorie de la compilation en couvrant dans le détail le fonctionnement de l'intégralité d'un compilateur. À l'issue de cet enseignement les étudiants comprennent mieux leurs outils pour devenir de meilleurs ingénieurs du logiciel.  +
Comprendre la traduction de langages, les optimisations. Mieux comprendre quand on peut avoir confiance dans du code généré/traduit automatiquement par rapport à du code écrit à la main. Le compilateur est l'interface principale du programmeur vers la machine. On ne peut pas être un bon programmeur sans savoir d'un côté comment fonctionne un ordinateur (cours d'architecture, de système, d'assembleur, etc.) et de l'autre le langage de commande (cours de d'algorithmie, de C, C++, Eiffel, etc.). Sans une bonne connaissance des compilateurs ---le pont entre le programmeur et la machine-- cette connaissance est illusoire et donne lieu à des « mythes urbains de programmeurs ».Ce cours vise à démystifier la théorie de la compilation en couvrant dans le détail le fonctionnement de l'intégralité d'un compilateur. À l'issue de cet enseignement les étudiants comprennent mieux leurs outils pour devenir de meilleurs ingénieurs du logiciel.  +
Ce cours présente les principes généraux de la compression de données, qu'elle soit conservative ou non conservative. Un accent particulier est mis sur la compression d'images (images mono-chromatiques dans un premier temps, puis images couleurs).  +
Introduire les outils et notions nécessaires à la compréhension du problème P = NP et des classes de complexité.  +
Apprendre le langage C++.  +
Avoir une vision géopolitique du fonctionnement de l'Internet et des enjeux qui y sont liés. Cours de culture générale dont le but est de donner une bonne vision d'Internet, de ses enjeux économiques et politiques.  +
Ce cours introduit la vérification formelle en générale et les techniques de model checking en particulier. L'étudiant y découvre des logiques temporelles, différents automates représentant des mots des longueur infinie, ainsi que des techniques pour manipuler ces objets.  +
Comprendre les enjeux du traitement d’images médicales, connaître les différentes modalités d’imagerie médicale, être capable de lire, traiter et enregistrer des données selon les standards du domaine, comprendre les limitations du système visuel humain pour l’interprétation d’images médicales et l’intérêt des méthodes d’analyse d’images pour l’aide au diagnostic. Durant ce cours, les étudiants auront une présentation des différentes problématiques liées à l’imagerie médicale. Ils verront l’histoire de cette discipline et auront une introduction à la physique de l’acquisition des images afin de comprendre comment analyser ces dernières. Le cours s’intéressera ensuite à la spécificité des différents formats d’images médicales et la reconstruction d’une image à partir du signal machine. Un accent sera donné sur les implications médicales associées afin de faire le lien entre modalité et pathologies. Ce cours fera également le lien entre les méthodes vues en Traitement d’images fondamental et leurs applications en imagerie médicale, ainsi que les rendus et visualisations volumiques. A la fin de ce cours, les étudiants auront une vision globale des différents aspects de l’imagerie médicale.  +
Appliquer au traitement d'images des outils théoriques généraux tirés de la culture actuelle de l'ingénieur.  +
Ce cours introduit les bases des réseaux neuronaux pour faire de l’apprentissage automatique. Les réseaux de type perceptron multi-couches seront tout d’abord abordés, afin de présenter l’algorithme de rétropropagation du gradient, pierre angulaire de l’apprentissage des réseaux de neurones. Dans un second temps, les réseaux de type convolutionnels  +
Être capable de repenser les algorithmes pour accélérer les traitements et maîtriser des technologies disponibles pour réduire les temps de traitement. Le cours est divisé en plusieurs tranches et plusieurs aspects et technologies seront abordées (OpenCL, CUDA…). Ce cours vise à réconcilier le programmeur avec le hardware pour en tirer les meilleures performances. Pour cela, les différences fondamentales entre CPUs et GPUs seront abordées pendant la première séance. La seconde séance explore les solutions software, à la fois en termes de langages de programmation et de bibliothèques logicielles, qui permettront d’exploiter pleinement les capacités du GPU. Enfin, la dernière séance mettra l’accent sur la manière de repenser les algorithmes afin qu’ils s’adaptent aux types de calculs permis par l’architecture. Des exemples issus de la littérature du traitement d’image illustreront ce dernier cours.  +
Ce cours introduit les notions de base de la synthèse d’images. Après des brefs rappels sur la formation de l’image ainsi la géométrie projective et euclidienne, le cours poursuit deux objectifs. Le premier objectif est d’apprendre les algorithmes fondamentaux pour le rendu photoréaliste (cinéma, simulation, etc). Les algorithmes classiques seront abordés : raycasting, raytracing, pathtracing, pbgi… Les problèmes classiques et les limitations de ces algorithmes seront étudiés. Le second objectif est d’apprendre les fondements du rendu temps réel (jeux vidéos). Les algorithmes classiques du pipeline graphique seront étudiés (fenêtrage, remplissage de polygone...). Des objectifs transverses seront survolés comme la modélisation des formes ou l’utilisation et la manipulation de textures.  +
Ce cours J2EE permet d'acquérir les connaissances nécessaires pour créer et déployer des applications compatibles avec la plate-forme Java Enterprise Edition (JEE). En particulier, les technologies étudiés sont : le serveur J2EE Tomcat, les Servlets, les JavaServer Pages (JSP) et la bibliothèque de balises JSTL, l'accès à une base de données à partir d'une application J2EE à l'aide de l'API JDBC et enfin les Enterprise JavaBeans (EJB 3).L'enseignement prendra la forme d'une formation qui ressemble à des tutoriels: C'est à dire des séances ou on mélange cours et TPs: je commence par introduire les principes généraux (si besoin), puis je présente les étapes du TP que doit reproduire l'étudiant sur sa machine (en mode en pas à pas). Les étudiants doivent absolument avoir Eclipse installé sur leur machine.  +
Savoir utiliser les notions apprises en traitement d'images, morphologie mathématiques et reconnaissance des formes sur des cas pratiques.  +
Ce cours présente principalement deux notions théoriques avec des applications concrètes en informatique : * Les systèmes de preuves, qui introduisent la notion de vérité comme construction obtenue à partir d'une série de déductions ; des logiciels de preuve comme COQ ou des langages certifiés comme l'Atelier B en dépendent. * Le lambda calcul, formalisme de programmation différent des machines de Turing mais tout aussi puissant, que l'on peut typer et qui sert de base à la programmation fonctionnelle. Ces deux notions sont reliées par l'isomorphisme de Curry-Howard. Un programme est donc d'une certaine manière une forme de preuve mathématique.  +
Introduire les structures inductives, la logique du premier ordre, et le calcul des séquents.  +
Acquérir les principaux outils mathématiques nécessaire pour la théorie de l'automatique et le traitement des signaux analogiques ou échantillonnés.  +
Présentation des outils de classification les plus populaires et des méthodes permettant d’évaluer leurs performances. Développement des capacités à lire des articles de Machine Learning avec un esprit critique par la réalisation d’un projet.  +
Présentation des outils de classification les plus populaires et des méthodes permettant d’évaluer leurs performances. Développement des capacités à lire des articles de Machine Learning avec un esprit critique par la réalisation d’un projet.  +
Donner aux étudiants les moyens techniques, théoriques et méthodologiques nécessaires à l’optimisation dans un cadre probabiliste de systèmes modernes de vision par ordinateur pour répondre à des problèmes de détection, de segmentation, de classification et de recherche d’image. L’apprentissage artificiel (Machine Learning) est nécessaire dans de nombreux problèmes de vision par ordinateur (Computer Vision) car il permet l’optimisation dans un cadre probabiliste des paramètres d’un système en tirant profit des données disponibles. Au travers de plusieurs études de cas, les étudiants seront initiés à différentes techniques modernes permettant de résoudre des problèmes de : * détection (recherche d’un motif dans une image) ; * segmentation (délimitation du contour d’un objet dans une image) ; * classification (reconnaître la classe d’un motif ou d’une image) ; * recherche (retrouver les images les plus semblables à une requête parmi une base d’image). Les étudiants apprendront également comment évaluer rigoureusement la performance des solutions considérées. Les étudiants acquerront alors les bases scientifiques qui leur permettront de comprendre et de réutiliser (voire d’étendre) les méthodes les plus performantes jusqu’en 2012 – date du début de l’essor de l’apprentissage profond (Deep Learning). Ces bases seront un point de départ utile pour comprendre, plus tard, les techniques les plus récentes avec un regard d’expert en analyse d’images. Les étudiants utiliseront des outils modernes en Python pour prototyper et évaluer rapidement les technique étudiées.  +
Le but de ce cours est d'apprendre les différents concepts liés au paradigme des objets, de savoir comment plusieurs langages à objets supportent ces concepts, de savoir modéliser un logiciel avec UML et en suivant une méthode.  +
Approfondir les techniques de modélisation avec les objets.  +
Maîtriser les outils classiques de morphologie mathématique, et savoir identifier les situations dans lesquels ceux-ci s’avèrent particulièrement efficaces. Ce cours présente les opérateurs de base de la morphologie mathématique pour le traitement d’images (érosion, dilatation, ouverture, fermeture, etc), ainsi que les stratégies classiques de filtrage morphologique. Un accent clair est mis sur les situations pratiques dans lesquels ces types d’opérateurs sont particulièrement performants.  +
Présenter les outils mathématiques permettant la formulation des problèmes d’optimisation convexe, et les outils algorithmiques en permettant la résolution. Ce cours introduit les algorithmes permettant de résoudre les problèmes d’optimisation convexe. Nombreux problèmes en traitement du signal et des images peuvent se formuler comme la recherche de l’optimum d’une fonction convexe, d’où l’intérêt pratique de maîtriser les outils théoriques sous-jacents à la résolution de ces problèmes. Ce module est organisé en deux blocs. Dans un premier temps, il s’attachera à apporter une compréhension qualitative des problèmes d’optimisation convexe dans un cadre général. L’accent sera mis dans un second temps sur une compréhension théorique des méthodes itératives permettant la résolution des problèmes d’optimisation convexe.  +
Fournir une vision d'ensemble du paradigme de programmation fonctionnelle et de son positionnement relatif aux autres paradigmes de programmation. Illustrer l'ensemble des concepts abordés au moyen de deux langages fonctionnels: Lisp et Haskell.  +
L’objectif de ce cours est d’apprendre à utiliser OpenGL 4 ; Le premier objectif est de maîtriser les rudiments programmation classique d’OpenGL et la programmation des shaders en utilisant GLSL (en utilisant bien les versions actuelles d’OpenGL, et jamais d’éléments des versions antérieurs). Le second objectif est d’apprendre à réaliser des rendus plus difficiles en temps réel tel que le rendu d’eau, de feu, d’éléments réfléchissants ou la gestion des ombres en temps réel. Les techniques du genre render-to-texture ou multiple render targets sont abordées, ainsi que les méthodes classiques pour accélérer le rendu (comme le deferred rendering) seront présentées. Les algorithmes de rendu temps réel utilisés sont ceux présentés dans le cours d’introduction à la synthèse d’images.  +
Introduction à la programmation parallèle  +
Familiariser les étudiants avec les bonnes pratiques du langage Python pour la manipulation de données à caractère scientifique. Le langage Python est aujourd’hui incontournable pour la manipulation rapide et efficace de n’importe quel type de données. Ce langage haut niveau très flexible s’appuie sur une communauté très active, garantissant un développement rapide de ses fonctionnalités. Ce cours introduit les bonnes pratiques du langage Python et de ses bibliothèques pour manipuler des données à caractère scientifique. Les bibliothèques Numpy et Pandas, ainsi que les outils permettant la visualisation graphique des données seront présentés.  +
Présentation des méthodes et techniques pour la conception, la réalisation et l'utilisation des bases de données relationnelles.  +
Appliquer les notions abordées dans le cours RELA.  +
Connaître les principaux types de réseaux de neurones, les algorithmes d’apprentissage associés et les applications pratiques correspondantes.  +
Fournir aux étudiants une culture générale sur les systèmes d'exploitation, ainsi que la connaissance élémentaire relative à leur fonctionnement. On étudiera l'ensemble des problématiques communes à tous les systèmes, ainsi que les différentes solutions qui peuvent y être apportées.  +
Donner les connaissances mathématiques de base pour résoudre des problèmes d'équations différentielles partielles à l'aide de la méthode des éléments finis.  +
Connaître les algorithmes de base pour générer des images virtuelles.Initiation à la synthèse d'images : Aperçu des méthodes permettant de générer un rendu d'images virtuelles (que ce soit les méthodes photo-réalistes ou les méthodes temps réel).  +
Cette introduction à Scala présente les principaux concepts (syntaxiques et sémantiques) du langage Scala. Il s'agit essentiellement de se familiariser avec les paradigmes objet et fonctionnelle qui forme la base de Scala, mais également d'illustrer les interactions possibles entre ces deux paradigmes.  +
L'objectif du cours est triple. Il s'agit d'une part d'introduire le vocabulaire de la théorie des graphes et d'illustrer sont vaste champ d'applications. D'autre part ce cours prolonge le cours d'algorithmique en étudiant la complexité de chaque algorithme présenté (dont certains utilisant de la programmation dynamique). Enfin ce cours relie les graphes à la théorie des groupes (abordée brièvement en classes préparatoires).  +
Définir de façon rigoureuse ce que sont les langages, trouver des moyens de les spécifier, et des techniques pour les reconnaître. Ces techniques sont utilisées dans les outils les plus courants du développeur : * Compilateurs / interpréteurs, * Outils à format de donnée structuré (e.g., XML, LaTeX).  +
Comprendre la théorie et la pratique des langages rationnels :* expressions rationnelles* automates* algorithmes sur les automates  +
Présenter aux étudiants les briques élémentaires de traitement d’images, permettant l’élaboration d’algorithmes plus complexes Ce cours d’introduction au traitement d’images vise à familiariser les étudiants avec la terminologie et les traitements élémentaires qui structurent les algorithmes avancés de restauration, amélioration, filtrage et extraction automatique d’information des images. Les notions abordées balayent la formation des images (perception et capteurs), le codage (niveaux de gris, espaces colorimétriques), la représentation des images (histogrammes et leur manipulation, représentations spatiales et fréquentielles), la reconnaissance de formes simples (droites, cercles), les méthodes de traitement de séquences d’images et l’information temporelle. Une ouverture sur les implémentations rapides (instructions SIMD) sera effectuée et servira d’introduction au cours de programmation GPGPU. De même, une introduction à la morphologie mathématique sera présentée pour préparer le terrain pour le cours dédié (plus tard dans le semestre).  +
Connaître les traitements élémentaires pour restaurer, améliorer les images et extraire des informations des images.Introduction au traitement d'images : Passe en revue différentes approches pour restaurer, améliorer et filtrer les images. En fin de module, une introduction à la reconnaissance de forme est abordé.  +
Etudier les méthodes probabilistes de classification et de reconnaissance de formes.  +
Niveau 2 - Sensibilisation aux problèmes de la reconnaissance de la parole, état de l'art en reconnaissance (Modèles de Markov cachés), utilisation d'outils spécifiques.  +
L'outil principal du programmeur est le langage de programmation. Ce cours cherche à démontrer que les langages ne sont pas égaux, et que certains sont plus adaptés que d'autres. Il cherche à montrer les erreurs du passé, et à souligner qu'elles sont souvent reproduites. Il insiste sur le lien étroit, mais presqu'invisible, qui existe entre les technologies de compilation existantes, et la définition d'un langage, pour mettre l'emphase sur l'évolution des langages de programmation, et le besoin de promouvoir de nouvelles technologies. Enfin, puisque le choix n'est pas toujours disponible, il cherche à promouvoir l'esprit de langages riches dans la lettre du langage imposé.  +