The master 1 Foundations of Computer Science is a foundations oriented master. It is also sometimes called the MPRI master 1 (for reasons explained below). This page gathers information about the organization of the master (admissions are here).
Everyone regularly experiences computer programs being inefficient or crashing. In order to avoid that, it is necessary to properly define and study what it means for a machine to compute something. This 2-years master program covers some of the theoretical approaches to computer science addressing this, often based on mathematical tools, with a view towards applications. The topics of the courses include
The master is research-oriented, with a focus on foundations: it aims at introducing students to contemporary theoretical computer science and most students do a PhD after the master, although it also leads to many possible careers in industry.
This master corresponds to the Parisian Master of Research in Computer Science (MPRI), which is run jointly by the following institutions: Université Paris Cité (coordinator), ENS Ulm, Université Paris Saclay (ENS Paris-Saclay) and Institut Polytechnique de Paris (École polytechnique, Telecom Paris). The first year takes place mostly at École polytechnique, while the second year takes place mostly at Université Paris Cité.
The starting dates are
The curriculum consists in 3 semesters:
The master is joint with the Efficient Algorithms and Foundations of Programming Languages track of the Polytechnique school.
Over each period, at least four courses must be chosen among the following ones.
First period:
Second period:
The courses CSC_51050_EP and CSC_51051_EP are mandatory (but CSC_51050_EP can be replaced with FMA_51057_EP). It is possible (subject to validation) to follow a few courses from other tracks, or even departments or even schools (the MITRO track at Télécom Paris for instance). In particular, the following courses could be interesting:
First period:
Second period:
You can also follow a course to learn French for foreigners.
You can follow more than four courses over a period, but you have to identify in advance which of those are your four main courses, which you have to validate in order to validate your period. The main courses have to be computer science courses and cannot be changed after two course sessions. The other courses are optional ones , which will not prevent from validating the period if you fail, will not give you extra ECTS, but will still appear on your transcript.
Optionally, a project can be performed in addition to the courses (this is strongly advised) and should be discussed with the supervisor of the master as soon as possible. The project can last for one or two periods, but much better projects are generally achieved when performed over two periods. The project cannot be taken as a replacement for a course. You should register to CSC_50P13_EP.
First period:
Monday | Tuesday | Wednesday | Thursday | Friday | |
---|---|---|---|---|---|
8:30–10:30 | CSC_51071_EP | CSC_51056_EP, CSC_51058_EP | |||
10:45–12:45 | CSC_51071_EP | CSC_51056_EP, CSC_51058_EP | |||
14:00–16:00 | CSC_51063_EP | CSC_51051_EP* | CSC_51050_EP*, FMA_51057_EP | MDC_51005_EP | |
16:15–18:15 | CSC_51063_EP | CSC_51051_EP* | CSC_51050_EP*, FMA_51057_EP | MDC_51005_EP |
Second period:
Monday | Tuesday | Wednesday | Thursday | Friday | |
---|---|---|---|---|---|
8:30–10:30 | CSC_52003_EP, CSC_52062_EP | CSC_52071_EP | CSC_52068_EP | ||
10:45–12:45 | CSC_52003_EP, CSC_52062_EP | CSC_52071_EP | CSC_52068_EP | ||
14:00–16:00 | CSC_52064_EP | CSC_52061_EP, CSC_52070_EP | CSC_52001_EP, CSC_52060_EP, CSC_52080_EP | ||
16:15–18:15 | CSC_52064_EP | CSC_52061_EP, CSC_52070_EP | CSC_52001_EP, CSC_52060_EP, CSC_52080_EP |
The internship should last (at least) 3 months (more precisely, 12 weeks). You should register to the course CSC_52991_EP and follow the rules given on the dedicated moodle page (in particular, you should begin to have a fairly precise idea of your internship in December).
The whole year is 60 ECTS, split as follows:
Only the main courses (4 in each two first periods) count in the final number of ECTS.
Given a grade x for a course, the associated letter is
In order to validate a course, the student must have A, B or C. Within a period, a grade B can compensate for a D, and a grade A can compensate for an E. In order to validate the master 1 year, the student should have 60 ECTS.
For each non-validated course, a retake exam has to be offered. The student should get in touch with the teacher in order to fix the modality and the date.
There are listed relevant sources of scolarships.
You should ensure that you are fluent with at least one programming language. A good choice for a first language is Python (tutorial). You might also want to discover other languages, for instance, functional ones such as OCaml (tutorial) or Haskell, low-level ones such as C or the more modern Rust (tutorial).
You should also make sure that you are acquainted with the basics of algorithms and complexity. An excellent book is Introduction to Algorithms by Cormen, Leiserson and Rivest.
A limited number of student housing are available, you should apply as early as possible.
Yes, as long as the set of courses remains coherent and validated by the supervisor. You can see the full list here.
Unfortunately, not from schools outside IP Paris, because we do not have agreements with other schools (such as Université Paris-Saclay). In practice, if it is really justified, following such a course is tolerated but not at as mandatory course, at most one per period, and explicit agreement from the teacher must be obtained.
Yes, you can take an additional course to learn French.
The website to track the courses you are registered to is Synapses. If you do not have access to it yet, contact the supervisor.
All the material for the courses is available on moodle.
Obviously, the best is that you do not change your course selection after the beginning of the period. However, we do accept small adjustments to your selection up to three weeks after the courses started (the sooner, the better). After that, absolutely no change shall be performed.