S5-TI (Semestre commun)

ARC1-S5 Architecture des ordinateurs : circuits numériques
(ARC1-S5 Computer Architecture : Digital Systems)

Objectif

L’objectif de ce module est d’apprendre aux étudiants à concevoir des circuits numériques en utilisant différentes techniques d’optimisation employées dans la synthèse de haut niveau et la synthèse logique.

Compétences

  • Aptitude à comprendre les techniques d’optimisation utilisées dans la synthèse de haut niveau et la synthèse logique.
  • Aptitude à utiliser la méthodologie employée dans la conception des circuits numériques.
  • Aptitude à réaliser des circuits numériques optimisés

Bibliographie

  • “Digital design” Frank Vahid
  • “Digital Design and Computer Architecture” David Harris, Sarah Harris
  • High level systhesis” Daniel Gajski, Nikil Dutt, Allen Wu, Steve Lin
  • “Specification and design of embedded systems” Daniel Gajski, Frank Havid, Sanjiv Narayan, Jie Gong
  • “Spec C” Daniel Gajski, Jianwen Zhu, Rainer Domer, Adreas Gerstlauer, Shuqing Zhao

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]
  • [Validation des compétences en français : par une réalisation de document]
  • [Par une présentation activité] Validation des compétences en français :


Objective

The objective of this module is to teach the students how to build optimized digital systems using different optimization techniques frequently employed in high-level and logic synthesis.

Learning Outcome

  • Ability to understand the optimization techniques used in high-level and logic synthesis.
  • Ability to use the methodology employed in the design of digital circuits.
  • Ability to design optimized digital circuits.


PROG1-S5 Programmation 1
(PROG1-S5 Programming 1)

Objectif

  • Introduire les concepts et la pratique de la programmation objet
  • Insister sur la qualité des programme

Compétences

  • Connaissance des structures de données classiques : types abstraits et implémentations associées.
  • Connaissance des concepts de la programmation objet.
  • Connaissance des bases du langage Java.
  • Utilisation de tests unitaires pour les aspects de validation

Bibliographie

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

Introduce the concepts and practice of object programming, with an emphasis on program quality

Learning Outcome

  • Knowledge of classic data structures : abstract data types and related implementations.
  • Knowledge of the concepts of object programming.
  • Knowledge of the basics of the Java programming language.
  • Use of unit testing to validate programs


MNI-S5 Mise à niveau en informatique
(MNI-S5 Refresher Course in Programming )

Objectif

Ce module vise à consolider les bases de la programmation et à donner les premiers éléments de langage Java à des étudiants ayant peu pratiqué la programmation dans leur cursus antérieur.

Compétences

  • Savoir utiliser des fonctions
  • Savoir programmer des traitements itératifs sur les tableaux

Bibliographie

Validation

  • pas de validation


Objective

This course aims to give a solid programming background as well as give bases in Java programming to students with little programming experience.

Learning Outcome

  • Be able to use functions.
  • Be able to program iterations on arrays.


MATH-S5 Mathématiques
(MATH-S5 Mathematics)

Objectif

L'objectif de ce cours est de donner aux étudiants la culture mathématique de l'ingénieur. Il est obligatoire pour tous les étudiants, et servira notamment de pré-requis pour le module PS-S5 (Probabilités & statistiques) du tronc commun et pour TS1-S6 (Traitement du signal 1) pour les options «Télécoms et réseaux», «Technologies de l'information et de la communication pour le bâtiment», et «Ingénierie pour la santé».

Compétences

Ce module d'enseignement montrera aux étudiants comment étudier une fonction de plusieurs variables en termes de continuité, de différentiabilité et d'intégrabilité. L'intégrale de Riemann, étudiée en mise à niveau de mathématiques, sera alors généralisée au travers de l'intégrale de Lebesgue, particulièrement utile en calcul des probabilités. Les étudiants disposeront alors d'outils majeurs d'intégration tels que les théorèmes de convergence dominée, de Fubini, et du changement de variable multidimensionnel. La notion de convergence uniforme sera également introduite, permettant aux étudiants d'étudier la continuité, la dérivabilité et l'intégrabilité de la limite de suites/séries de fonctions.

Bibliographie

Cours de mathématiques. Tome 4, Analyse, Volume 4, cours et 500 exercices corrigés (Broché), Jean-Marie Monier, 1997, Dunod. Théorie de l'intégration, Convolution et transformée de Fourier ? Licence 3 & Master 1 ; M1, Marc Briane et Gilles Pages, 2012 - 5e édition - 368 pages. Petit guide de calcul différentiel à l'usage de la licence et de l'agrégation, François Rouvière, édition Cassini, collection Enseignement des mathématiques, 2009, 428 pages.

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

The objective of this course is to give to the students the mathematical culture of the engineer. It is compulsory for all the students, and is a prerequisite for the statistics in semester 8 and for the modules PS-S5 (Probability and Statistics) of the common curriculum and for the module TS1-S6 (Signal Processing 1) for the specialities "Telecoms and Networks", "ICT for Smart Homes and Buildings", and "Healthcare/Biomedical Engineering".

Learning Outcome

  • This module will show to the students how to study a function of several variables in terms of continuity, of differentiability and of integrability. The Riemann integral, studied in upgrading courses in mathematics, will then be generalized through the Lebesgue integral, particularly useful in probability theory. The students will then have major tools of integration such as the theorems of dominated convergence, Fubini, and the multidimensional change of variable. The notion of uniform convergence will be also introduced, allowing the students to study the continuity, the derivability and the integrability of the limit of a sequence of functions.


PS-S5 Probabilités & statistiques
(PS-S5 Probability and Statistics)

Objectif

Probabilités : fournir aux étudiants les éléments mathématiques pour la modélisation de processus où le hasard ou l’incertitude interviennent. Statistiques : étude d'une part des principaux outils de statistique descriptive, et d'autre part de l'estimation statistique et des principaux tests d'hypothèses.

Compétences

  • Probabilités :
  • 1. Maîtriser des principes fondamentaux de la théorie de la probabilité.
  • 2. Savoir identifier les processus qui vont donner lieu aux variables aléatoires.
  • 3. Savoir résoudre des problèmes appliqués à l'aide de modèles probabilistes simples.
  • 4. Etre capable d'introduire des outils informatiques pour l'implémentation et solution de problèmes probabilistes.
  • Statistiques :
  • 1. Analyser et mettre en forme un jeu de données (calculer des quantiles, construire un histogramme, construire une boite à moustaches,..).
  • 2. Analyser la corrélation entre deux séries et établir un modèle de dépendance linéaire par régression.
  • 3. Maîtriser la construction des intervalles de confiance sous différentes conditions (variance connue ou inconnue).
  • 4. Utiliser les lois de probabilités dans un contexte statistique (loi binomiale, loi exponentielle, loi de Poisson, loi normale, loi du chi2, ...).
  • 5. Formuler et utiliser un test d'hypothèse.
  • 6. Utiliser les fonctions élémentaires du langage R pour la statistique descriptive et l'estimation et les tests d'hypothèse

Bibliographie

  • http://www.lce.esalq.usp.br/arquivos/aulas/2011/LCE5866/Probability-Theory%20and%20Examples.pdf
  • http://www.math.u-psud.fr/~jflegall/IPPA2.pdf

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

  • Probability: provide the students with the mathematical elements for the modelling of processes involving randomness or uncertainty.
  • Statistics: main tools of descriptive statistics, statistical estimation and main tests of hypotheses

Learning Outcome

  • Probability:
  • 1. Master the fundamental principles of probability theory.
  • 2. Know how to identify the processes which are going to give rise to random variables.
  • 3. Know how to solve application problems by means of simple probability models.
  • 4. Be able to introduce computing tools for the implementation and the solution of probability problems.
  • Statistics:
  • 1. Analyze a set of data (calculate quantiles, build a histogram, etc.).
  • 2. Analyze the correlation between two series and establish a model of linear dependence by regression.
  • 3. Master the construction of the reliable intervals under various conditions (known or unknown variance).
  • 4. Use probability distributions in a statistical context.
  • 5. Derive and use a hypothesis test.
  • 6. Use the basic functions of the R language for descriptive statistics, estimation and hypothesis testing.


MNM-S5 Mise à niveau en mathématiques
(MNM-S5 Refresher and Upgrading Course in Mathematics)

Objectif

L'objectif de cette formation est de rappeler les concepts fondamentaux d'analyse et d'algèbre nécessaires à tout étudiant à l’entrée en école d’ingénieur. Les étudiants concernés pourront ainsi consolider leurs connaissances mathématiques et acquérir les bases nécessaires aux différents modules du tronc commun et des spécialités de l’ESIR.

Compétences

  • 1. Maîtriser les concepts fondamentaux d'analyse nécessaire pour chaque étudiant au début de l'école d'ingénieurs (la notion de limite, de continuité, de derivabilité et d'integrabilité dans le sens de Riemann, les outils classiques d'intégration comme le changement de variable et l'intégration par partie, les intégrales généralisées, les suites et séries numériques).
  • 2. Maîtriser les bases de l'algèbre linéaire (des espaces vectoriels, des fonctions linéaires, le calcul matriciel)

Bibliographie

Mathématiques Méthodes et Exercices MP Jean-Marie Monier, Guillaume Haberer, Cécile Lardon Collection: J'intègre, Dunod 2014 - 2ème édition - 612 pages - 193x250 mm EAN13 : 9782100713684

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

The objective of this course is to to refresh the fundamental concepts of mathematical analysis and algebra necessary for every student at the beginning of the engineering school. The students can upgrade their knowledge and acquire the foundation in mathematics necessary for the other ESIR courses.

Learning Outcome

  • 1. Master the fundamental concepts of analysis necessary for every student at the beginning of the engineering school (notion of limit, continuity, derivability and integrability in the sense of Riemann, classic tools of integration such as the change of variable and the integration by part, generalized integrals, numerical series).
  • 2. Master the basics of linear algebra (vector spaces, linear functions, matrix computation).


S6-TI Option INF (Semestre commun)

SYS-S6 Introduction aux systèmes d'exploitation
(SYS-S6 Introduction to Operating Systems)

Objectif

Le but de ce cours est d'introduire les principes de base de la programmation système en s'intéressant aux "couches basses" d'un système informatique. Nous nous pencherons en particulier sur la gestion des variables statiques et dynamiques par un calculateur, sur le fonctionnement des outils de traduction de programmes (assembleur, éditeur de lien, chargeur), et sur la programmation shell.

Compétences

  • Pouvoir réaliser des script de programmation shell simples.
  • Pouvoir expliquer le lien entre un langage de haut niveau et sa représentation binaire.
  • Comprendre et pouvoir expliquer les mécanismes de représentation des entitiés de programmation en mémoire (variables statiques, automatiques, dynamiques, globales).
  • Comprendre et pouvoir expliquer les étapes de traduction d'un programme (assembleur, éditeur de lien, chargeur)

