Formation
Formation initiale en 2 ans
Mode
Présentiel
Niveau
Master
Langues
Anglais, Français
Nombre de crédits ECTS
120
Stage/Mobilité
- Stage en M1(mobilité internationale)
- Stage de fin d’étude en M2
- Projet scientifique en M2
Objectifs
Le master en conception et développement de logiciels (SDD) de l’EUR a pour objectif de former des ingénieurs en informatique à la recherche et au développement dans l’industrie, les services ou la recherche.
Le parcours du master vise des débouchés en ingénierie logicielle (conception et développement). Sont également visés des débouchés spécifiques liés à l’algorithmique et aux données de type image.
En plus des compétences disciplinaires, le master vise à développer l’autonomie des étudiants, le travail en équipe, la conduite et la gestion de projets, la pratique de la langue anglaise et la connaissance du monde de l’entreprise.
Insertion professionnelle
Métiers : Ingénieur informatique, ingénieur logiciel, architecte technique, administrateur de bases de données, ingénieur conception & développement, chef de projet, consultant informatique, chercheur, professeur assistant
Secteurs : Entreprises de services du numérique, services informatiques aux entreprises, grands groupes informatiques, start-up, organismes de recherche.
Programme
Master 1
Semestre 1
Credits: 5
Language:
French
Course mode:
On-site
Methods of delivery:
Lectures (16h)
Tutorials (34h)
Pre-requisites:
in progress
Objectives:
- Study classical algorithms on certain tree structures or graphs.
- Design and deploy algorithms on these same structures.
Learning outcomes:
- Choose or specify an abstract data type to solve a particular problem
- Implement abstract data types from classic data structures
- Use graphs to model combinatorial or optimization problems
- Apply classic algorithms outside their usual context
Indicative contents:
In this course, we deal with algorithms operating on advanced data structures, trees or graphs, allowing us to create elaborate abstract data types or to solve certain complex algorithmic problems.
- Advanced algorithms (recursive parsers, backtracking algorithms, dynamic programming, etc.).
- Algorithmic additions to trees (search trees, priority queues, heaps, etc.)
- Basic graphs and algorithms on graphs (traversal, different calculations: connected components, strongly connected components, topological sorting, biconnected components, etc.).
Methods of assessment:
Written test
Suggested bibliography:
in progress
Credits: 3
Language:
French
Course mode:
On-site
Course unit name: Data Analysis
Methods of delivery:
Lectures (14h)
Tutorials (8h)
Practices (4h)
Project (4h)
Pre-requisites:
- Scientific degree level programming and algorithms
- Mathematics at scientific degree level
Objectives:
The goal of the data analysis course is to master the main data mining techniques in the context of measurement.
The first objective is the acquisition of elementary concepts associated with probabilities as well as the usual characteristics allowing measurements to be described.
The second objective is to study in detail the main methods of exploring tables of measurements, namely principal component analysis as well as discriminant factor analysis (in order to raise student awareness of the problem of automatic classification). The objective is to extract useful information, structures, patterns or indicators from a set of data. The educational choice will be to study both the concept of the method but also its practical implementation.
The last objective concerns the study of the problem of automatic grouping of data according to similarity criteria at the level of measurements through the study of two methods:
- K-Means
- Dendograms
Learning outcomes:
- Computerically implement a data analysis algorithm on real data.
- Master the measurement analysis tools and the associated justification
- Analyze the information associated with a series of measurements using measurement analysis tools.
- Computerically implement an algorithm for estimating a quantity from real data, taking into account the notion of confidence interval.
- Master basic statistical tests and the associated justification
- Computerically implement a statistical test on real data in order to answer a question.
Indicative contents:
In this course we will study different data mining methods in the context of measurement. The educational content will begin with a presentation of the elementary concepts associated with probabilities as well as the usual characteristics allowing to describe measurements such as the notion of mean, variance and correlation and finally the description of the most used laws. Through these principles from descriptive statistics, it is a question of providing the student with sufficient background to understand the rest of the training concerning data. The notions of probabilities will be illustrated through the methods of estimating quantities from a series of measurements.
We will then study the main methods of analyzing measurement tables such as PCA, through both the analysis of the methods but also their computer implementations. Finally, we conclude with the discovery of so-called clustering algorithms allowing us to extract groups of data from their measurements.
Methods of assessment:
Written test
Suggested bibliography:
in progress
Credits: 5
Language:
French
Course mode:
On-site
Methods of delivery:
Lectures (18h)
Tutorials (28h)
Project (4h)
Pre-requisites:
Object-oriented programming and software engineering at computer science degree level
Objectives:
The goal of this course is to learn how to create software architectures respecting the principles of software engineering, namely reusability, maintainability and scalability.
Learning outcomes:
- Master advanced object programming concepts for software development.
- Master an object language (C++, Java, C#, PHP, etc.).
- Master the general principles of software engineering for the end-to-end development of software.
- Explain the architecture of your software.
- Interpret a statement to create satisfactory software.
- Use ad-hoc tools to increase productivity.
Indicative contents:
In this course we will approach design in general using an object-oriented language. The use of tools from software engineering will also be exploited to increase developer productivity and to increase the overall quality of the software.
- Syntax of object languages, definition of classes, composition, aggregation.
- Single and multiple inheritances
- Polymorphism, abstraction.
- Static/dynamic allocation and memory understanding, genericity, exceptions.
- Study of design patterns. Object-oriented design and software engineering:
- Software life cycle.
- Needs analysis and validation.
- Object-oriented design, UML modeling, case study, use of a design tool, code generation.
- Verification: analysis, code review and software testing.
Methods of assessment:
Written test
Suggested bibliography:
in progress
Credits: 3
Language:
French
Course mode:
On-site
Course unit name: Data Analysis
Methods of delivery:
Tutorials (20h)
Pre-requisites:
- Scientific degree level programming and algorithms
- Mathematics at scientific degree level
Objectives:
The goal of the data analysis course is to master the main data mining techniques in the context of measurement.
The first objective is the acquisition of elementary concepts associated with probabilities as well as the usual characteristics allowing measurements to be described.
The second objective is to study in detail the main methods of exploring tables of measurements, namely principal component analysis as well as discriminant factor analysis (in order to raise student awareness of the problem of automatic classification). The objective is to extract useful information, structures, patterns or indicators from a set of data. The educational choice will be to study both the concept of the method but also its practical implementation.
The last objective concerns the study of the problem of automatic grouping of data according to similarity criteria at the level of measurements through the study of two methods:
- K-Means
- Dendograms
Learning outcomes:
- Computerically implement a data analysis algorithm on real data.
- Master the measurement analysis tools and the associated justification
- Analyze the information associated with a series of measurements using measurement analysis tools.
- Computerically implement an algorithm for estimating a quantity from real data, taking into account the notion of confidence interval.
- Master basic statistical tests and the associated justification
- Computerically implement a statistical test on real data in order to answer a question.
Indicative contents:
In this course we will study different data mining methods in the context of measurement. The educational content will begin with a presentation of the elementary concepts associated with probabilities as well as the usual characteristics allowing to describe measurements such as the notion of mean, variance and correlation and finally the description of the most used laws. Through these principles from descriptive statistics, it is a question of providing the student with sufficient background to understand the rest of the training concerning data. The notions of probabilities will be illustrated through the methods of estimating quantities from a series of measurements.
We will then study the main methods of analyzing measurement tables such as PCA, through both the analysis of the methods but also their computer implementations. Finally, we conclude with the discovery of so-called clustering algorithms allowing us to extract groups of data from their measurements.
Methods of assessment:
Written test
Suggested bibliography:
in progress
Credits: 3
Language:
French/English
Course mode:
Hybrid
Methods of delivery:
Lectures (30h)
Pre-requisites:
Fundamentals of programming, fundamentals of image
Objectives:
- Understanding information hidden strategies
- Perceptual models in imaging
- Error-correcting codes in security
Learning outcomes:
Understanding the functioning of an error-correcting code, Write a Python code to hide information in an image, Develop perceptual models for images in Python
Indicative contents:
The program is divided into three parts:
- Watermarking: information hiding strategy
- Perceptual model: ensuring the invisibility of information in an image
- Basics of error-correcting codes
As part of the first two sections, the students will complete a Python project in which:
- They must develop a watermarking algorithm using spread spectrum technique, with the concept of coding suggested in the project through the preparation of the message to be hidden
- They must develop a quality metric to parameterize their watermarking algorithm to make this insertion as invisible as possible
Methods of assessment:
2 technical productions
Suggested bibliography:
in progress
Credits: 5
Language:
French
Course mode:
On site
Methods of delivery:
Lectures (16h)
Practices (18h)
Project (16h)
Pre-requisites:
in progress
Objectives:
Learn to design, develop and deploy distributed and service-oriented applications
Learning outcomes:
in progress
Indicative contents:
This module presents the fundamental concepts of web applications, as well as certain frameworks.
- Web clients for service-oriented applications
- Multi-tier architectures
- Persistence and centralized access to data
- Access rights and authentication
- Component-oriented web frameworks
- Web clients for service-oriented applications
- REST web services and HTTP Streaming technologies (WebSocket, SSE)
- Microservice architectures
- Deployment (containerization and orchestration)
Methods of assessment:
Written test
Suggested bibliography:
in progress
Credits:3
Language:
French
Course mode:
On-site
Methods of delivery:
Tutorials (39h)
Pre-requisites:
None
Objectives:
Part 1 Communication : This module is designed to help students apply for internships. It equips them with methodological tools and enables them to understand the challenges and stages of recruitment. In addition, students reinforce their oral fluency through a number of exercises: a 180-second Elevator pitch; a critical analysis of a socio-technical controversy in its polemical and media dimensions, combined with a presentation of the players involved and the arguments associated with the different positions. The aim is to develop convincing and adaptable skills. Team-building exercises are designed to get students to work together and put them in a collective interview situation. – Pay attention to posture and body language – Express yourself with ease – Synthesize – Analyze documents and identify arguments – Present a project, justifying the choices made
Part 2 Management : This module aims to make students think about the issues facing a company, how the right strategy is determined, using methodological tools, and to identify interested parties and their performance management.
Learning outcomes:
- Develop your human and relational qualities
- Communicate in writing, orally, in several languages
- Work as a team, self-assess (strengths and weaknesses)
- Develop your abilities to enter professional life
- Demonstrate cultural openness, be curious, have a critical mind
- Work on your dynamism, be capable of commitment, leadership
- Know how to integrate business and societal issues in an international context
- Know and understand the business world
- Manage projects
Indicative contents:
Part 1 Communication : Job interview simulations (individual and collective) are offered as well as the creation of the key elements of a file, namely the CV, cover letter, LinkedIn profile, online applications, etc. A current review (scientific and technical news) is produced at each tutorial as well as a final presentation on a subject related to the professional world. This requires documentary research and preparation of the speech as well as the visual support used for the defense. Work on argumentation and the rhetorical aspects of speech is presented. Students approach a socio-technical controversy by identifying the various positions and issues at stake in the debate, particularly in its media dimension. They report on their documentary research and the choices they have made to address the controversy in an oral presentation.
Part 2 Management :
Chap 1. The company and its environment
- The company
- Analysis of its environment, its market
- The choice of a strategy thanks to a good diagnosis
- React to changes in the environment
Chap 2. The company and its strategic choices
- Notions – strategy, organizational policy, competitive advantage, the different levels of strategy
- The 3 strategies resulting from Porter methods
- Growth strategies * Innovation * Entrepreneurial and managerial logic
- The purpose of a company
Chap 3. Company performance.
- Company management and performance
- Identify stakeholders and their objectives
- Concept- governance, management, performance, decision-makers
Methods of assessment:
Written test, oral, presentation
Suggested bibliography:
- Perez D., CV, lettre de motivation, entretien d’embauche, L’Étudiant, Ed. Paris, 2014, 416 pages.
- Engrand S., Projet professionnel gagnant ! Une méthode innovante pour cibler stages et premier emploi, Dunod, Ed. Paris, 2014, 180 pages.
- Davidenkoff E., Le guide des entreprises qui recrutent : hors-série 2015 : faire la différence en entretien, négocier son premier salaire, débuter à l’étranger, L’Étudiant, Ed. Paris, 2015
- Charline Licette, Savoir parler en public, Studyrama Pro, 2018
- Fabrice Carlier, Réussir ma première prise de parole en public, StudyramaPro, 2018
- Cyril Gely, Savoir improviser : l’art de s’exprimer sans préparation, Groupe Studyrama-Vocatis, 2010
- Lelli A., 2003, Les écrits professionnels : la méthode des 7C – Soyez correct, clair, concis, courtois, convivial, convaincant, compétent, Dunod, Ed. Paris, 2003, 168 pages.
Credits: 6
Language:
French/English
Course mode:
On-site
Pre-requisites:
None
Objectives:
Consolidation of the experience acquired during training within a research laboratory.
Indicative contents:
Depending on the topic of the laboratory work.
Learning outcomes:
- Integrate into and within a work team
- Show initiative
- Test your curiosity
- Structure your ideas and the stages of their implementation
- Demonstrate scientific rigor
- Learn to meet deadlines
- Know the safety rules in force within the structure
Methods of assessment:
Report, evaluation sheet (lab behavior), oral presentation
Suggested bibliography:
Depending on the topic of the laboratory work.
Semestre 2
Credits: 4
Language:
French
Course mode:
On-site
Methods of delivery:
Lectures (10h)
Tutorials (8h)
Practices (12h)
Project (20h)
Pre-requisites:
C/C++ programming, web programming, algorithmic and undergraduate level programming.
Objectives:
This course presents the principles and various algorithms for generating synthetic images.
The geometric modeling and computer representation of the 2D or 3D objects to be manipulated, the control of their positioning and other transformations in the virtual environment as well as the display methods to obtain a sufficiently realistic result are presented.
The course is based on an approach favoring practical aspects, of the « TP/project » type, on a standard machine or on a mobile (Android).
Learning outcomes:
- Select appropriate representation models and organize them to model a virtual object
- Implement models to give objects a visual appearance (colors and texture, interactions with light, etc.)
- Organize the data of the various objects constituting a virtual scene
- Make the data of a scene evolve over time
- Display a scene (screen projection, management of hidden parts)
- Perform lighting calculations in the scene, based on the physical laws of light
Indicative contents:
The module aims to provide students with knowledge of the tools and algorithms underlying the processes for creating synthetic images, possibly animated, so that they can design and develop graphic software components in the context of various applications. : video games, virtual/augmented reality, 3D interfaces, etc.
Methods of assessment:
Written test
Suggested bibliography:
in progress
Credits: 3
Language:
French/English
Course mode:
Hybrid
Methods of delivery:
Lectures (15h)
Tutorials (5h)
Practices (10h)
Pre-requisites:
Basis of relational databases and SQL
Objectives:
This course intends to make students aware of database security issues, in various aspects: security policy, risk analysis, access control, encryption, web application security.
Learning outcomes:
Prevent basic attacks like SQL injection ; know how to manage users, profiles, password policies, privileges and roles ; understand and master methods and algorithms related to database encryption ; learn the basis of differential privacy
Indicative contents:
SQL injection, Access control, Database encryption, Differential privacy
Methods of assessment:
2 Written tests
Suggested bibliography:
- Sam Afyouni, Database Security and Auditing: Protecting Data Integrity and Accessibility
- Osama Faragallah et al., Multilevel security for Relational Databases
Credits: 4
Language:
French
Course mode:
On-site
Methods of delivery:
Lectures (6h)
Tutorials (4h)
Practices (20h)
Project (20h)
Pre-requisites:
C/C++ programming, web programming, algorithmic and undergraduate level programming
Objectives:
The course aims to provide students with knowledge of the tools and algorithms underlying the processes for creating synthetic images, possibly animated, so that they can design and develop graphic software components in the context of various applications. : video games, virtual/augmented reality, 3D interfaces, etc.
Learning outcomes:
- Select appropriate representation models and organize them to model a virtual object
- Implement models to give objects a visual appearance (colors and texture, interactions with light, etc.)
- Organize the data of the various objects constituting a virtual scene
- Make the data of a scene evolve over time
- Display a scene (screen projection, management of hidden parts)
- Perform lighting calculations in the scene, based on the physical laws of light
Indicative contents:
This course presents the principles and various algorithms for generating synthetic images.
The geometric modeling and computer representation of the 2D or 3D objects to be manipulated, the control of their positioning and other transformations in the virtual environment as well as the display methods to obtain a sufficiently realistic result are presented.
The course is based on an approach favoring practical aspects, of the « TP/project » type, on a standard machine or on a mobile (Android).
Methods of assessment:
Written tests
Suggested bibliography:
in progress
Credits: 4
Language:
French
Course mode:
On-site
Methods of delivery:
Lectures (20h)
Practices (30h)
Pre-requisites:
Knowledge of C++ programming, algorithms, system programming.
Objectives:
This teaching unit presents the tools allowing you to solve any problem exhibiting non-zero parallelism potential. The parallelism seen here is either a means of accelerating a given algorithm, or a means of allowing the execution of this algorithm on a parallel machine constructed via several computers connected in a network, and therefore having more memory than each of the computers that ‘she connects.
The main objective is to understand the design patterns for these parallel machines, and the ability to choose the most suitable pattern(s) to solve a given problem.
By side effect, the secondary objective is to recognize whether a given algorithm can be accelerated via parallelism (vectorization, multithreading, GPU, grid calculations), and whether a problem that is too complex (generally in terms of memory occupation ) for a single processor can be solved on a grid.
Finally, a third and final objective is the detailed understanding of the patterns on different parallel environments (single or dual CPU, GPU, HPC, hybrid), in order to identify in advance the relevance of the parallelization of a problem, and to understand the performance obtained.
Learning outcomes:
in progress
Indicative contents:
This course presents the main patterns for programming on modern multiprocessor environments, including multicore processors, computing grids and GPUs. This presentation of the patterns focuses as much on their operating principles as their implementation. In more detail and out of order, this EU addresses the following points.
- Vector machine; machine with shared memory vs. separate memory; theoretical models of parallel computing: PRAM – Ring / Grid / Torus of processors; complexity of a parallel algorithm; acceleration factor.
- Reminders on operating systems (process, thread, atomic instruction, semaphore, monitor); multithreaded programming: fork/join model, thread pool.
- Design patterns on shared memory machine: Map, Gather, Scatter, Reduce, Scan, Compact, Segmented-Reduce, Segmented-Scan, Sort … CPU implementation via threads and AVX.
- GPU programming: CUDA calculation model, implementation of basic patterns (Map, Gather, Scatter, Reduce, Scan, Compact, Segmented-Reduce, Segmented-Scan).
- Programming on a separate memory machine: specific patterns linked to communication between nodes; implementations of a ring, a grid/a torus in MPI; linear algebra in MPI.
- Hybridization of the different possible levels of parallelism (multithreaded, GPU and distribution).
Methods of assessment:
Written tests
Suggested bibliography:
in progress
Credits: 3
Language:
English
Course mode:
On-site
Methods of delivery:
Tutorials (30h)
Pre-requisites:
B1 level required.
Objectives:
To bring students towards the European B2/C1 level. The operational and evaluable objectives of this training are:
- Understand most situations that might be encountered at work or while traveling in a region where English is spoken for example
- Develop oral and written language skills
- International English communication
Learning outcomes:
Acquisition of English language skills (objective B2/C1). International, specialty and professional English (CV, cover letters, etc.)
Indicative contents:
- Written and oral comprehension/production work on authentic specialist or general English documents
- Interactive debates on general themes
- Language lab work (pronunciation, listening, repetition, etc.)
- Professional English (writing cover letters, CV, professional interview) academic (summary of documents, emails, sum-ups, etc.)
- Work on specialization and general English vocabulary.
- Presentation of a specialty presentation
Methods of assessment:
Written test, oral
Credits:3
Language:
French
Course mode:
On-site
Methods of delivery:
Tutorials (39h)
Pre-requisites:
None
Objectives:
Part 1 Communication : This module is designed to help students apply for internships. It equips them with methodological tools and enables them to understand the challenges and stages of recruitment. In addition, students reinforce their oral fluency through a number of exercises: a 180-second Elevator pitch; a critical analysis of a socio-technical controversy in its polemical and media dimensions, combined with a presentation of the players involved and the arguments associated with the different positions. The aim is to develop convincing and adaptable skills. Team-building exercises are designed to get students to work together and put them in a collective interview situation. – Pay attention to posture and body language – Express yourself with ease – Synthesize – Analyze documents and identify arguments – Present a project, justifying the choices made
Part 2 Management : This module aims to make students think about the issues facing a company, how the right strategy is determined, using methodological tools, and to identify interested parties and their performance management.
Learning outcomes:
- Develop your human and relational qualities
- Communicate in writing, orally, in several languages
- Work as a team, self-assess (strengths and weaknesses)
- Develop your abilities to enter professional life
- Demonstrate cultural openness, be curious, have a critical mind
- Work on your dynamism, be capable of commitment, leadership
- Know how to integrate business and societal issues in an international context
- Know and understand the business world
- Manage projects
Indicative contents:
Part 1 Communication : Job interview simulations (individual and collective) are offered as well as the creation of the key elements of a file, namely the CV, cover letter, LinkedIn profile, online applications, etc. A current review (scientific and technical news) is produced at each tutorial as well as a final presentation on a subject related to the professional world. This requires documentary research and preparation of the speech as well as the visual support used for the defense. Work on argumentation and the rhetorical aspects of speech is presented. Students approach a socio-technical controversy by identifying the various positions and issues at stake in the debate, particularly in its media dimension. They report on their documentary research and the choices they have made to address the controversy in an oral presentation.
Part 2 Management :
Chap 1. The company and its environment
- The company
- Analysis of its environment, its market
- The choice of a strategy thanks to a good diagnosis
- React to changes in the environment
Chap 2. The company and its strategic choices
- Notions – strategy, organizational policy, competitive advantage, the different levels of strategy
- The 3 strategies resulting from Porter methods
- Growth strategies * Innovation * Entrepreneurial and managerial logic
- The purpose of a company
Chap 3. Company performance.
- Company management and performance
- Identify stakeholders and their objectives
- Concept- governance, management, performance, decision-makers
Methods of assessment:
Written test, oral, presentation
Suggested bibliography:
- Perez D., CV, lettre de motivation, entretien d’embauche, L’Étudiant, Ed. Paris, 2014, 416 pages.
- Engrand S., Projet professionnel gagnant ! Une méthode innovante pour cibler stages et premier emploi, Dunod, Ed. Paris, 2014, 180 pages.
- Davidenkoff E., Le guide des entreprises qui recrutent : hors-série 2015 : faire la différence en entretien, négocier son premier salaire, débuter à l’étranger, L’Étudiant, Ed. Paris, 2015
- Charline Licette, Savoir parler en public, Studyrama Pro, 2018
- Fabrice Carlier, Réussir ma première prise de parole en public, StudyramaPro, 2018
- Cyril Gely, Savoir improviser : l’art de s’exprimer sans préparation, Groupe Studyrama-Vocatis, 2010
- Lelli A., 2003, Les écrits professionnels : la méthode des 7C – Soyez correct, clair, concis, courtois, convivial, convaincant, compétent, Dunod, Ed. Paris, 2003, 168 pages.
Credits: 6
Language:
French/English
Course mode:
On-site
Pre-requisites:
None
Objectives:
Consolidation of the experience acquired during training within a research laboratory.
Indicative contents:
Depending on the topic of the laboratory work.
Learning outcomes:
- Integrate into and within a work team
- Show initiative
- Test your curiosity
- Structure your ideas and the stages of their implementation
- Demonstrate scientific rigor
- Learn to meet deadlines
- Know the safety rules in force within the structure
Methods of assessment:
Report, evaluation sheet (lab behavior), oral presentation
Suggested bibliography:
Depending on the topic of the laboratory work.
Credits: 3
Language:
French/English
Course mode:
On-site (internship)
Pre-requisites:
None
Objectives:
Discover the world of business or international research work.
Learning outcomes:
Compare the skills acquired during training with the demands of the socio-professional world.
Indicative contents:
At least two months spent within the company (or in an international research laboratory) as an intern.
Methods of assessment:
Report, evaluation sheet, oral presentation
Au choix (1 sur 2)
Credits: 3
Language:
French
Course mode:
On-site/Hybrid
Methods of delivery:
Tutorials (4h)
Practices (11h)
Project (10h)
Pre-requisites:
in progress
Objectives:
Know the different technological building blocks to design a connected device with a low energy footprint.
Know the hardware and software functions of modern microcontroller systems.
Implement a connected object using an ARM core-based microcontroller.
Learning outcomes:
in progress
Indicative contents:
This course deals with embedded programming on ARM core-based microcontrollers. It addresses the main technological solutions (hardware and software) making it possible to create a connected object with low energy consumption.
Methods of assessment:
Written test
Suggested bibliography:
in progress
Credits: 3
Language:
French
Course mode:
On-site
Methods of delivery:
Lectures (10h)
Practices (15h)
Pre-requisites:
Notions of functional algorithms and functional programming at the Computer Science degree level.
Objectives:
The Safe Software course is an introduction to formal software verification. The notion of proof of properties of a program is introduced first for programs written in the functional style then for those written in the imperative style.
Differences between validation and verification, limits of testing techniques, verification by formal proof of programs. Scope of formal verification.
Introduction to the Coq proof wizard. Concept of proof. Notions of logic (sequence, rules of natural deduction). Functional programming reminders. Proofs of properties of functional programs.
Notions of program equivalence and program transformations. Hoare’s logic; assertions, Hoare triples, program decoration, loop invariants, weakest precondition. Implemented in Coq.
(*This part is optional*)
Small-step operational semantics, typing systems.
Learning outcomes:
Ability to formally describe a program, know how to express a property in a logical formalism, master the logical tools for manipulating a program proof, master the development of a program proof in a proof assistant.
Indicative contents:
Introduction to formal program verification: understand the basic concepts, know how to implement them and be autonomous in this implementation.
Methods of assessment:
Written test
Suggested bibliography:
in progress
Master 2
Semestre 3
Credits: 5
Language:
French
Course mode:
On-site
Methods of delivery:
Lectures (8h)
Practices (22h)
Project (20h)
Pre-requisites:
Skills in 3D image synthesis (modeling and rendering) for example via the 1st year Master 3D Algorithmics course.
Objectives:
The goal of this course is to develop the student’s skills in 3D image synthesis, and to implement them in various achievements.
Learning outcomes:
The skills developed in this module depend on the types of projects carried out:
- Model the shape of virtual objects using advanced curve and surface models
- Characterize the topological properties of the models created and control their evolution during modeling operations
- Convert an object into discrete elements by guaranteeing the connectivity properties between these elements
- Realistically animate objects in accordance with the laws of mechanics
- Detect and manage collision between objects during an animation
- Select and use physical illumination models to model light/matter interaction
- Use a rendering engine to develop a real-time navigation application
- Develop a rendering engine
- Design/use accelerator structures for real-time interactive applications
Indicative contents:
The teaching covers advanced themes of computer graphics, such as topological modeling, discrete geometry, realistic rendering, physically based animation, interactive environments (virtual reality).
The course is based in particular on the design and implementation of IT developments, which can take different forms: creation of an application based on widely used graphics libraries, study of a scientific article and implementation of the method described, etc.
As an example, here are some possible subjects: complete creation of a game based on rendering and/or animation libraries, design and validation of models for 3D printing, construction engine and display of discrete objects , writing a realistic and/or interactive rendering engine, design of interactive environments animated by the laws of mechanics, programming of virtual reality applications, etc.
Methods of assessment:
Written test
Suggested bibliography:
in progress
Credits: 3
Language:
French
Course mode:
On-site
Course unit name: Machine learning
Methods of delivery:
Lectures (12h)
Practices (12h)
Project (8h)
Pre-requisites:
The data analysis module (M1, 1st semester), and basic algorithmic skills.
Objectives:
This “Machine Learning” module aims to study, analyze and design automatic decision-making methods adapted to data, particularly mass data. More precisely, it involves automatically predicting the evolution and/or membership of a set of raw data from a learning database. It should be noted that this module complements the “Supervised learning” module (M1, 2nd semester) but without this being a prerequisite.
This module is particularly relevant in the context of neural algorithms, deep learning and large masses of data.
Learning outcomes:
- Computationally implement a KNN or naive Gaussian type automatic decision algorithm on real data.
- Master the tools for machine learning analysis, interpretation of results and in particular evaluation of the quality of the method
- Computationally implement an automatic decision-making algorithm based on a neural structure.
- Master the different neural techniques and know how to make the right choice based on the data to be processed
- Computerically implement a statistical test on real data in order to answer a question.
- Deploy a data analysis solution adapted to big data challenges
Indicative contents:
The objective of this “Machine Learning” module is the complete scientific and technical understanding of automatic decision-making methods adapted to data, particularly mass data.
To precisely define the context, the vocabulary as well as the different steps necessary for decision making by a computer, the Bayes decision framework will be introduced with its practical translations through the naive Gaussian classifier and the K-plus method. close neighbors. Through these methods, the student will master the basic notion of learning and associated constraints (such as size), parameters and estimation of these and finally evaluation of results. These algorithms will be applied to different types of measurements. For students who have followed the “Supervised learning” module, this will constitute a complement, for others it will allow the integration of artificial intelligence concepts.
Then the module will aim to understand, analyze and develop different neural methods. This will involve analyzing multilayer structures (such as the Perceptron) as well as associated learning strategies, and also new structures allowing, from a large set of data, to provide descriptors such as convolutional neural networks. . The study of these structures will obviously be positioned within the framework of Deep-Learning and large masses of data. It should be noted that the choice is made to have the student carry out each method in order to avoid the black box phenomenon.
Methods of assessment:
Written test
in progress
Credits: 3
Language:
French/English
Course mode:
On-site
Methods of delivery:
Lectures (18h)
Tutoriels (2h)
Practices (10h)
Pre-requisites:
3D Algorithmics 1 or any other lecture introducing 3D computer graphics
Objectives:
This lecture aims at providing the necessary skills to build and animate a digital twin of an organ. It considers how this organ can be built from 3D medical acquisitions such as MRI or CT-scan, how the geometry and the topology of the reconstructed mesh can be represented and how mechanical equations can be established and solved in real-time to simulate its behaviour, including deformation, cutting, tearing, etc. The concerned applications encompass pedagogic simulations of surgical gesture using virtual reality and preparations of tricky interventions.
Learning outcomes:
- Reconstructing a 2D/3D mesh from volumetric medical images
- Using a topology-based model to represent a 2D/3D structure
- Providing a 2D/3D mesh with mechanical characteristics, establishing and solving the equation of motion
- Solving continuous mechanics equations using a simple Finite Element Method (FEM)
- Simulating topological changes in a mechanical structure
Indicative contents:
- Reconstruction methods – Implementation of a Marching Cubes algorithm
- Review of topological models for geometric modelling
- Introduction to physically-based animation – implementation of a simple mechanical simulators
- Simulation of a 3D solid model using continuous mechanics – implementation of spring-based deformation of a mesh and a Finite-Element solver
- Simulation of topological changes
Methods of assessment:
2 written productions
Suggested bibliography:
- W. E. Lorensen and H. E. Cline, Marching Cubes: a High-Resolution 3D surface reconstruction algorithm, Proc. SIGGRAPH’87, Computer Graphics, 21(4), July 1987.
- G. Damiand and P. Lienhardt, Combinatorial maps: Efficient Data Structure for Computer Graphics and Image Processing, A.K. Peters/CRC Press, 2019.
- D. Erleben et al., Physics-Based Animation, Charles River Media Edt, 2005.
Credits: 5
Language:
French
Course mode:
On-site
Methods of delivery:
Lectures (20h)
Tutorials (30h)
Pre-requisites:
in progress
Objectives:
This course aims to study, understand and use algorithms from graph theory, which are very useful in operational research. This should make it possible to highlight various types of complexity, in particular the classes of NP and P problems, which the student must be able to identify and for which he must know how to implement some attack techniques.
Learning outcomes:
- Know the basic concepts of graph theory and know how to implement the corresponding elementary algorithms.
- Know and know how to implement some operational research techniques.
- Master basic knowledge of complexity theory.
- Be able to identify an NP-complete problem and know how to implement some attack techniques.
Indicative contents:
This teaching has four parts:
- Cycles and cocycles in a graph: examples, algorithms and applications.
- Graph theory applied to operations research: transport networks, graphs and canalized transport networks; Ford-Fulkerson and Hoffman theorems; Ford-Fulkerson and Edmonds-Karp algorithms; applications.
- Couplings and overlaps: algorithms in the general case and in the case of bipartite graphs.
- Introduction to complexity theory: decision problems, classes of problems (P and NP), NP-complete problems and NP-hard problems, polynomial reduction, approximate solutions of NP-hard problems.
Methods of assessment:
Written test
Suggested bibliography:
in progress
Credits: 3
Language:
French
Course mode:
On-site
Course unit name: Machine learning
Methods of delivery:
Lectures (6h)
Practices (12h)
Pre-requisites:
The data analysis module (M1, 1st semester), and basic algorithmic skills.
Objectives:
This “Machine Learning” module aims to study, analyze and design automatic decision-making methods adapted to data, particularly mass data. More precisely, it involves automatically predicting the evolution and/or membership of a set of raw data from a learning database. It should be noted that this module complements the “Supervised learning” module (M1, 2nd semester) but without this being a prerequisite.
This module is particularly relevant in the context of neural algorithms, deep learning and large masses of data.
Learning outcomes:
- Computationally implement a KNN or naive Gaussian type automatic decision algorithm on real data.
- Master the tools for machine learning analysis, interpretation of results and in particular evaluation of the quality of the method
- Computationally implement an automatic decision-making algorithm based on a neural structure.
- Master the different neural techniques and know how to make the right choice based on the data to be processed
- Computerically implement a statistical test on real data in order to answer a question.
- Deploy a data analysis solution adapted to big data challenges
Indicative contents:
The objective of this “Machine Learning” module is the complete scientific and technical understanding of automatic decision-making methods adapted to data, particularly mass data.
To precisely define the context, the vocabulary as well as the different steps necessary for decision making by a computer, the Bayes decision framework will be introduced with its practical translations through the naive Gaussian classifier and the K-plus method. close neighbors. Through these methods, the student will master the basic notion of learning and associated constraints (such as size), parameters and estimation of these and finally evaluation of results. These algorithms will be applied to different types of measurements. For students who have followed the “Supervised learning” module, this will constitute a complement, for others it will allow the integration of artificial intelligence concepts.
Then the module will aim to understand, analyze and develop different neural methods. This will involve analyzing multilayer structures (such as the Perceptron) as well as associated learning strategies, and also new structures allowing, from a large set of data, to provide descriptors such as convolutional neural networks. . The study of these structures will obviously be positioned within the framework of Deep-Learning and large masses of data. It should be noted that the choice is made to have the student carry out each method in order to avoid the black box phenomenon.
Methods of assessment:
Written test
Suggested bibliography:
in progress
Credits: 3
Language:
English
Course mode:
On-site
Methods of delivery:
Tutorials (30h)
Pre-requisites:
B1 level required.
Objectives:
To bring students towards the European B2/C1 level. The operational and evaluable objectives of this training are:
- Understand most situations that might be encountered at work or while traveling in a region where English is spoken for example
- Develop oral and written language skills
- International English communication
Learning outcomes:
Acquisition of English language skills (objective B2/C1). International, specialty and professional English (CV, cover letters, etc.)
Indicative contents:
- Written and oral comprehension/production work on authentic specialist or general English documents
- Interactive debates on general themes
- Language lab work (pronunciation, listening, repetition, etc.)
- Professional English (writing cover letters, CV, professional interview) academic (summary of documents, emails, sum-ups, etc.)
- Work on specialization and general English vocabulary.
- Presentation of a specialty presentation
Methods of assessment:
Written test, oral
Credits: 6
Language:
French/English
Course mode:
On-site/Hybrid
Methods of delivery:
Scientific project (one day/week)
Pre-requisites:
None
Objectives:
Carry a scientific or entrepreunarial project. 3 options:
- continue their « research » project carried out in M1 within the framework of the Cordées de la recherche
- carry out their project within the framework of the « Ateliers de l’innovation » offered by the IAE Limoges
- carry out their project in conjunction with a company, a CRT, a LabCom, etc.
Methods of assessment:
Project
Au choix (1 sur 2)
Credits: 5
Language:
French
Course mode:
On-site
Methods of delivery:
Lectures (20h)
Tutoriels (14h)
Practices (16h)
Pre-requisites:
Unit Secure Software and Software Engineering 1 and 2 of the first year of the Computer Science master’s degree. Concepts of logic.
Objectives:
- Master the formal models of programming, modeling and specification.
- Implement industrial tools for formal software verification.
Learning outcomes:
Master the development of formal verification of software. Know how to navigate the different technologies available. Understand the challenges of formal verification and the relevance of its implementation.
Indicative contents:
This course expands on the M1 « Secure Software » course by addressing on the one hand different aspects of formal verification, and on the other hand by completing it with a case study based on tools used in the software industry. .
The teaching consists of two parts.
- The first part concerns formal models of programming, modeling and specification. In particular, the different approaches to formal verification (deductive verification, model checking, abstract interpretation) of software can be addressed. The formal systems (equipped with their proof system) supporting the different formal verification methods will be studied.
- The second part focuses on the experimentation of industrial tools for formal software verification. The tools tested will for example be the Why3 platform, the Frama-C platform for analyzing C programs, Key the Java program verification tool or other formal verification tools emerging in this very active field.
Methods of assessment:
Written test
Suggested bibliography:
in progress
Credits: 5
Language:
French
Course mode:
On-site
Methods of delivery:
Lectures (20h)
Tutoriels (18h)
Practices (12h)
Pre-requisites:
in progress
Objectives:
This course concerns the advanced aspects of the secure development of real-time embedded programs for critical systems, and the specificities of real-time software.
Learning outcomes:
- Know how to implement a real-time system on different types of RTOS from a design.
- Know how to choose an RTOS depending on the domain. Know how to model and validate the real-time performance of a system.
Indicative contents:
- Operational safety
- Specificity of real-time operating systems compared to general operating systems
- A flexible and powerful, event-based RTOS: the POSIX Pthread standard
- A light but static RTOS: the Osek standard – AUTOSAR
- A proprietary time-based RTOS: VxWorks
- Temporal validation of real-time applications: notions of algorithmic complexity, calculation of WCET, calculation of response times in fixed priorities to tasks, optimality and priorities, taking into account resources and protocols with ceiling and immediate priorities, precedence constraints; scheduling based on deadlines; multiprocessor scheduling; distributed scheduling
Methods of assessment:
Written test
Suggested bibliography:
in progress
Semestre 4
Credits: 3
Language:
French/English
Course mode:
On-site
Methods of delivery:
Lectures (10h)
Tutorials (20h)
Pre-requisites:
Knowledge in OpenGL
Objectives:
This course presents the initial techniques and methodologies usually considered for visualizing heteronogeous data. Through practical examples, several aspects of visualization will be given, such as equitable and impartial presentation. In addition, techniques for extracting the pertinent data and generating various types of graphs are provided. Finally, a case dedicated to 3D visualization is proposed, in order to illustrate questions of highlighting important phenomena with geometric information.
Learning outcomes:
- Data visualization techniques
- Methodology for avoiding bias of presentation
- Increase awareness of data manipulation
Indicative contents:
- R Language
- JavaScript + OpenGL
Methods of assessment:
2 written productions
Suggested bibliography:
- The Visual Display of Quantitative Information – Edward Tufte
- How charts lie – Alberto Cairo
Credits: 6
Language:
French/English
Course mode:
On-site/Hybrid
Methods of delivery:
Scientific project (one day/week)
Pre-requisites:
None
Objectives:
Carry a scientific or entrepreunarial project. 3 options:
- continue their « research » project carried out in M1 within the framework of the Cordées de la recherche
- carry out their project within the framework of the « Ateliers de l’innovation » offered by the IAE Limoges
- carry out their project in conjunction with a company, a CRT, a LabCom, etc.
Methods of assessment:
Project
Credits: 24
Language:
French/English
Course mode:
On-site
Methods of delivery:
6 months internship
Pre-requisites:
None
Objectives:
6 months training period in a company or in a research laboratory
Methods of assessment:
Report, oral, evaluation sheet
Informations
- Parcours sélectif (places limitées)
- Pas de redoublement possible en parcours EUR
- Bourse 6000€ (4000€ en M1, 2000€ en M2)
- Aide à la mobilité entrante et sortante
Prérequis
Titulaires d’une Licence d’informatique ou équivalent avec une formation solide en algorithmique et en programmation.
Candidature
Pour les étudiants résidant en France ou dans l’UE, vous candidatez sur monmaster.gouv.fr
Pour les étudiants hors UE, vous candidatez sur campusfrance.org/fr
Contact
Lieu de la formation
Les informations de cette page sont à but informatif et non contractuelles.
MAJ : Janvier 2024