# Courses This page replicates the [PDS courses page](https://cs.ip-paris.fr/courses/tracks/pds/?page=../common/courses) with a little more details and reviews. Mandatory ECTS for the scientific courses - M1: 27.5 ECTS - M2: 15 ECTS ## IP Paris courses >| # CSC4508: Operating systems (François Trahay and Gaël Thomas, 5 ECTS) >| Course on operating system internals. >| Based on classical MIT's xv6 operating system, each class is dedicated to one of the subsystems/concepts of OS (memory, scheduler, concurrency, FS etc). >| Very classical fundamental course on OS, makes senseto take it if and only if you haven't had a similar course before. >| Practical course, involves a lot of programming in C. >| Full program is available on the [course page](https://www-inf.telecom-sudparis.eu/COURS/CSC4508/Supports/index_ipparis.php) >| # CSC5001: High performance runtimes (Élisabeth Brunet, François Trahay and Gaël Thomas, 5 ECTS) >| ... >| # CSC5002: Middleware and software architecture for distributed applications (Sophie Chabridon, Chantal Taconet and Denis Conan, 5 ECTS) >| ... >| # CSC5003: Data analytic infrastructures (Amel Bouzeghoub, 5 ECTS) >| ... >| # CSC5004: Cloud infrastructures (Pierre Sutra and Mathieu Bacou, 5 ECTS) >| ... >| # CSC5101: Advanced programming of multi-core architectures (Gaël Thomas, 5 ECTS) >| This course has both in-depth coverage of classical parallel programming with multi-threading and oveview of some cool concepts such as transactional memory, NUMA and non-volatile memory. Consists of theoretical information on all of the topics and mostly practice with implementing stuff in C. >| # CSC_4SL05_TP: Distributed algorithms (Part A) (Petr Kuznetsov, 2,5 ECTS) >| This two-period module, CSC_4SL05_TP (formerly known as SLR206), parts A and B, is devoted to the foundations of fault-tolerant distributed computing. The topics covered in the module include: synchronization, shared memory, atomic snapshot, consensus hierarchy, universal constructions, storage systems, lattice agreement, and the use randomization in distributed computing.