Bibliographie

- Linkers and Loaders by John R. Levine, published by Morgan-Kauffman in October 1999, ISBN 1-55860-496-0. - BASH Programming - Introduction HOW-TO by Mike G mikkey at dynamo.com.ar Thu Jul 27 09:36:18 ART 2000 http://tldp.org/HOWTO/Bash-Prog-Intro-H

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

The module aims to introduce the fundamentals of system programming by focusing on the "lower layers" of a computer system. We will focus in particular on the management of static and dynamic variables by a computer, the stages of a program compilation tool chain (assembler, linker, loader), and shell programming.

Learning Outcome

  • To be able to perform simple shell script programming
  • To be able to explain the link between a high-level language and its binary representation
  • To understand and be able to explain how programming entities are represented in memory (static, automatic, dynamic, and global variables)
  • To understand and be able to explain the stages of a program compilation toolchain (assembler, linker, loader).


PROG2-S6 Programmation 2
(PROG2-S6 Programming 2)

Objectif

Donner aux étudiants des bases solides de programmation en C++

Compétences

  • Connaissance approfondie de la gestion mémoire
  • Connaissance de la notion d'héritage multiple et de la gestion des exceptions
  • Connaissance du langage C++, des concepts associés et de la bibliothèque standard
  • Aptitude à comprendre, entretenir et créer un programme en C+

Bibliographie

  • Bjarne Stroustrup. "Programming: Principles and Practice using C++ (Second Edition)" Addison-Wesley 2014, ISBN 978-0-321-99278-9.

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

Providing students with a solid knowledge in C ++ programming

Learning Outcome

  • Deep understanding of memory management
  • Knowlegde of multiple inheritance and exception handling
  • Knowledge of C++ programming language, concepts and standard library
  • Ability to understand, extend and create a C++ program


ARC2-S6 Architecture des ordinateurs : processeurs, bus, mémoires et périphériques
(ARC2-S6 Computer Architecture: Microprocessors, Buses, Memories and Peripheral Devices)

Objectif

L'objectif de ce module est d'apprendre aux étudiants à utiliser des processeurs (exploitant efficacement leur architecture), concevoir des systèmes simples composés de processeurs, mémoires et de différents périphériques.

Compétences

  • Aptitude à comprendre l’architecture d’un processeur.
  • Aptitude à réaliser un système numérique simple intégrant des processeurs, mémoires et périphériques

Bibliographie

  • “Computer Organization and Design” David A. Patterson, John Hennessy
  • Nios II reference handbook ttps://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/hb/nios2/n2cpu_nii5v1.pd

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]
  • [Validation des compétences en français : par une réalisation de document]
  • [Par une présentation activité] Validation des compétences en français :


Objective

The purpose of this module is to teach students how to use the different processors (taking benefit of their architecture) and to develop simple systems containing processors, memories and peripheral devices.

Learning Outcome

  • Ability to understand a processor’s architecture.
  • Ability to design a simple digital system composed of processors, memories and peripheral devices.


BDD-S6 Bases de données
(BDD-S6 Databases)

Objectif

Découvrir les fondements des bases de données relationnelles: algèbre relationnelle, SQL, modèle entité-associtation, formes normales, connecteurs base de données, et transactions. Explorer les relations complexes entre la réalité et sa représentation en base de données.

Compétences

  • Requêter.
  • Modéliser.
  • Normaliser.
  • Développer des applications avec base de données.
  • Développer des applications base de données en mode agile.
  • Connecter une application via JDBC.
  • utiliser Sqlite et MySql.
  • Réfléchir aux transactions.

Bibliographie

  • Philippe Mathieu, « Des bases de données à l'Internet », (Vuibert, 2000) - un manuel simple, avec un regard sur la programmation des applications base de données.
  • Mana Takahashi, Shoko Azuma, « The Manga Guide to Databases », (Ohmsha & No Starch Press, 2009) - un vrai manuel, mais en format manga.
  • Isabelle Comyn-Wattiau, Jacky Akoka, « Les bases de données », (PUF, 2003 - collection Que sais-je, n° 3685) - pour un survol du domaine.
  • Clare Churcher, « Beginning Database Design » et « Beginning SQL Queries », (APress, 2012) - consacré l'un à la conception des bases de données et l'autre à l'expression de requêtes SQL.
  • Rodolphe Rimelé, « MySQL 5, mémento », (Eyrolles, 2014) - un aide-mémoire très détaillé pour les notations de SQL.
  • A.K. Dewdney, « The new Turing Omnibus », (Owl Books, 2001). Traite de nombreux sujets informatiques, dont un chapitre sur les bases de données relationnelles. Un must read pour une formation en informatique.

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]
  • [Validation des compétences en français : par une réalisation de document]


Objective

Discovering the basics of relational databases: relational algebra, SQL, entity-relationship models, normal forms, database connectors, and transactions. Investigating the complex relationships between reality and its database representation.

Learning Outcome

  • Querying.
  • Modeling.
  • Normalizing.
  • Knowing 1NF.
  • Developing data-base applications.
  • Developing data-base applications with agility.
  • Connecting to data-base with JDBC.
  • Using Sqlite and MySql.
  • Thinking about transactions.


ALG-S6 Algorithmique des graphes
(ALG-S6 Graph Algorithms)

Objectif

Ce module présente les principaux algorithmes sur les graphes. Il commence par une présentation des multiples domaines d'application, des modèles de graphes et des différentes notions et terminologies sur les graphes. On étudie ensuite des algorithmes de parcours, de calcul de la fermeture transitive, de composantes fortement connexes, de plus courts chemins, les problèmes d'ordonnancement et de flots des réseaux de transport. Une part importante est accordée à l'analyse de la complexité des algorithmes. Un mini-projet permet de modéliser un problème réel sous la forme d'un graphe et d'apporter des solutions en utilisant des algorithmes étudiés.

Compétences

A l'issue de ce module, les étudiants devraient être en mesure d’analyser des problèmes combinatoires réels, de déterminer si ces problèmes peuvent être modélisés par des graphes et d’identifier les algorithmes de graphes (en prenant en compte leurs complexités) - ou à défaut, de proposer des adaptations de ces algorithmes ou de concevoir de nouveaux algorithmes - qui permettent d’apporter des solutions à ces problèmes.concevoir de nouveaux algorithmes - qui permettent d’apporter des solutions à ces problèmes.

Bibliographie

  • Graphe et algorithmes, M. Goudran, M. Minoux, Ed. Lavoisier
  • Introduction à l’algorithme, T. Cormen, C. Leiserson, R. Rivest, C. Stein, Ed. Dunod
  • Exercices et problèmes résolus de recherche opérationnelle, Vol1.: Graphes : leurs usages, leurs algorithmes, Roseaux (Nom collectif), Ed. Dunod
  • Algorithmique des graphes, J.M Hélary, polycopié 66, Istic/Université de Rennes 1 Algorithmique des graphes, J.M Hélary, polycopié 66, Istic/Université de Rennes 1

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

This module presents the main existing algorithms on graphs. The multiple application domains are presented followed by the introduction of graph models together with associated notions and terminology. We then study graph search algorithms, transitive closure, strongly connected components, shortest path, job scheduling problems, flows and transport networks. The complexity of these algorithms is seriously considered. A mini-project allows modeling a concrete problem in the shape of graph and providing solutions using some of the studied algorithms.

Learning Outcome

  • At the end of this module, students should be able to analyze combinatory real problems, to determine if those problems can be modeled by graphs and to identify graph algorithms (while taking into account their complexity) that provide solutions, or by default to propose adaptions of exiting algorithms or even to create new algorithms.


AC-S6 Algorithmique et complexité
(AC-S6 Algorithmics and Complexity)

Objectif

Découvrir et adopter la pensée algorithmique : problèmes, fonctions, algorithmes, programmes, calculabilité, complexité, réduction. Découvrir et comprendre les limites formelles qui encadrent la pensée algorithmique: non-décidabilité, classes de complexité P et NP. Découvrir et comprendre des algorithmes variés, et les principes généraux qui les sous-tendent : diviser pour régner, mémoïser, changer de représentation, gloutonnerie, etc. Découvrir différentes façons de s'approcher des limites ainsi définies : force brute, relâchement de la consigne, quasi-algorithmes et pseudo-algorithmes. Découvrir des mesures de complexité moins classiques : ex. complexité amortie et taille de circuit.

Compétences

  • Comprendre la cartographie des problèmes algorithmiques : insolubles, difficilement solubles, aisément solubles.
  • Comprendre et savoir appliquer les outils de mesure de la complexité: ordres de grandeur.
  • Savoir évaluer la complexité d'algorithmes courants.
  • Avoir assimilé des stratégies de résolution de problèmes algorithmiques.
  • Savoir mettre en œuvre et évaluer la mise en œuvre d'algorithmes compliqués

