Scientific core curriculum of the first year

The first-year scientific core classes cover the following area: Automatic, optimization and applied mathematics ; Mechanics and physics ; Engineering methods ans tools ; Information and communication sciences and technologies. The course details by field are available below.

Automatic, optimization and applied mathematics

Classical scientific core classes:

Reinforced scientific core classes (the courses are identical to those of the classic core curriculum but offer a format and sometimes a chronology adapted to the students' level):

Mechanics and physics

Classical scientific core classes:

Reinforced scientific core classes (the courses are identical to those of the classic core curriculum but offer a format and sometimes a chronology adapted to the students' level):

Engineering methods and tools

Information and communication sciences and technologies

Recognizing that students from the MP2I/MPI preparatory classes need in-depth knowledge and skills in computer science, ENSTA Paris offers these students specific computer science courses in their first year. The "Language C", "Algorithms and programming" and "Algorithms and data structures" courses are replaced by "Advanced language C", "Introduction to compilation" and "Around logic".

The "Advanced C language" course aims to deepen understanding of this language, its constructs and their semantics. The C language makes it possible to write efficient programs, possibly very close to the hardware aspects of machines. These advantages sometimes come at a price, however, in the form of technical subtleties that must be mastered for safer programming. This course sometimes oscillates between language, compilation, OS and hardware aspects, showing the close interactions between these fields. The course takes the form of integrated tutorials in small groups.

The "Introduction to Compilation" course focuses on the translation of a dedicated language (DSL, Design Specific Language) into the C language. It illustrates the breakdown into separate compilation phases, implementing a large number of algorithms and data structures to make the translation process efficient. It covers syntax (lexical and syntactic analysis), semantics and code production. The support language will be OCaml.

The "Around Logic" course aims to lay the foundations of mathematical logic and demonstration. This course has several objectives. In no particular order, it proposes to approach logic as a science, as an object of study, to demonstrate properties of certain logical formalisms. But it also approaches logic as a tool, for formalizing problems and demonstrating properties, for formalizing programs and demonstrating properties on these programs. Finally, it looks at logic as a domain on which algorithms can work to automate proof checks, and even (in part) proof searches. The course mixes purely theoretical aspects (demonstrations in the "usual" sense of the term), programming aspects in OCaml to work on logical formulas, and proof and programming aspects in Coq to apply so-called formal proofs. This course takes the form of integrated lectures and tutorials in small groups.