First year of EIPHI SSE track - Semester 7
Compilation & Software Engineering
Compilation ECTSh Lec.h Tut.h Lab
Learning outcomes
Upon completion of this module, students will be able to:
- Define different language levels
- Implement interpretive semantics for a language
- Identify existing programming language paradigms
- Implement and prove the validity of compilation rules for language translation
- Identify optimization problems based on target architecture
Keywords: compiler, grammars, semantic preservation, interpretive semantics
Software engineering ECTSh Lec.h Tut.h Lab
Description
This module covers the software development process and software quality. It begins by introducing the concept of software quality (ISO 25010 standard), followed by a discussion of software life cycles (V-model and Agile). The SCRUM development methodology is then detailed, with practical application of Agile development tools (Agile project management, continuous integration, and quality monitoring). Finally, the fundamentals of software testing are covered, based on the ISTQB 4.0 syllabus, including practical aspects of various software testing techniques and their automation.
Learning outcomes
Upon completion of this module, students will be able to:
- Create a set of requirements for software development
- Define and implement a testing strategy
- Deploy the Agile development approach (SCRUM) on a project
- Use a software production toolchain and quality measurement tools
Keywords: software engineering, agile methods, SCRUM, teamwork
Project: agile VM development ECTSh Lec.h Tut.h Lab
Description
This project aims to implement the concepts learned in the Software Engineering and Compilation modules. Through group work, students will develop a complete development and execution environment for the languages used as examples in the Compilation course. The development follows Agile principles and professional software development tools (ticket management, version control, continuous integration, and continuous delivery).
Learning outcomes
Upon completion of this module, students will be able to:
- Implement and prove the validity of compilation rules for language translation
- Implement interpretive semantics for a language
- Create a set of requirements for software development
- Define and implement a testing strategy
- Deploy the Agile development approach (SCRUM) on a project
- Use a software production toolchain and quality measurement tools
- Write clear and concise (technical) documents and present them
Keywords: software engineering, agile methods, SCRUM, teamwork
Graphs ECTSh Lec.h Tut.h Lab
Learning outcomes
Upon completion of this module, students will be able to:
- Develop a problem-solving strategy using graph data structures and algorithms
- Identify problems that can be modeled as graph problems
- Compare solutions (using complexity analysis)
- Write algorithms at a logical-mathematical abstraction level
Keywords: algorithm design, types of graphs, data structures, graph algorithms
Research project 1 ECTSh Lec.h Tut.h Lab
Description
This first training-through-research project aims to put into practice some of the aspects of the research profession. We will begin by reading and analysing scientific articles in a restricted field that has already been defined. We will then go on to summarise some of the issues involved in this research. Finally, the experimental aspect will be addressed by reproducing and extending the experiments already carried out in these articles to measure the importance of rigour.
The evaluation will be made up of scores on a written summary, an oral summary and a work score given by the supervisor.
Learning outcomes
Upon completion of this module, students will be able to:
- Read and analyse state-of-the-art scientific articles provided by supervisors
- Understand the issues involved in this research and be able to summarise it in writing and orally
- Reproduce scientific experiments, paying particular attention to ethics, validation, etc.
Keywords: introduction to research, scientific writing
Soft skills 1 ECTSh Lec.h Tut.h Lab
Description
This module aims to acquire the linguistic knowledge and skills necessary to communicate in French/English in simple everyday situations, on the one hand for the French language, and in the field of research, on the other hand for the English language.
First year of EIPHI SSE track - Semester 8
Cross-disciplinary courses 1 ECTSh Lec.h Tut.h Lab
Description
This course will be part of the EUR EIPHI common course pool.
Formal Specification and Verification of Programs ECTSh Lec.h Tut.h Lab
Description
Artificial intelligence, frequently depicted as entities capable of thought, is a broad field encompassing the methods and models used to create intelligent agents. This course introduces a range of information modeling techniques and problem-solving approaches employed in AI.
Learning outcomes
Upon completion of this module, students will be able to:
- Understand the different paradigms of specification languages for program annotation
- Use specification languages to annotate and prove small programs
- Position the activities of program proving and testing
- Integrate this approach into program development (C and Java)
Keywords: deductive verification, Hoare logic, contract-based specification, proof tools
Soft skills 2 ECTSh Lec.h Tut.h Lab
Description
This course provides students with the theoretical and methodological foundations necessary for conducting a research project. Topics covered include philosophy of science, research methods, ethics, and project management. Practical workshops complement these lectures by introducing students to literature review, scientific communication, and specialized software. Furthermore, laboratory visits and meetings with researchers allow students to explore various research environments and associated professions. Finally, a supervised research project offers a hands-on experience, enabling students to apply their acquired knowledge.
Learning outcomes
Upon completion of this module, students will be able to:
- Apply research design methods and tools
- Read and write scientific articles, research reports, and presentations
- Work independently and collaborate with other researchers
- Understand the ethical principles governing scientific research
Keywords: research methodology, research project
Automata-based verification (remote) ECTSh Lec.h Tut.h Lab
Description
The course addresses general issues of automata-based verification (modeling, verification, comparison relations, automata products), focusing on some examples of extensions (labeled transition systems, Büchi automata, probabilistic automata, ...), as well as on some examples of logics (temporal logic, modal logic).
The aim of this course is to delve deeper into the concept of automata, particularly in the context of system modeling and verification. Indeed, for reasons of expressiveness and algorithmic efficiency, many formal approaches to system modeling and analysis rely on enriched finite graphs, with states and transitions marked. This leads to various models of extended finite automata, for which it is necessary to maintain a balance between expressiveness and the algorithmic complexity of different problems. In parallel, compatible logics must be used to describe the desired properties.
Research Project 2 ECTSh Lec.h Tut.h Lab
Description
This teaching unit aims to provide students with the opportunity to conduct research within a team in the DISC department of FEMTO-ST.
Students select a research topic from the proposals offered by the teams and work on this topic under the supervision of a professor-researcher. This work spans an entire semester, involving one day of work per week.
Regular and progressive work is required. This includes writing intermediate documents, publishing code on a git repository, and writing a final report. Assessment is based on an oral presentation of the work, the review of the final report, and the supervisor's evaluation of the work accomplished.
Learning outcomes
Upon completion of this module, students will be able to:
- Analyze and communicate by identifying the processes of knowledge production, dissemination, and valorization
- Acquire a research theme and initiate some contributions
Second year of EIPHI SSE track - Semester 9
Systems and Software engineering
Multi-tier programming ECTSh Lec.h Tut.h Lab
Description
This course introduces techniques and tools for architecting multi-tier applications, i.e., applications composed of multiple communicating sub-applications: (i) based on multiple technologies (Spring, Angular, IoT); (ii) organized and distributed across heterogeneous platforms (servers, mobile terminals, etc.).
Learning outcomes
Upon completion of this module, students will be able to:
- Initiate programming of multi-tier applications, using techniques and tools to ensure interoperability between web, mobile, and conventional applications
- Develop a multi-platform, multi-terminal application that meets a business need
Functional testing ECTSh Lec.h Tut.h Lab
Description
This module aims to understand the challenges of implementing a validation approach based on functional testing. It presents the different methods for establishing test steps, selecting data, and establishing the test oracle.
Learning outcomes
Upon completion of this module, students will be able to:
- Manage requirements
- Define and implement functional tests
- Manage a test repository and anomalies
- Execute tests
Multi-tier Application Functional Testing Project ECTSh Lec.h Tut.h Lab
Description
This module offers a project to implement the development of a multi-tier application and its validation. Through the creation of a student group, it allows for the realization of all the stages: specification of requirements, realization of acceptance tests, unit tests, functional tests, and of course, the application development.
Learning outcomes
Upon completion of this module, students will be able to:
- As a team, design and develop a substantial distributed application based on market technologies
- Write a specification document and technical documentation
Responsible computing ECTSh Lec.h Tut.h Lab
Description
The aim of this module is to study the relationship between the computer science and digital technologies sector and the various environmental and societal crises facing the world today. Through the study of various techniques from an ethical perspective, the module explores different tools, their impacts, and approaches to mitigate them. The module is situated within a current context in response to contemporary challenges, but also with a focus on foresight and anticipation to prepare students for emerging issues and the solutions that are beginning to emerge.
Learning outcomes
Upon completion of this module, students will be able to:
- Review of general impacts
- Energy measurement tools: watt, likwid, joularJX
- Life Cycle Analysis tools
- Focus on sub-domains and their specific challenges
Machine Learning (remote) ECTSh Lec.h Tut.h Lab
Description
This module will introduce the machine learning paradigm, its foundations, and how an architecture should be designed to address a specific problem. We will explore how to structure data, how to build upon and customize existing architectures, how to analyze learning, and what tools to implement to analyze and optimize performance. Several practical exercises will be proposed in this regard.
Learning outcomes
Upon completion of this module, students will be able to:
- Describe the machine learning paradigm: presentation, foundations, key concepts
- Install a development environment
- Manipulate data and datasets
- Solving classification problems
- Analyse images
- Perform a research or bibliographic analysis on a specific problem
Cross-disciplinary courses 2 ECTSh Lec.h Tut.h Lab
Description
This course will be part of the EUR EIPHI common course pool.
Research Project 3 ECTSh Lec.h Tut.h Lab
Description
This research project follows on from the research project 2 covered in S8, which is more closely supervised.
The aim here is to tackle an area of research in an exploratory manner: the subject will be designed in agreement with a supervisor who will provide an initial state of the art.
The student will have to supplement this with further reading, summarise it and come up with a more advanced problem.
This will be criticised and defended at intermediate points.
A survey article, a developed library and a demonstrator may be used as deliverables for the final assessment.
Learning outcomes
Upon completion of this module, students will be able to:
- Construct a detailed bibliography on an advanced research topic
- Synthesise the state of the art in a rigorous manner
- Develop publishable code