Bibliographie

  • « Petite introduction à l'algorithmique - à la découverte des mathématiques du pas à pas », Pierre Damphousse, (Ellipses, 2005) : pour ce que le titre indique.
  • « The new Turing Omnibus - 66 excursions in computer science », A.K. Dewdney (Owl Books, 2001) : pour une belle brochette de sujets informatiques, dont beaucoup d'algorithmes.
  • « Histoire d'algorithmes, du caillou à la puce », Jean-Luc Chabert et al. (Belin, 1994) : pour une belle brochette d'algorithmes d'avant l'informatique (algorithmes mathématiques) et pour une présentation de l'émergence du concept moderne d'algorithme.
  • « Computers LTD, what they really can’t do », David Harel (OUP, 2003) : pour une introduction très vivante et très compacte aux frontières de l'algorithmique, développe donc plus la calculabilité que l'algorithmique.
  • « Algorithmics, The Spirit of Computing », David Harel (Addison-Wesley, 1987) : pour une approche très progressive des différentes problématiques de l'algorithmique, calculabilité, complexité, et correction, ne constitue pas un catalogue d'algorithmes.
  • « Calculateurs, calculs, calculabilité », Olivier Ridoux et Gilles Lesventes (Dunod, 2008) : pour une autre introduction aux frontières de l'algorithmique, avec un accent sur comment ces choses-là sont démontrées.
  • « Computer algorithms - Introduction to Design and Analysis », Sara Baase (Addison-Wesley, 2nde édition, 1991) : pour l'analyse détaillée d'une belle collection d'algorithmes.
  • « Algorithms Unlocked », Thomas Cormen (MIT Press, 2013, ftp://djvu.dlinkddns.com/Copy/Computing/Algorithms_Unlocked.pdf) : pour le même usage que la référence précédente, avec juste une sélection d'algorithmes différente.
  • « Introduction to the Design & Analysis of Algorithms », Anany Levitin (Addison Wesley, 2003) : comme les deux précédents en plus développé. Avec en prime une tentative de classification des algorithmes qui est intéressante (il n'y a pas de catégorie « Autres » hypertrophiée).
  • « Intelligence artificielle et informatique théorique », Jean-Marc Alliot, Thomas Schiex, Pascal Brisset, Frédéric Garcia (Cépaduès, 2002) : pour une large introduction aux modèles de l'informatique théorique, avec beaucoup d'algorithmes et pseudo-algorithmes qui sortent des sentiers battus. http://www-i1.informatik.rwth-aachen.de/~algorithmus/ : pour ceux à qui il reste un peu d'allemand. Une belle collection d'algorithmes, dont même la traduction automatique de Google rend assez bien compte. Cette collection est devenue un livre : « Algorithms Unplugged », Berthold Vöcking et al. (Springer, 2011). Le site est remarquable, mais le livre est à la fois plus accessible, plus précis, et plus riche : à lire.
  • « Algorithmic Puzzles », Anany et Maria Levitin (Oxford, 2011) : 150 puzzles pour stimuler la pensée algorithmique. Certains sont très connus, mais beaucoup ne le sont pas. Certaines entreprises les utilisent lors des entretiens d'embauche

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]
  • [Validation des compétences en français : par une réalisation de document]


Objective

Discovering and applying algorithmic thinking: problems, functions, algorithms, programs, computability, complexity, reduction. Discovering and understanding the formal limits of algorithmic thinking: non-decidability, complexity classes P and NP. Discovering and understanding various algorithms, and the principles that underly them: divide and conquer, change representation, memoize, greediness. Discovering different ways of approaching theoretical limits: brute force, relaxing specification, quasi-algorithms and pseudo-algorithms. Discovering less classical complexity measures: amortized and circuit size.

Learning Outcome

  • Understanding the landscape of algorithmic problems: unsolvable, extremely hard to solve, easy to solve. Understanding and being able to use the size order language to speak about complexity.
  • Evaluating complexity of simple algorithms.
  • Knowing and using proper solving strategies when solving an algorithmics problem.
  • Implementing algorithms, and evaluating the implementation.


S7-TI Option INF (Parcours-IN)

CIN-S7 Compilation pour l'image numérique
(CIN-S7 Compilation for Image Synthesis)

Objectif

L’objectif de ce cours est de former les étudiants sur les grammaires de langages et les outils mis à leur disposition pour la création, l’analyse et l’interprétation de langages de description pouvant être intégrés dans des plateformes 3D. En effet, tous les logiciels professionnels servant de socle à l’imagerie 3D proposent des langages de script permettant de rapidement prototyper des animations, décrire des comportements ou ajouter de nouvelles fonctionnalités (jeux vidéo, progiciels de modélisation par exemple). D’autre part, des standards de description de scènes 3D (VRML, X3D, etc…) mettent en place des systèmes de description de scènes par l’intermédiaire de langages dédiés décrivant la géométrie et une partie des animations / interactions utilisateurs offertes.

Compétences

  • Maîtrise des notions de compilation et de représentation intermédiaires utiles à l’intégration de langages de scripts au sein des applications 3D.
  • Compréhension de la structure syntaxique des langages
  • Amélioration de la rapidité de prise en main d’un nouveau langage
  • Conception de langages dédiés et de parseurs

Bibliographie

  • Compilers: Principles, Techniques, and Tools (2nd Edition). Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman. 2006.ISBN-13: 978-0321486813
  • The Pragmatic Bookshelf | The Definitive ANTLR Reference. Terence Parr. 2007. ISBN: 978097873925

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

This course aims at training students on formal grammars and tools that helps to create, analyze and interpret languages that can be integrated in 3D platforms. Indeed, all professional software dedicated to 3D imaging offer scripting languages for rapid prototyping of animation, description of behaviors or adding new functionalities. Moreover, 3D scene description standards (VRML, X3D…) propose scripting languages that enable the description of 3D scenes (geometry, animation and user interaction).

Learning Outcome

  • Mastering concepts of compilation and intermediate representations for the integration of scripting languages within 3D applications
  • Understanding the syntactic structure of languages
  • Conception of domain specific languages


IHM-S7 Interface homme-machine
(IHM-S7 Human Machine Interface)

Objectif

Donner les éléments permettant de structurer correctement une application interactive afin de rendre ses différentes parties (en particulier noyau applicatif et couche de présentation) les plus indépendantes possibles les unes des autres, dans le but de faciliter la maintenance et les évolutions de l'ensemble.

Compétences

  • Conception et réalisation d'une application interactive permettant d'agir sur les objets applicatifs (appliquer des traitements particuliers sur ces objets ou sur l'application) via des manipulations directes des représentations graphiques de ces objets.
  • Utilisation d’une API dédiée (Qt)

Bibliographie

//

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

Provide the foundation for accurately structuring an interactive application in order to keep the different layers (particularly the application core and interface layer) as independent as possible in order to facilitate the maintenance and upgrading of the application.

Learning Outcome

  • Ability to design and implement an interactve application allowing to modify the application objects as well as the whole application via direct manipulation of graphical representations of these objects
  • ability to use a dedicated API (Qt)


SI-S7 Synthèse d'images
(SI-S7 Introduction to Computer Graphics)

Objectif

  • Donner les compétences pour créer une application 3D interactive.
  • Initiation au rendu photoréaliste avec le lancer de rayon

Compétences

  • OpenGL
  • GLSL
  • Ray tracin

Bibliographie

//

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

  • Provide the skills needed to design and develop 3D interactive application.
  • Introduction to ray tracin

Learning Outcome

  • OpenGL
  • GLSL
  • Ray tracing.


MATI-S7 Mathématiques pour l'image
(MATI-S7 Mathematics for Image Modeling and Analysis)

Objectif

Ce module présente aux élèves ingénieurs les outils nécessaires à la modélisation mathématique des images et des problèmes associés. Au cours du module ces outils seront mis en application afin de résoudre des problèmes classiques en analyse et traitement d'images (exemples : débruitage , segmentation d'images). En particulier des méthodes numériques d'optimisation seront présentées et leur utilisation dans le cadre de l'imagerie numérique sera introduite. Une première partie concernera les techniques variationnelles basées sur les équations aux dérivées partielles (EDP). La seconde partie du cours portera sur la modélisation statistique des images.

Compétences

  • Méthodes numériques d'optimisation
  • Méthodes variationnelles pour la restauration d'images
  • Analyse bayesienne des images
  • Débruitage
  • Inpainting
  • Segmentatio

Bibliographie

//

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

In this module, students will learn some methods for mathematical image modeling. These methods will be applied to classic problems in image processing and analysis (such as denoising, inpainting, segmentation). Numerical optimisation techniques will be presented. The first part will be about variational methods (PDE) and the second one on statistical image modeling.

Learning Outcome

  • Numerical optimisation methods
  • Variational methods for image restoration
  • Bayesian image modeling
  • Denoising
  • Inpainting
  • Segmentation


TIA-S7 Traitement d'images avancé
(TIA-S7 Advanced Image Processing)

Objectif

L'objectif de ce module est d'apporter aux élèves ingénieurs une large palette d'outils de traitement d'image qui leur permettront d'appréhender ultérieurement diverses applications comme l'estimation et la détection d'événements, la classification et reconnaissance des formes, la compression, la vision par ordinateur, etc. Ce cours fait suite au module introduisant les bases de l'image numérique. Dans ce cours, les notions fondamentales de traitement d'images sont approfondies : les aspects temps-fréquence, filtrage, morphologie mathématique ainsi que la segmentation des images au travers des approches contours et régions. Au travers des TPs proposés, les étudiants implémenteront et analyseront les algorithmes de traitement d'images présentés en cours.

Compétences

  • Être capable de concevoir et programmer des traitements avancés sur des images numériques
  • Être capable d'utiliser différentes librairies de traitement d'image.

Bibliographie

Dougherty, E.R. and Lotufo, R.A.Hands-on Morphological Image Processing. SPIE PRESS, 2003 Gonzalez, R.C. and Woods, R.E. Digital Image Processing, Third Edition. Prentice Hall, 2008

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

The aim of this course is to provide engineering students with a wide range of image processing tools to apprehend subsequently various applications such as event detection, classification and pattern recognition, compression, computer vision, etc. In this course, the basics of image processing are investigated: time-frequency aspects, filtering, morphological image analysis and image segmentation through the contours and regions approaches. In the practicals, students will implement and analyze the image processing algorithms presented during the course.

Learning Outcome

  • To be able to design and implement advanced treatments on digital images
  • To be able to use different image processing libraries


BINP-S7 Bases de l’image numérique et programmation
(BINP-S7 Basics on Digital Image Processing and Programming)

Objectif

La manipulation d’images nécessite la maîtrise des représentations logicielles des images ainsi que des algorithmes usuels de manipulation. Ce module introduit les concepts de base indispensables relatifs à l’acquisition, la représentation, le manipulation et la visualisation des images numériques. Il introduit également les outils fondamentaux du traitement d’image, qui seront approfondis dans les modules suivants. Enfin il donne aux étudiants les connaissances logicielles spécifiques au traitement d’image, qui leur permettront de mettre en oeuvre les algorithmes vus dans les autres cours. L’objectif de ce module est de fournir une vue d’ensemble du traitement d’image tant du point de vue algorithmique que logiciel, donnant ainsi aux étudiants les bases leur permettant de structurer leurs connaissances futures en traitement d’image.

Compétences

  • Être capable de concevoir et programmer en C++ des traitements simples sur des images numériques
  • Être capable d’utiliser une librairie de traitement d’imag

Bibliographie

Gonzalez, R.C. and Woods, R.E. Digital Image Processing, Third Edition. Prentice Hall, 2008

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

Manipulating images requires to acquire knowledge on software representations of the images as well as the usual manipulation algorithms. This course introduces the basic concepts needed for the acquisition, representation, manipulation and visualization of digital images. It also introduces the basic tools of image processing, which will be deepened in the following courses. Finally it gives students the specific software skills on image processing that will enable them to implement the algorithms seen in other courses. The objective of this module is to provide an overview of image processing both from an algorithmic and software point of view, giving students the basics allowing them to structure their future knowledge in image processing.

Learning Outcome

  • Be able to design and implement in C ++ simple treatments on digital images
  • Be able to use an image processing library


S8-TI Option INF (Parcours-IN)

SIA-S8 Synthèse d'images avancée
(SIA-S8 Advanced Image Synthesis)

Objectif

Ce module fait suite au module SI-S7 (synthèse d’image), afin de former les étudiants aux techniques de rendu photo réaliste et aux techniques d’animation avancées. Il s’agit de leur fournir des compétences solides et nécessaires leur permettant de revendiquer des métiers dans les domaines de la conception d’outils d’animation / rendu pour la modélisation 3D, la simulation, les jeux vidéos ou encore les effets spéciaux par exemple. L’objectif de ce cours est double : présenter des modèles d’illumination sophistiqués pour calculer l’éclairage global dans une scène et introduire les techniques principales utilisées en animation par ordinateur.

Compétences

  • Conception, développement de moteurs de rendu par illumination globale
  • Conception et utilisation d’un moteur d’animation
  • Couplage des techniques d’animation en fonction des besoin

Bibliographie

  • PBRT. Pharr, Humphreys. 2010. ISBN : 9780123750792.
  • Robust Monte Carlo Methods for Light Transport Simulation. Eric Veach, Ph.D. dissertation, Stanford University, December 1997.
  • Global Illumination Compendium. Philip Dutré. 2003. (http://people.cs.kuleuven.be/~philip.dutre/GI/TotalCompendium.pdf)
  • Computer Animation Algorithms and Techniques. Rick Parent. 2012. ISBN: 978-0-12-415842-9 (http://www.siggraph.org/education/materials/HyperGraph/animation/rick_parent/Outline.html)

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

This module follows the SI-S7 module (Image Synthesis) in order to train the students in photorealistic rendering techniques and computer animation techniques. It provides students with solid competences to work in the fields of animation tools for design / rendering for 3D modeling , simulation, video games or special effects for example. It aims at (1) presenting sophisticated global illumination models and (2) introducing the main techniques used in computer animation.

Learning Outcome

  • Design and development of renderers using global illumination models
  • Design and use of an animation engine
  • Coupling of animation techniques


V3D-S8 Vision 3D
(V3D-S8 3D Computer Vision)

Objectif

L’objectif de ce module de vision par ordinateur est de fournir aux élèves ingénieurs des connaissances fondamentales dans le domaine de l’analyse de scènes 3D et en particulier de la géométrie sous-jacente. Les aspects géométriques du traitement d'image et de la vision par ordinateur sont présentés. Ces connaissances sont indispensables pour faire le lien avec les enseignements en synthèse d'image. D'un point de vue pratique, ce sont les bases nécessaires à la compréhension de la perception 3D.

Compétences

  • À l’issue de ce module, l'étudiant aura acquis l’ensemble des concepts présentés
  • sera en mesure de concevoir et programmer en C++ des algorithmes de vision par ordinateur

Bibliographie

Szeliski, Computer vision, Springer 2013

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

The goal of this lecture is to provide a general overview of 3D computer vision. We focus on Image formation, camera calibration, stereovision, multi-view geometry, image based image rendering.

Learning Outcome

  • A good know-how in 3D computer vision.
  • A practical overview of the implementation of the learnt algorithms


ACI-S8 Analyse et classification d’images
(ACI-S8 Image Classification and Analysis)

Objectif

L’objectif de ce module est de fournir aux élèves ingénieurs des connaissances fondamentales en analyse et classification d’images. Les algorithmes d’apprentissage artificiel sont aujourd’hui à la base des systèmes de classification et de reconnaissance des formes. Le problème que cherche à résoudre la classification est d'associer une étiquette à une donnée qui peut se présenter sous forme d'une image. Des méthodes générales ont été développées en reconnaissance des formes pour extraire automatiquement des informations des données afin de caractériser les classes de formes (apprentissage) et d'assigner automatiquement des données à ces classes (classification). En général, l’opération de classification comprend 2 étapes : l’extraction de caractéristiques et la décision qui consiste à associer une description symbolique à l’objet sur la base de ses caractéristiques. Ce module introduit les notions fondamentales de l’intelligence artificielle, ainsi que les algorithmes standard d’apprentissage numérique supervisés et non supervisés.

Compétences

  • Reconnaître un problème d’apprentissage et le formaliser
  • Choisir une méthode adaptée aux données
  • Calculer des représentations : obtenir une représentation des données compatible avec les outils d'apprentissage et de décision utilisés.
  • Utilisation des outils dédiés

Bibliographie

  • Apprentissage artificiel - Concepts et algorithmes. Antoine Cornuéjols, Laurent Miclet. Eyrolles, 2010. Pattern Recognition And Machine Learning. Christopher M. Bishop. Springer, 2006. Machine Learning. Tom Mitchel. McGraw Hill, 1997. Data Mining: Practical Machine Learning Tools and Techniques (Third Edition). Ian H. Witten, Eibe Frank, Mark A. Hall. Morgan Kaufmann, 2011.

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

The aim of this course is to provide basic knowledge on image analysis and classification. The machine learning algorithms are now the basis of pattern recognition and classification systems. The problem is to associate a label to a data that can be an image. General methods were developed in pattern recognition to automatically extract information from the data in order to characterize the classes (learning) and then automatically assign data to these classes (classification). In general, the classification comprises two stages: feature extraction and the decision which associate a symbolic description to the object based on its characteristics. This module introduces the basic concepts of artificial intelligence, as well as standard supervised and unsupervised machine learning algorithms.

Learning Outcome

  • Recognize and formalize a learning problem
  • Choose a suitable method according to data
  • Compute an image representation consistent with the learning tools and decision used
  • Use dedicated tools


ACV-S8 Analyse et compression vidéo
(ACV -S8 Mathematical Analysis and Video Compression)

Objectif

  • Base de la théorie de l'information
  • Outils de compression (codage entropique, codage prédictif, transformée de type DCT, quantification, estimation de mouvement, métrique de qualité)
  • Norme de compression JPEG
  • Introduction à la norme MPEG2.

Compétences

  • Maîtriser les notions fondamentales pour comprendre les normes de compression
  • Comprendre un standard de compressio

Bibliographie

  • Vasudev Bhaskaran, Konstantinos Konstantinides, Image and Video Compression Standards: Algorithms and Architectures, Springer Science & Business Media, 30 juin 1997 - 454 pages Madhuri A. Joshi, Mehul S. Raval, Yogesh H. Dandawate, Kalyani R. Joshi, Shilpa P. Metkar, Image and Video Compression: Fundamentals, Techniques, and Applications, CRC Press, 21 nov. 2014 - 236 pages

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

  • Basics of information theory
  • tools for compressing a signal (entropic coding, predictive coding, DCT transform, quantization, motion estimation, quality metric)
  • JPEG compression standard
  • introduction to MPEG2 standard

Learning Outcome

  • Master the fundamental notions used in image and video compression.
  • Be able to understand a compression standard.
  • Knowledge of JPEG and MPEG2 standards


MDI-S8 Méthodes de développement industriel
(MDI-S8 Industrial Software Development Tools and Methods)

Objectif

Ce module vise à donner une connaissance pratique des méthodes de développement utilisées dans l'industrie, à la fois sur le plan technologique, avec une approche du développement de logiciels par objets avec UML (Unified Modeling Language) ou de systèmes avec SysML (Systems Modeling Language), et sur le plan organisationnel avec l'introduction à des techniques de conduite et de gestion de projets, et une sensibilisation à l’ingénierie des exigences.

Compétences

A l'issue de cette formation, l'étudiant sera en mesure de planifier et de gérer un projet de développement avec un cycle de vie en spirale incluant une expression des exigences, une analyse (avec UML ou SysML), une conception avec des patrons de conception (design patterns), et une réalisation concrète dans un environnement industriel.

Bibliographie

  • Développement de logiciel à objets avec UML (J.-M. Jézéquel, N. Plouzeau, Y. Le Traon, Université de Rennes 1, Poly C119)
  • RefCardz Design Patterns

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

This course will provide a deep understanding of the practical and industrial tools and methods for software and systems development, both at the technological level with object-oriented approaches with UML (Unified Modeling Language) and SysML (Systems Modeling Language), and at the organizational level with an introduction to software project management and requirement engineering.

Learning Outcome

  • The student will be able to plan and manage a software or system development project with an appropriate process, a sound management of the requirements, and a practical application of design patterns.


PROJINFOIN-S8 Projet IN
(PROJINFOIN-S8 Projet IN)

Objectif

L’objectif du module de projet est de confronter l’élève à ses futures fonctions d’ingénieur par une mise en situation. Les projets doivent permettre à l’élève d’acquérir une première expérience des activités d’ingénierie, notamment au regard des aspects organisationnels et des problèmes de spécification technique. Le projet en groupe s’appuie sur un sujet technique, proposé par un enseignant. Ce projet à caractère technique peut revêtir une dimension pluridisciplinaire (électronique/informatique) et nécessite à la fois un travail en équipe (organisation, contrôle et partage des tâches), une recherche bibliographique (documentation technique) et la réalisation technique du projet.

Compétences

  • Au cours de ces projets, l’élève ingénieur développe les compétences suivantes : Mobiliser ses connaissances et sa compréhension du champ scientifique et technique de sa spécialité
  • Effectuer une veille technologique ciblée et pertinente
  • La maîtrise des techniques méthodologiques (gestion de projet)
  • La maîtrise des méthodes et des outils du métier d'ingénieur : identification et résolution de problèmes, même non familiers et non complètement définis, collecte et interprétation de données, utilisation des outils informatiques, analyse et conception de systèmes complexes, expérimentation
  • Concevoir et mettre en oeuvre des systèmes à forte composante informatique
  • La capacité à s'intégrer dans une organisation, à l’animer et à la faire évoluer : engagement et leadership, management de projets
  • La communication et les qualités d’expression orale

Bibliographie

Validation

  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]
  • [Validation des compétences en français : par une réalisation de document]
  • [Par une présentation activité] Validation des compétences en français :


Objective

The goal of the project is, for a group of 4/5 students to implement a state-of-the-art algorithm in the domain of vision, or image synthesis.

Learning Outcome

  • Project management
  • Implementation of a solution to a significant problem
  • Working in a group
  • Communication skills


S9-TI Option INF (Parcours-IN)

CAV-S9 Communication audio-visuelle
(CAV-S9 Audio-Visual Communication)

Objectif

Ce cours sur la communication audio-visuelle fait suite au module ACV-S8 (Analyse et compression vidéo) dans lequel de nombreux outils algorithmiques ont été introduits. Plus spécifiquement, les normes de compression vidéo H264, HEVC et pour des contenus 3D sont présentées. Des algorithmes de post production, comme l'inpainting et la colorisation, sont présentés.

Compétences

  • Maîtriser les normes de compression vidéo.
  • Maîtriser les algorithmes de post-production.

Bibliographie

Books: High Efficiency Video Coding (HEVC) Algorithms and Architectures, Editors: Sze, Vivienne, Budagavi, Madhukar, Sullivan, Gary J. (Eds.) H.264 and MPEG-4 Video Compression: Video Coding for Next-generation Multimedia, I. Richardson, John Wiley & Sons, 19 déc. 2003 - 281 pages

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

This course on audio-visual communications follows the ACV-S8 module (Video Analysis and Compression) in which a wide range of algorithmic tools were introduced. More specifically, it aims at presenting H.264, HEVC as well as 3D video compression standards. Besides these standards, we also present some post-production tools, such as color grading and inpainting.

Learning Outcome

  • Knowledge of H.264, HEVC and 3D video compression standards.
  • Knowledge of post-production tools.


ES-S9 Effets spéciaux
(ES-S9 Special Effects)

Objectif

  • Les objectifs du module sont :
  • - Apprendre aux étudiants des algorithmes spécifiques très utilisés dans le domaine des effets spéciaux : manipulation des gammes de couleurs et de luminances, déformation d’images (morphing et warping), animation et rendu des systèmes de particules
  • - Apporter aux étudiants la connaissance des standards, des environnements logiciels, des pratiques de l’industrie du cinéma
  • - Montrer aux étudiants les techniques récentes utilisées pour l’augmentation des vidéos avec des images virtuelles (réalité augmentée: RA temps-réel, localisation, RA en post-production (matchmoving)
  • - Cinéma 3D

Compétences

• Localisation de caméras • Augmentation des images • Manipulation des gammes de couleurs et de luminances • Manipulation d’images • Systèmes de particules

Bibliographie

//

Validation

  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]
  • [Par une présentation activité] Validation des compétences en français :


Objective

Presentation of algorithms dedicated to special effects (FX). We focus on real-time augmented reality (AR) and matchmoving. We also consider a set of image manipulation tools (morphing, warping, animation and rendering of a set of particles, color manipulation. We also consider cinema techniques such as MOCAP.

Learning Outcome

  • Camera localisation
  • Color and luminance manipulation
  • Image manipulation
  • MOCAP
  • Particles


IMM-S9 Imagerie médicale
(IMM-S9 Medical Image Processing)

Objectif

Ce module apporte les compétences professionnelles indispensables aux métiers de l’imagerie médicale. Les débouchés professionnels possibles se situent dans le secteur hospitalier pour le traitement et l'analyse des images médicales, dans l'industrie de l'imagerie médicale (exemple : fabricants d’appareil d’imagerie). L’imagerie prend en effet une importance sans cesse croissante dans le monde médical et des techniques d’analyse automatique de ces images (amélioration de la qualité, aide au diagnostic) sont devenues nécessaires.

Compétences

  • Imagerie médicale
  • Modalités d'imagerie médicale
  • Recalage
  • Segmentation
  • Rendu volumiqu

Bibliographie

xx

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

In this module, students will learn some methods for medical image processing and analysis. The different image modalities will be presented. The main medical image processing methods will be studied: registration, segmentation of volumic images. Finally some volume rendering will be presented.

Learning Outcome

  • Medical image processing
  • Medical image modalities
  • Registration
  • Segmentation
  • Volume rendering


JV-S9 Jeux vidéo
(JV-S9 Video Games)

Objectif

  • Introduction au game-design.
  • Développement de jeux vidéo les défis et les enjeux.
  • IA pour les jeux

Compétences

Développement de jeux vidéo

Bibliographie

//

Validation

  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]
  • [Par une présentation activité] Validation des compétences en français :


Objective

  • Introduction to game design.
  • Challenges and common issues in video game development.
  • AI for game

Learning Outcome

  • Be able to develop video games


VO-S9 Vision par ordinateur
(VO-S9 Computer Vision)

Objectif

Cet enseignement a pour objectif de permettre d'acquérir les compétences indispensables au futur ingénieur confronté au domaine de la vision par ordinateur. La vision par ordinateur est à la base de tout système de vision artificielle prenant en entrée une ou plusieurs images numériques avec pour objectif d’en extraire des informations relatives à la scène observée. L’objectif de ce module est de fournir un panorama des méthodologies sous-jacentes et des champs d’applications concernés. Ces champs d’application sont extrêmement vastes : on trouve des applications industrielles, militaires, aérospatiales ou encore médicales. Les applications présentées dans ce module sont notamment la vision robotique qui vise à exécuter des commandes en fonction d’informations visuelles et l’indexation qui s’intéresse à l’analyse automatique des images et des vidéos. Ces applications reposent entre autres sur l’analyse de mouvement, la reconnaissance d’objets et la mise en correspondance. Les méthodes abordées dans ce module sont l’extraction du mouvement apparent des points d’une l'image, la reconnaissance des objets, l’indexation et la recherche des images et des vidéos, l’estimation et la caractérisation du mouvement tridimensionnel de la caméra, la détection et la segmentation des objets en mouvement dans la scène et la définition des lois de commandes permettant de spécifier une consigne précise dans l'espace image.

Compétences

  • Les étudiants maitriseront les concepts avancés de la vision par ordinateur en particulier concernant l’analyse de scène complexe.
  • Ils auront mis en œuvre des algorithmes de reconnaissance d’objet et de commande référencée vision pour la robotique

Bibliographie

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]
  • [Par une présentation activité] Validation des compétences en français :


Objective

Learn computer vision techniques: visual servoing, pattern recognition, local descriptors, machine learning, indexation

Learning Outcome

  • Manipulation of advanced computer vision notions. Implementation of these techniques


PROJINFOIN-S9 Projet industriel
(PROJINFOIN-S9 Industrial Project)

Objectif

L'objectif des projets industriels est de confronter un groupe d'étudiants à une problématique émanant d'une entreprise. Les étudiants doivent traiter un problème ou une étude proposée et être capable de restituer sous forme claire les résultats de leur travail.

Compétences

  • Compétence d'analyse de problème
  • Compétence technique afin de résoudre l'étude
  • Compétence organisationnelle
  • Compétence rédactionnelle
  • Compétence de restitution de résultat

Bibliographie

  • Support de cours de communications

Validation

  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]
  • [Validation des compétences en français : par une réalisation de document]
  • [Par une présentation activité] Validation des compétences en français :


Objective

A group of students has to deal with a problem that has been proposed by a company. Students have to solve the problem and to present the outcomes of the project.

Learning Outcome

  • Technical skills to analyze and solve a problem
  • Project manangement
  • Oral and written skills
  • Communication


S7-TI Option INF (Parcours-SI)

SYS2-S7 Systèmes d'exploitation des ordinateurs
(SYS2-S7 Operating Systems )

Objectif

Ce cours s'intéresse aux concepts fondamentaux définissant le rôle de gestionnaire de ressources d'un système d'exploitation centralisé. On s'intéresse particulièrement à la notion de processus et de thread, à la gestion de la mémoire et au système de fichiers. Ce cours ne s'attache à aucun matériel ni système d'exploitation particulier. Toutefois, de nombreux exemples qui appartiennent aux systèmes d'exploitation courants (Unix, Linux et Windows) sont présentés.

Compétences

  • Connaissance du fonctionnement interne des systèmes d’exploitation.
  • Utilisation des concepts de parallélisme (processus et multithreading)

Bibliographie

  • 1/ S.Krakowiak 'Principes des systèmes d'exploitation des ordinateurs' Dunod
  • 2/ J.L Peterson et A. Silberschatz 'Operating system concepts', Addison-Wesley Publishing Compagny
  • 3/ A. Tanenbaum 'Systèmes d'exploitation', Person Education

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

This course focuses on the basic concepts defining the role of resource manager of a centralized operating system. It is particularly interested in the notion of process and thread, the memory management and file system. This course focuses on no equipment or particular operating system. However, many examples that belong to the common operating systems (Unix, Linux and Windows) are presented.

Learning Outcome

  • Knowledge of the inner workings of operating systems
  • Using parallelism concepts (process and multithreading)


IR-S7 Initiation aux réseaux informatiques
(IR-S7 Computer Networks)

Objectif

Cet enseignement introduit les notions fondamentales et les principaux mécanismes intervenant dans les réseaux informatiques : les mécanismes et protocoles des couches basses et des couches hautes (applications et services). Un chapitre est consacre aux protocoles et services de l'architecture Internet. A l'issue de cet enseignement, l'élève sera en mesure d'appréhender n'importe quelle architecture de réseaux et être capable d'y développer des services et applications.

Compétences

Maîtrise des concepts fondamentaux des réseaux informatiques. Compréhension du fonctionnement d'un réseau local et maîtrise des protocoles associés. Compréhension du fonctionnement d'Internet et maîtrise des protocoles associés.

Bibliographie

  • James F. Kurose and Keith W. Ross : Computer Networking: A Top-Down Approach Featuring the Internet

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]
  • [Par une présentation activité] Validation des compétences en français :


Objective

This course introduces the fundamental concepts of computer networking. A particular focus is given to the Internet model, in which we explore the design strategies and the protocols..

Learning Outcome

  • Mastering the basic concepts in networking.
  • Understanding local and wide area networking and the different protocols involved.


COMP-S7 Compilation
(COMP-S7 Compilers)

Objectif

Découvrir les fonctions d'un compilateur, leurs rôles et la façon dont elles sont réalisées : interface entre génie logiciel et système d'exploitation, analyse lexicale et syntaxique, analyse dite sémantique, production de code intermédiaire, analyse et transformation de code, production de code cible. Découvrir les fonctions d'une machine langage et leurs rôles : gestion de mémoire, représentation des données et du contrôle, interface entre processus d'exécution et système d'exploitation. Développer la curiosité pour l'anatomie des langages de programmation. Explorer la rencontre entre les exigences du génie logiciel qui façonnent les langages de programmation et les exigences du système d'exploitation qui façonnent la machine langage. Même si cela ne rentre pas dans les objectifs de ce module, il contient aussi une initiation à l'agilité et au test, deux compétences qui sont nécessaires pour développer le projet prévu dans ce module.

Compétences

  • Développer une application informatique dirigée par la syntaxe de ses entrées.
  • Utiliser des outils logiciels de description de langage : ANTLR et Xtext.
  • Valider l'application.

Bibliographie

  • « Compilateurs : principes, techniques et outils » par Aho, R. Sethi et J. Ullman (multiples éditions, Dunod) : pour un classique, le « Dragon », un peu ancien, mais incontournable.
  • « Les compilateurs : théorie, construction, génération » par R. Wilhelm et D. Maurer (1994, Masson) : pour une approche formalisée de la compilation.
  • « Modern compiler design » par D. Grune, H.E. Bal, C.J.H. Jacobs et K.G. Langendoen (2001, Wiley) : pour une approche pragmatique.
  • « Compilation des langages de programmation » par M. Gautier (2006, Ellipses) : pour une approche orientée projet.
  • « Programming language pragmatics » par M. Scott (plusieurs éditions, Morgan Kaufmann) : pour alimenter la curiosité concernant les langages de programmation.
  • « The Definitive ANTLR Reference: Building Domain-Specific Languages » par T. Parr (2007, Pragmatic Bookshelf, http://www.pragprog.com/titles/tpantlr/the-definitive-antlr-reference) : pour comprendre comment utiliser ANTLR.
  • « Implementing Domain-Specific Languages with Xtext and Xtend » par Lorenzo Bettini (PACKT, 2013) : pour comprendre comment utiliser Xtext.
  • « Beautiful Code: Leading Programmers Explain How They Think » édité par Andy Oram et Greg Wilson (2007, O'Reilly, http://vample.com/ebooks/OReilly.Beautiful.Code.Jun.2007.pdf) : pour quelques exemples de codes relatifs à ce cours.

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]
  • [Validation des compétences en français : par une réalisation de document]
  • Suivi longitudinal d'un projet de réalisation de compilateur, développé en mode agile, et formant le moteur d'une classe inversée.


Objective

Discovering the functions of a compiler, their role, and the way they are implemeted : interface between software engineering and operating systems, lexical and syntactic analysis, so called semantic analysis, production of intermediate code, analyzis and transformation of code, production of executable code. Discovering the functions of a language machine, their roles and the way they are implemented: memory management, representation of data and control, interface between the execution process and the operating system. Developing a curiosity for the anatomy of programming languages. Exploring the combination of software engineering issues that shape programming languages and operating system issues that shape language machines. Even if it does not actually belong to the objectives of compiler module, some time is spent for a minimal competence in agile software development and for testing methodology; both are necessary for the safe progress of the module project.

Learning Outcome

  • Developing syntax directed software applications.
  • Using software tools for describing languages: ANTLR and Xtext.
  • Testing the application.


TL-S7 Théorie des langages
(TL-S7 Formal Language Theory)

Objectif

Découvrir et apprendre à utiliser la théorie des langages de description de langages les plus utilisés dans les applications informatiques : expressions régulières et grammaires algébriques, concept de puissance d'expression et de hiérarchie de Chomsky, classes de reconnaisseurs de langages, automates finis, automates à pile, analyseurs LL. Découvrir et apprendre à résoudre les difficultés d'usage de ces formalismes : non-déterminisme, ambiguïté, limitation des reconnaisseurs. Découvrir et apprendre à utiliser des outils qui mettent en œuvre ces théories : ANTLR et Xtext.

Compétences

  • Choisir le bon formalisme pour chaque besoin : langages rationnels ou algébriques.
  • Développer des expressions régulières ou une grammaire algébrique en fonction d'un besoin.
  • Les mettre en œuvre en utilisant des outils logiciels : ANTLR et Xtext.
  • Valider ces mises en œuvre.
  • Résoudre les difficultés inhérentes à ces systèmes

Bibliographie

  • Jacques Vélu, « Méthodes mathématiques pour l'informatique », (Dunod 2005). Traite de nombreux sujets, dont la théorie des langages formels.
  • André Arnold et Irène Guessarian, « Mathématiques pour l'informatique », (ÉdiScience, 2005). Idem en plus austère.
  • Scheila Greibach, « Formal languages: Origins and Directions », (Annals of Computing History, 1981). Traite de l'histoire des concepts de la théorie des langages formels.
  • A.K. Dewdney, « The new Turing Omnibus », (Owl Books, 2001). Traite de nombreux sujets informatiques, dont la théorie des langages formels. Un must read pour une formation en informatique.
  • Les travaux pratiques utilisent les outils ANTLR et Xtext, décrits dans les ouvrages suivants, Terence Parr, « The Definitive ANTLR Reference », (Pragmatic Bookshelf, 2007) et Lorenzo Bettini, « Implementing Domain-Specific Languages with Xtext and Xtend » (Packt, 2013)

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]
  • [Validation des compétences en français : par une réalisation de document]


Objective

Discovering and learning to use the theory of language description languages that are the most frequently used in software applications: regular expressions and automata, expressive power and Chomsky's hierarchy, classes of language parsers, finite automata, stack automata, LL parsers. Discovering and learning to solve difficulties in using these formalisms: non-determinism, ambiguity, limitations of parsing algorithms. Discovering and learning to use software tools that implement these theories: ANTLR and Xtext.

Learning Outcome

  • Choosing the proper formalism for each purpose: rational languages or algebraic languages.
  • Designing regular expressions and algebraic grammars on purpose.
  • Implementing them using software tools: ANTLR and Xtext.
  • Validating them.
  • Solving difficulties that are inherent to these systems.


AFP-S7 Analyse et conception formelles
(AFP-S7 Software Formal Analysis and Design)

Objectif

Initier les étudiants à l’utilisation de méthodes formelles pour la spécification et le développement de logiciels sûrs. L’accent est mis sur la compréhension des formules logiques et sur leur utilisation pour la spécification de propriétés de programmes. Les programmes considérés seront définis dans un style fonctionnel. L'outil de développement formel utilisé est Isabelle/HOL et le langage d'exportation et d'intégration choisi est Scala.

Compétences

A l’issue de ce module, l’étudiant sera capable de programmer une application dans un langage de type fonctionnel et de définir en logique les propriétés attendues de cette application. Il sera, également, en mesure de formaliser les programmes et les propriétés à l’aide d’un assistant de preuve et de mener à bien leur vérification dans cet outil.

Bibliographie

  • Tobias Nipkow, Lawrence C. Paulson and Markus Wenzel. A Proof Assistant for Higher-Order Logic. Volume 2283 of Lecture Notes in Computer Science. Springer Verlag. 2003.
  • Martin Odersky, Lex Spoon, and Bill Venners. Programming in Scala, Second Editio, a comprehensive step-by-step guide. Artima.

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

Teach students how to use formal methods for specifying and developping safe reliable software. We put the stress on students understanding logic formulas and how to use them to specify properties on programs. Programs will be defined in functional style. The formal development tool is Isabelle/HOL and the programming language is Scala.

Learning Outcome

  • Program an application in a functional programming language
  • Define properties of a program using logic
  • Program, formalise and prove software in a proof assistant.


FD-S7 Fouille de données
(FD-S7 Data Mining)

Objectif

L'objectif de ce cours est de présenter de techniques de fouille de données (symbolique et statistique). Ce cours vise également à familiariser des étudiants avec des outils de fouille de données et démontrer des applications pratiques de méthodes de fouille de données dans des situations réelles.

Compétences

  • Data mining
  • Machine learning

Bibliographie

  • Jiawei Han, Micheline Kamber, Jien Pei. Data mining: concepts and techniques. Morgan Kauffmann (3rd ed.)

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

The objective of this course is to present the fundamental data mining techniques. The course also aims to familiarize the students with data mining tools, as well as to demonstrate practical applications of data mining techniques in real application contexts.

Learning Outcome

  • Data Mining
  • Machine Learning


S8-TI Option INF (Parcours-SI)

SPP-S8 Synchronisation des programmes parallèles
(SPP-S8 Synchronization of Parallel Programs)

Objectif

Le but de ce module est d'une part d'introduire le concept d'activités parallèles et d'autre part d'étudier les mécanismes et les méthodes de synchronisation nécessaires pour décrire et résoudre les problèmes de compétition et de coopération qui se posent au concepteur d'applications dans un contexte centralisé.

Compétences

  • Décrire les mécanismes traditionnels de synchronisation des programmes concurrents (verrous, sémaphores, barrières, ...).
  • Comparer, évaluer, et choisir quels mécanismes de synchronisation utiliser dans des situations courantes de programmation concurrente (compétition, collaborations, lecture / écriture, consommation / production).
  • Appliquer et utiliser ces mécanismes dans des programmes informatiques concrets.
  • Modéliser et analyser des algorithmes et des programmes concurrents, en particulier pour justifier (ou invalider) leurs propriétés éventuelles de sûreté (safety) et vivacité (liveliness).
  • Positionner et présenter quelques approches alternatives de programmation de la concurrence, par exemple à base de structure de données immuables, ou en utilisant un modèle par acteur (cas des langages Erlang ou Scala)

Bibliographie

  • Raynal M., Concurrent Programming: Algorithms, Principles, and Foundations, Springer, 515 pages, 2013, ISBN 978-3-642-32026-2

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

This module introduces the basic concepts of parallel programming, along with the standard methods of synchronization required to describe and solve the typical problems of competition and cooperation that a programmer must address in a parallel centralized environment.

Learning Outcome

  • Describe the traditional mechanisms of synchronization of concurrent programs (locks, semaphores, barriers, ...).
  • Compare, evaluate, and select which synchronization mechanisms to use in typical situations of concurrent
  • programming (competition, collaboration, read / write, consumption / production).
  • Apply and use these mechanisms in concrete computer programs.
  • Model and analyze concurrent algorithms and programs, in particular to justify (or invalidate) their possible properties of safety (safety) and vivacity (liveliness).
  • Position and present some alternative approaches to programming competition, for example based on immutable data structure, or using a model actor (case of Erlang or Scala languages).


MDI-S8 Méthodes de développement industriel
(MDI-S8 Industrial Software Development Tools and Methods)

Objectif

Ce module vise à donner une connaissance pratique des méthodes de développement utilisées dans l'industrie, à la fois sur le plan technologique, avec une approche du développement de logiciels par objets avec UML (Unified Modeling Language) ou de systèmes avec SysML (Systems Modeling Language), et sur le plan organisationnel avec l'introduction à des techniques de conduite et de gestion de projets, et une sensibilisation à l’ingénierie des exigences.

Compétences

A l'issue de cette formation, l'étudiant sera en mesure de planifier et de gérer un projet de développement avec un cycle de vie en spirale incluant une expression des exigences, une analyse (avec UML ou SysML), une conception avec des patrons de conception (design patterns), et une réalisation concrète dans un environnement industriel.

Bibliographie

  • Développement de logiciel à objets avec UML (J.-M. Jézéquel, N. Plouzeau, Y. Le Traon, Université de Rennes 1, Poly C119)
  • RefCardz Design Patterns

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

This course will provide a deep understanding of the practical and industrial tools and methods for software and systems development, both at the technological level with object-oriented approaches with UML (Unified Modeling Language) and SysML (Systems Modeling Language), and at the organizational level with an introduction to software project management and requirement engineering.

Learning Outcome

  • The student will be able to plan and manage a software or system development project with an appropriate process, a sound management of the requirements, and a practical application of design patterns.


CSE-S8 Conception de systèmes embarqués
(CSE-S8 Embedded Systems Design)

Objectif

L'objectif de ce module est d'apprendre aux étudiants à modéliser, simuler et synthétiser des systèmes numériques.

Compétences

  • Aptitude à développer les systèmes numériques en les spécifiant en langage VHDL (au niveau du transfert de registres RTL).
  • Aptitude à simuler et synthétiser des circuits.
  • Aptitude à utiliser des systèmes reconfigurables au niveau des portes logiques

Bibliographie

  • “VHDL for digital design” Frank Vahid, Roman Lysecky
  • “VHDL Tutorial: Learn by Example” Weijun Zhang, http://esd.cs.ucr.edu/labs/tutorial/
  • “VHDL Tutorial” Peter J. Ashenden, http://hep.uchicago.edu/~tangjian/SVT_sub/FTK_ATLAS/AUX/vhdl-tutorial.pdf

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]
  • [Validation des compétences en français : par une réalisation de document]
  • [Par une présentation activité] Validation des compétences en français :


Objective

The purpose of this module is to teach students to model, simulate and synthesize digital systems.

Learning Outcome

  • Ability to build digital systems by specifying them in the VHDL language (at the RTL register transfer level).
  • Ability to simulate and synthetize digital systems.
  • Ability to use reconfigurable (at the gate level) systems.


BDDA-S8 Bases de données avancées
(BDDA-S8 Advanced Databases)

Objectif

L'objectif de ce cours est d'approfondir la connaissance des étudiants des techniques de bases de données et de les familiariser avec des applications modernes de gestion de données.

Compétences

  • Bases de données
  • Big Data
  • noSQ

Bibliographie

Ramakrishnan, Gehrke. Database Management Systems. McGraw Hill, 2003. (3rd edition)

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

The objective of this course is to deepen the knowledge of the students on databases and familiarize them with modern database applications and techniques.

Learning Outcome

  • Database
  • Big Data
  • noSQL


STR S8 Systèmes temps réel
(Real Time Systems)

Objectif

À l'issue du module, les étudiants maîtriseront les concepts de base des systèmes d’exploitation temps-réel (ordonnancement, préemption, gestion des priorités, déterminisme temporel). Quelques bases de validation temporelle de systèmes temps-réel (estimation de pires temps d’exécution, vérification d’ordonnançabilité) seront également abordées. Des travaux pratiques seront réalisés sur les robots Légo Mindstrom Nxt au dessus du système d’exploitation temps-réel OSEK/VDX.

Compétences

  • Programmation d'un système temps réel
  • Validation d'un système temps rée

Bibliographie

//

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

On completion of the module, students will master the basic concepts of real-time operating systems (scheduling, preemption, priority management, time determinism ) . The validation of real-time systems (estimation of worst execution time, schedulability check) will also be addressed . Practical work will be done on robots Lego Nxt Mindstrom above the real-time operating system OSEK / VDX .

Learning Outcome

  • Real-time systems programming
  • Validation of real -time systems


PROJINFOSI-S8 Projet SI
(PROJINFOSI-S8 Projet )

Objectif

L’objectif du module de projet est de confronter l’élève à ses futures fonctions d’ingénieur par une mise en situation. Les projets doivent permettre à l’élève d’acquérir une première expérience des activités d’ingénierie, notamment au regard des aspects organisationnels et des problèmes de spécification technique. Le projet en groupe s’appuie sur un sujet technique, proposé par un enseignant. Ce projet à caractère technique peut revêtir une dimension pluridisciplinaire (électronique/informatique) et nécessite à la fois un travail en équipe (organisation, contrôle et partage des tâches), une recherche bibliographique (documentation technique) et la réalisation technique du projet.

Compétences

  • Au cours de ces projets, l’élève ingénieur développe les compétences suivantes : Mobiliser ses connaissances et sa compréhension du champ scientifique et technique de sa spécialité
  • Effectuer une veille technologique ciblée et pertinente
  • La maîtrise des techniques méthodologiques (gestion de projet)
  • La maîtrise des méthodes et des outils du métier d'ingénieur : identification et résolution de problèmes, même non familiers et non complètement définis, collecte et interprétation de données, utilisation des outils informatiques, analyse et conception de systèmes complexes, expérimentation
  • Concevoir et mettre en oeuvre des systèmes à forte composante informatique
  • La capacité à s'intégrer dans une organisation, à l’animer et à la faire évoluer : engagement et leadership, management de projets
  • La communication et les qualités d’expression orale

Bibliographie

//

Validation

  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]
  • [Validation des compétences en français : par une réalisation de document]
  • [Par une présentation activité] Validation des compétences en français :


Objective

The goal of the project is, for a group of 4/5 students to implement a state-of-the-art algorithm in the domain of vision, or image synthesis.

Learning Outcome

  • Project management
  • Implementation of a solution to a significant problem
  • Working in a group
  • Communication skills


S9-TI Option INF (Parcours-SI)

HAR-S9 Architectures parallèles
(HAR-S9 Parallel Architecture)

Objectif

Ce cours présente les architectures de processeurs parallèles du point de vue de la programmation. Il s'agit de décrire l'ensemble des notions permettant de maitriser les aspects performances de ces processeurs. En particulier sont abordés les problèmes d'accès aux données ainsi que le lien entre la structure des codes et le comportement de l'architecture.

Compétences

  • Compréhension de la structure des processeurs parallèles.
  • Connaissance des structures efficaces de calcul

Bibliographie

//

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

This module introduces the architectures of parallel processors from a programmer's point of view. It describes the set of concepts required to understand and analyze the performance of these processors. The module discusses in particular problems of data access, and the influence of code structures on a processor's architectural behavior.

Learning Outcome

  • Understanding of the structure of parallel processors.
  • Knowledge of effective computational structures.


VV-S9 Validation et vérification du logiciel
(VV-S9 Software Validation and Verification)

Objectif

L'objectif est d'acquérir une culture générale sur la validation et la vérification du logiciel et une expertise précises sur les différentes techniques pouvant être mises en œuvre. L'étudiant sera alors capable des les utiliser de manière appropriée et de les replacer dans un processus complet de développement d'un logiciel ainsi qu'en fonction du contexte. En particulier, l'étudiant sera capable de mettre en œuvre des techniques de test à chaque étape du processus de développement, d'estimer la qualité de ses tests et d'en générer tout ou partie à partir du code, de la spécification ou des modèles de conception. Il aura également acquis des connaissances sur des techniques avancées de vérification exhaustive tel que le model-checking et la preuve de programme, indispensable par exemple pour la certification de systèmes critiques.

Compétences

  • Connaissance des techniques de validation et de vérification
  • Rationalisation du test logiciel

Bibliographie

  • Refcard about JUnit and EasyMock

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

This course provides an overview of the various techniques for software validation and verification, and how they can be applied in an industrial settings. The student will then be able to use them appropriately and to apply them during a software development process. In particular, the student will be able to implement testing techniques at each stage of the development process, to estimate the quality of his test cases and generate all or part from the code, specification or design models. He will also learn about advanced exhaustive verification techniques such as model-checking and theorem prover, needed for certification in the context of critical systems.

Learning Outcome

  • Understanding of the various techniques for software validation and verification
  • Application of the different testing techniques in an industrial setting.


PRA-S9 Programmation des architectures parallèles
(PRA-S9 Parallel Architecture Programming)

Objectif

Ce module présente les principaux standards et techniques de programmation parallèle pour processeur multi-cœurs standard (i.e. Intel Xeon) mais aussi pour les technologies accélératrices telles que les processeurs graphiques. Par ailleurs il s’agira de familiariser les étudiants avec les techniques de débogage de codes parallèles.

Compétences

  • Maîtrise des interfaces de programmation standard.
  • Compréhension des problèmes de performance.
  • Capacité à debugger un code parallèle

Bibliographie

  • https://www.khronos.org/opencl/ http://www.nvidia.com/object/cuda_home_new.html http://openmp.org/wp

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

This course aims at presenting the main parallel programming API for multicore processors and accelerators.

Learning Outcome

  • Be able to use the main parallel programming standards.
  • Be able to understand performance issues.
  • Be able to debug parallel programs


SSR-S9 Sécurité système et réseau
(SSR-S9 System and Network Security)

Objectif

L'objectif de ce cours est de présenter aux étudiants les différents concepts de la sécurité et de la cryptographie ainsi que certaines bonne pratiques dans le développement logiciel. A l'issue de cet enseignement les étudiants seront capable de maîtriser le fonctionnement des systèmes de sécurité présents en entreprise ou dans un réseau d'entreprise et de les superviser.

Compétences

Maîtrise des concepts fondamentaux de sécurité système et réseau.

Bibliographie

//

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

The objective of this course is to introduce the concepts of security and cryptography as well as some rules of good practice in software development.

Learning Outcome

  • Master the basic concepts of network and system security.


IM-S9 Ingénierie des modèles 1
(IM-S9 Model Driven Engineering)

Objectif

L'objectif de ce module est d'aborder les techniques les plus modernes en cours de déploiement dans l'industrie pour le développement de systèmes logiciels complexes. Pour essayer de maitriser l'accroissement exponentiel de la complexité des systèmes, on s'appuie de plus en plus sur la notion de modèle, tant pour produire automatiquement le logiciel (conception) que pour le valider (test, model checking). La conception du logiciel consiste à fusionner (ou tisser) les modèles correspondants aux différents aspects (ou préoccupations) du système afin d'obtenir progressivement le code; et le test à valider qu'ils sont correct et qu'ils ont été fusionnés correctement.

Compétences

A l’issue de cet enseignement, l’étudiant sera en mesure de comprendre et de mettre en pratique les principes de base de cette ingénierie des modèles : décrire des langages dédiés et les outiller par des simulateurs et des compilateurs (ou générateurs de code), appliquer automatiquement des patrons de conception, piloter un tisseur d’aspects, dériver des produits depuis une ligne de produits logiciels et paramétrer des générateurs de code.

Bibliographie

  • “Ingénierie Dirigée par les Modèles : des concepts a la pratique”, Jean-Marc Jézéquel, Benoit Combemale, Didier Vojtisek, Editions Ellipses, 2012. ISBN : 9782729871963

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

  • The purpose of this course is to learn about the more advanced techniques being deployed in the industry for the development of complex software-intensive systems. To deal with the ever growing complexity of systems, the industry uses more and more models to automatically generate or validate such complex systems.
  • The design of complex systems consists in merging the appropriate models from the various stakeholders involved to gradually get the code; and the validation and verification consist into testing that the models are correctly merged

Learning Outcome

  • At the end of this course, the student will be able to understand and apply the principles of model driven engineering, design and implement domain-specific languages and their tooling, including simulators and compilers (or code generators), automatically apply design patterns, and derive products from a software product line.


SEP-S9 Génie logiciel pour le calcul parallèle
(SEP-S9 Software Engineering for Parallel Computing)

Objectif

À l’issue de ce module les étudiants seront capables de mettre en œuvre des techniques de conception pour des logiciels asynchrones fondés sur des objets et composants logiciels. Ce module met l’accent sur l’emploi de mécanismes d’exécution offrant un bon rapport efficacité d’exécution/abstraction de construction, et sur l’intégration de la gestion du parallélisme avec les patrons de conception et le contrôle des architectures à composants réparties dynamiques.

Compétences

  • Compréhension des modèles objets parallèles.
  • Compréhension des architectures à composants répartis

Bibliographie

  • Mastering Lambdas: Java programming in a multicore world. Naftalin, Maurice. Oracle Press, 2014.
  • Java Concurrency in Practice, Goetz, Brian. Addison-Wesley, 2006

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

At the end of this course, students will be able to use design techniques for asynchronous software based on objects and software components. The course emphasizes the use of abstract and efficient conception for concurrent software design, and the use of design patterns for concurrent software and distributed component based architectures.

Learning Outcome

  • Understanding and mastering concurrent object-oriented software
  • Understanding and mastering distributed component based software.


OPT-S9 Techniques d’optimisation de codes pour le calcul parallèle
(OPT-S9 Optimization Techniques for Parallel Code)

Objectif

Ce cours présente les techniques de tuning de code parallèle afin d’optimiser les performances des applications au regard du temps d’exécution ou de la consommation d’énergie. Il s’agit de donner l’ensemble des concepts de transformation de code statiques ou dynamiques influant sur la performance. Par ailleurs ce cours présente les outils d’analyse d’aide au diagnostic de l’efficacité des codes.

Compétences

  • Capacité à analyser les performances de codes.
  • Maîtrise des techniques de codage pour l’amélioration des performances.
  • Capacité à faire le lien entre l’algorithme, le code et l’architecture du calculateur.

Bibliographie

  • Write Once Deploy Many-(Cores), Manuel ARENAZ, Stéphane BIHAN, François BODIN, Sunita CHANDRASEKARAN, Barbara CHAPMAN, Gilles CIVARIO, Michael BROWNE, Guillaume COLIN de VERDIERE, Romain DOLBEAU, Khaled IBRAHIM, James Lin, HMPP Competence Centers, 2012 Multicore Programming Practices, Multicore association, 2013: http://www.multicore-association.org/workgroup/mpp.php

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

This course presents code tuning techniques for parallel code. We show how code transformation can help to improve performance or energy consumption. We give an overview of the performance analysis tools.

Learning Outcome

  • Ability to analyse code performance.
  • Ability to use code transformations to improve performance.
  • Ability to make the link between code structure, algorithm and architecture behavior.


IMA-S9 Ingénierie des modèles 2
(IMA-S9 Advanced Model-Driven Engineering)

Objectif

L'objectif de ce module est d'apporter des compétences complémentaires à celles acquises dans le module IM en abordant des techniques avancées de l’ingénierie des modèles, et en tissant des lien avec le module VV de manière à systématiser la validation et vérification du logiciel tout au long du développement grâce à l’utilisation des modèles.

Compétences

  • Systématisation du processus de développement de systèmes complexes intensivement logiciels (développement, validation, vérification).

Bibliographie

  • “Ingénierie Dirigée par les Modèles : des concepts a la pratique”, Jean-Marc Jézéquel, Benoit Combemale, Didier Vojtisek, Editions Ellipses, 2012. ISBN : 9782729871963

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

The purpose of this course is to offer complementary skills to those acquired in the module IM-S9 (Model-Driven Engineering) ; addressing advanced model driven engineering techniques, and bridging the gap with the module VV-S9 (Software Validation and Verification) to systematize the validation and verification of softwares throughout the development with the use of models.

Learning Outcome

  • Systematization of the development process for complex software-intensive systems (design, implementation, validation, verification).


MMA-S9 Parallélisation d'applications multimédia
(MMA-S9 Parallel Programming Applied to Multimedia Applications)

Objectif

Ce cours présente les techniques et les algorithmes standards pour la compression de contenu vidéo très haute-définition et leurs mises en œuvre possibles sur des plates-formes parallèles de type multiprocesseurs, multi-cœurs, many-cores, FPGA.

Compétences

  • Compréhension des algorithmes de compression de contenu vidéo.
  • Compréhension des techniques de parallélisation de code dans le cadre de la compression vidéo

Bibliographie

//

Validation

  • [Par une présentation activité] Validation des compétences en français :


Objective

This module presents techniques and standard algorithms for the compression of video content at very high definition, and the possible implementation of these algorithms on parallel platforms such as multiprocessors, multicore architectures, many-cores, FPGAs.

Learning Outcome

  • Understanding of video content compression algorithms.
  • Understanding of code parallelization techniques in the context of video compression.


TDG-S9 Traitement des données génomiques
(TDG-S9 Genomic Data Processing)

Objectif

Ce cours présente les traitements standard de la génomique et leurs différentes mises en œuvre possibles sur les diverses plates-formes parallèles disponibles aujourd’hui (multi-cœurs, clusters, GPU, cloud).

Compétences

  • langage C
  • programmation parallèle
  • algorithmique de base
  • structure de données de base

Bibliographie

  • Parallel Computing for Bioinformatics and Computational Biology: Models, Enabling Technologies, and Case Studies Albert Y. Zomaya (Editor) ISBN: 978-0-471-71848-2
  • Bioinformatics: High Performance Parallel Computer Architectures CRC Press ISBN 9781439814888

Validation

  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]
  • [Par une présentation activité] Validation des compétences en français :


Objective

This course presents the standard genomic processing and the various parallel implementations on multi-cores, clusters, GPUs and clouds.

Learning Outcome

  • C language
  • Parallel programming
  • Basic algorithms
  • Basic data structure


ABD-S9 Algorithmes parallèles pour le Cloud et les Big Data
(ABD-S6 Parallel Algorithms for the Cloud and Big-Data)

Objectif

Ce module présente les bases sous-jacentes (e.g. MapReduce, stockage de données NoSQL) aux technologies et algorithmes de gestion des grands ensembles de données (BigData), à la fois dans leurs principes fondamentaux, et comme base au déploiement d’applications dématérialisées dans le Cloud.

Compétences

  • A l’issue de ce cours les étudiants devraient être en mesure de présenter, analyser et de raisonner sur la problématique des BigData.
  • A l’issue de ce cours les étudiants devraient être en mesure de présenter, comparer et mettre en œuvre les algorithmes et les technologies associées au traitement des BigData.
  • A l’issue de ce cours les étudiants devraient être en mesure de déployer des applications s’appuyant sur le traitement des BigData dans le Cloud

Bibliographie

  • Ian H. Witten, Eibe Frank, and Mark A. Hall. 2011. Data Mining: Practical Machine Learning Tools and Techniques (3rd ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]


Objective

This course presents the technologies and algorithms to deal with large data sets.

Learning Outcome

  • Understanding of big-data problems.
  • Be able to compare solutions (technologies and algorithm) to deal with a big data issue.
  • Be able to deploy application in the Cloud.


RC-S9 Réseaux de capteurs sans fil et ad hoc
(RC-S9 Sensor Networks - Wireless Networks - Ad hoc Networks)

Objectif

L'objectif de ce module est de permettre aux étudiants d'appréhender largement le domaine de réseaux de capteurs, sans fil et ad hoc. Ce module devrait permettre de faire des choix éclairés entre les différentes technologies de réseaux de capteurs sans fil, et de les mettre en oeuvre.

Compétences

  • Connaissance de base sur les réseaux de capteurs
  • Choix entre les différentes technologies de réseau de capteurs
  • Mise en oeuvre d'un réseau de capteurs

Bibliographie

  • http://www.zigbee.org
  • E.H. Callaway, "Wireless Sansor Networks", Auerbach publications. 2003.
  • P. Roshan, J. Leary, "Réseaux Wifi : notions fondamentales". Cisco Press. 2004.
  • http://www.arduino.cc

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

The purpose of this module is to enable students to understand sensor networks, wireless networks and ad hoc networks. This module enables to make informed choices between different wireless sensor network technologies and implement them.

Learning Outcome

  • Basic knowledge on sensor networks
  • Selection of the best sensor network technologies
  • Setting up of a sensor network


SR-S9 Systèmes répartis
(SR-S9 Distributed Systems)

Objectif

Le but de cours est d'introduire et de familiariser les élèves-ingénieurs avec la problématique des systèmes répartis, d'un point de vue à la fois fondamental, et de façon plus concrète à travers d'exemples tirés des systèmes répartis contemporains. Après avoir suivi ce module, l'élève sera à même de reconnaître, d'analyser, et de résoudre les principales difficultés rencontrées dans les applications de nature répartie qui se poseront à lui dans un contexte professionnel.

Compétences

  • Être capable d'apprécier et d'exposer les propriétés clés et les défis inhérents à la réalisation de systèmes informatiques répartis.
  • Savoir analyser et comparer différents types de systèmes répartis.
  • Pouvoir comprendre, analyser, et appliquer des algorithmes répartis classiques.
  • Être capable d'appréhender, de comparer, et de raisonner sur les propriétés temporelles et d'ordres auxquelles un développeur de systèmes répartis peut être confronté.
  • Être capable de présenter, choisir, et analyser différentes approches de réplication.

Bibliographie

  • Raynal M.,Distributed Algorirhms for Message-passing Systems, Springer, 500 pages, 2013, ISBN 978-3-642-38122-5

Validation

  • [Validation des compétences en français : par contrôle continu (au moins 2 CC)]
  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]


Objective

The aim of this course is to introduce and familiarize engineering students with the problem of distributed systems, from both a fundamental and practical perspective, on the basis of examples drawn from contemporary distributed system deployments. After completing this module, students will be able to identify, analyze, and solve the main challenges inherent to distributed applications that he/she is likely to encounter in a professional context.

Learning Outcome

  • To be able to assess and explain the key properties and challenges inherent to the development of distributed computer systems
  • To be able to analyze and compare different types of distributed systems
  • To be able to understand, analyze, and implement classical distributed algorithms
  • To be able to understand, compare, and reason about the temporal and order properties that a developer of distributed systems may encounter
  • To be able to present, select and analyze different approaches to replication.


PROJINFOSI-S9 Projet industriel
(PROJINFOSI-S9 Industrial Project)

Objectif

Voir module PROINFIN-S9 (Projet industriel)

Compétences

Voir module PROJINFOSI-S9 (Projet industriel)

Bibliographie

  • Support de cours de communications

Validation

  • [Validation des compétences en français : par une réalisation pratique (Projet, Tp,etc...)]
  • [Validation des compétences en français : par une réalisation de document]
  • [Par une présentation activité] Validation des compétences en français :


Objective

See module PROJINFOSI-S9 (Industrial Project)

Learning Outcome

See module PROJINFOSI-S9 (Industrial Project)


')