Master Program on Cyber-Physical and Social Systems (CPS2)
International Track of the Master in Computer Science, Université de Lyon

Table of Contents



CPS2 is an international track of the master in Computer Science of University of Lyon, jointly operated by University of Saint-Etienne and Mines Saint-Etienne - Institut Mines Telecom.

The aim of this program is to provide students with strong expertise on Artificial Intelligence and Internet of Things to develop theoretical models and technologies for current and future applications in industry and society. Students will master the necessary technologies and methods to design and integrate intelligent cyber-physical systems. Being strongly connected both to the physical and human worlds, these systems are the key of the current digital metamorphosis of the society.

Topics taught in CPS2 are related to Web of Things, Data Science, Smart Services and applications, Security, Cloud, Social media. The considered application domains are related to industry 4.0, smart cities, intelligent transport systems. Students will learn how to engineer, research and innovate using these different domains. The CPS2 program opens opportunities of carrier in the development of innovative and technical cyber-physical systems.


The CPS2 Track aims to train high-level computer scientists able to understand results of merging the physical, social and digital dimensions of our environments. Industry 4.0, smart cities or smart transport systems are examples of socio-cyber physical systems. These specialists will be able to master throughout their career challenges raised by these dimensions (taken separately or together) and be able to propose and implement adequate and innovative solutions.

In this context, the master track aims to train managers of IT field, cyber-physical system architects, supporting engineers in design and development of cyber-physical systems, experts in socio-technical systems, experts or functional consultant, Project manager in applications such as health, transport, energy and environment.


Our courses aims the training of high-level professionals with a triple expertise:

  1. Technological, by controlling the design and implementation of information systems and applications that integrate physical (communication, perception, action, etc.) and social (privacy, trust, community, etc.) characteristics.
  2. Functional, by understanding the issues and challenges of digital systems to the combination of different dimensions of the new complex environments.
  3. Scientific, by the mastery models necessary for the formalization of all interactions between the dimensions of a cyber-physical system.

Curriculum in a glance

The curriculum consists of courses providing:

  1. Theoretical training: artificial intelligence, multi-agent systems, operational research and graph theory, computability and complexity, semantic web.
  2. Technical training: network, middleware, integrated project, trust, privacy and security.
  3. Functional orientation: Ambient Intelligence, smart cities (smart grid, intelligent transportation system), industry 4.0


  • Degree level: the candidate should have at least BA in Computer Science or affiliated disciplines.
  • Language ability: Teaching and examination being given in English, the candidate is advised to have a conversation level of the language (the requirement for competence in English is equivalent to TOEFL ( with at least 213 points (computer based)/550 points (paper based)/82 points Internet based or IELTS at grade 6.5, or a Cambridge Proficiency Certificate of English at least grade B2). A letter from your University will be accepted if the English language was the medium of teaching throughout your degree. Knowledge of French is not compulsory but would be beneficial.

Sorry, your browser does not support SVG.


M1 Curriculum

Syllabus, Semester 1 (30 ECTS)

UE 1 : Advanced Algorithmics and Programming (3 ECTS)

Introduction of advanced analysis methods for solving difficult problems. The objective is to be able to detect hard problems and to design and program efficient solutions by dynamic programming, greedy approaches, appropriate heuristics or approximations.

This course will teach the following topics (may be modified):

  • Summary/recap on complexity and NP-complete problems.
  • Dynamic programming: characterisation, diverse problems.
  • Greedy algorithms: characterisation, diverse problems.
  • Methods for solving NP-complete problems (branch and bound, graph exploration, heuristics based greedy/random/optimisation approaches)
  • Laboratory sessions Programming

Details here

UE 2 : Complexity (3 ECTS)

Computational complexity theory: Theoretical models of computation are introduced, so as to define formally the fact that some problems are inherently difficult to solve. The methodology used to prove that a given problem is difficult is presented. Computability theory: The intrinsic limitations of computation are introduced. The aim is to learn basic well known undecidable problems and eventually to be able to identify new undecidable ones, using classical techniques.

This course will teach the following topics (may be modified):

  • Computational complexity theory:
    • Non-deterministic Turing Machine.
    • Classes of complexity: P/NP.
    • NP-completeness: definition, methodology, examples
  • Computability theory:
    • Formal models of computation: Turing machines, Markov algorithms, recursive functions. Church-Turing thesis.
    • Recursive and recursively enumerable sets, decidability and semi- decidability.
    • Halting problem, Rice theorem and its applications.

Details here

UE 3 : Introduction to Artificial Intelligence (5 ECTS)

This course presents the most common AI tools: first order logic, prolog programming, Constraint Logic Programming (CLP) and gives the basis to modeling AI problems and solving them using exact and heuristics algorithms (such as Iterative deepening search or A*)

This course will teach the following topics (may be modified):

  • Introduction to Logic (Propositional and First Order Logics and Inference Systems): 11h
  • Introduction to AI (history, problems' representation, heuristic and exhaustive search algorihms (depth, breadth, minimum cost, A*, AO, AO*): 13h
  • Prolog programming language: 12h
  • Constraint Programming: 4h
  • Practical sessions (reverse classes) on Prolog and Constraint Logic Programming (CLP): 10h]

Details here

UE 4 : Data Analysis (5 ECTS)

This course gives the necessary mathematical background to perform data analysis in terms of statistics, linear algebra and convex optimization. Practical sessions make use of the R-free software environment for statistical computing and graphics.

This course will teach the following topics (may be modified):

  • Basics in probabilities (chance experiments, random variables, moments, law of large number, …)
  • Statistics (discrete and continuous distributions, estimates, Maximum Likelihood Estimation,…)
  • Basics in linear algebra and in convex optimization.
  • Linear Regression
  • Principal Component Analysis
  • Clustering

Details here

UE 5 : System Modeling (6 ECTS)

Educational goals :

  • Acquire the skills to be able, given a modeling formalism and a problem to solve, to build a model for a solution to solve;
  • Acquire knowledge on classical data formats and models, to build interoperable systems;
  • Being able to build bridges between different models and be able to collaborate on the basis of different models.

This course will teach the following topics (may be modified):

  • Introducing the main data formats and data types commonly used in software engineering;
  • Introducing the UML/UP modeling formalism for modeling softwares;
  • Study of different case studies illustrating a modeling formalism and allow to understand its use;
  • Processing a sufficiently rich study in which different models can be built. It may be considered that the case study is derived from the challenge that follows the student in parallel (require coordination and complicity with all or some of the challenges).

This course is organized as follows:

  • 20h Interoperability of data and semantics, joint course with MINES Saint-Étienne
  • 20h Unified Modeling Language (UML) and Unified Process (UP)

UE 6 : Research and Innovation (5 ECTS)

The students will have an understanding on how research works, what is the research community, who are the types of actors and institutions, how the publication process works, how research outcomes are valorized. The students will also learn how to analyze a research paper.

This course will teach the following topics (may be modified):

  • Research institutions
  • The actors of research
  • Processes of research
  • Research papers reading and writing

Details here

UE 7 : Foreign language (3 ECTS)

Syllabus, Semester 2 (30 ECTS)

UE 1 : Computer Networks (4 ECTS)

This course introduces the main concepts involved in computer networking. A top-down approach is followed, where higher abstraction layers are covered first. This course covers the main concepts of networking and it details some of the most important algorithms involved in networking and security. After this course, the learner have an overall understanding of computer networks architectures, knows important algorithms and have a concrete experience in socket-based, multi-threaded distributed application development. Keywords: computer networks, layered architecture, networking stack, security, socket programming, concurrency, peer to peer.

This course will teach the following topics (may be modified):

  • Overview of networking and the networking stack
  • Applications layer: protocols, peer2peer, socket programming, concurrency
  • Transport layer: concepts, protocols and algorithms
  • Network layer and routing
  • Lower layers: concepts, algorithms and wireless problematics
  • Security and cryptography
  • Lab sessions and project

Details here

UE 2 : Optimization and Operational Research (3 ECTS)

This course introduces some of the main concepts involved in some optimization and operational research techniques. It covers linear programming, convex and non-convex optimization approaches. Theoretical foundations will be presented with some classical algorithms (simplex, gradient, line-search, Newton, interior points,…). Formulation of practical cases and use of optimization software will be proposed in the practical sessions. Keywords: convex and non-convex optimization, linear programming, gradient descent, Newton methods, interior points, simplex, duality, Lagrange functions.

This course will teach the following topics (may be modified):

  • Introduction to operational research and optimization (2h) - Linear Programming and Simplex Method (6h)
  • Convex sets and functions, Convex optimization problems, Constraints, Norms, Lagrange functions, Duality, optimality constraints, KKT conditions (3h)
  • Gradient methods, Line-search methods, Newton’s method (3h)
  • Barrier functions, Interior point methods (3h)
  • Non convex optimization methods, formulation of practical cases. (3h)

Details here

UE 3 : Virtual Communities (4 ECTS)

Students will know about types of communities, the techniques used, the existing platforms or systems, the promises of VCs.

This course will teach the following topics (may be modified):

  • Definitions
  • Types of virtual communities
  • Examples of VCs
  • Techniques for VCs

Details here

UE 4 : Multi-Agent Programming (4 ECTS)

Introduction to the domain of multi-agent system with a clear and strong focus on programming. The objective is to be able to analyze, design and program collective autonomous systems by using multi-agent models and technologies. Keywords: multi-agent system, agent-oriented programming, agents organisation, agents environment, programming language,

This course will teach the following topics (may be modified):

  • Introduction to multi-agent systems
  • Concepts and models of multi-agent oriented programming
  • Multi-Agent Software Engineering
  • Programming Languages and Platforms
  • Laboratory sessions programming

Details here

UE 5 : International Project Management (3 ECTS)

Students will learn about to practice international projects.

This course will teach the following topics (may be modified):

  • Principles and background
  • Project development
  • Presentation

Details here

UE 6 : Internship (12 ECTS)

During the third semester, CPS2 students have to do a 3-month End of year Project from April to June. This End of Year Project can take three different forms:

  1. An internship in a recognized research laboratory, in France or abroad. The scientific topic should have been validated by the coordinator of the CPS2 program.
  2. An internship in a company, in France or abroad. The topic and the hosting institution should have been validated by the coordinator of the CPS2 program.
  3. A research project (Travail d'Etude et de Recherche - TER - in French) done at home and supervised by an instructor of the CPS2 program. This project typically takes the form of a survey on a scientific topic and/or the implementation of some state of the art machine learning and data mining algorithms. Note that this research project is not funded.

The defense (in English) of the End of Year Project (15mn of presentation followed by 15mn of questions) is scheduled at the beginning of July. A written report in English has to be sent to the coordinator one week before the defense. The final grade of the End of Year Project will depend on (i) the quality of the oral presentation; (ii) the quality of the report; (iii) the feedback provided by the advisors.

M2 Curriculum

Syllabus, Semester 1

UE 1 : Multi Agent Systems Coordination (5 ECTS)

This course explores the coordination techniques through the distributed AI and multi-agent paradigms. We first recap the AI basic, before expounding some useful multiagent techniques for cyberphysical and socio-technical systems: distributed optimisation, distributed planning, negotiation and auctions, and environment-mediated coordination.

Details here

UE 2 : Semantic Web (5 ECTS)

This course presents the main technologies and standards used in the Semantic Web to publish, link, process and query data on the Web, as well as to reason automatically with Web ontologies. This course will teach the following topics (may be modified):

  • Linked Data and Semantic Web principles
  • RDF, syntax and semantics
  • SPARQL 1.1 Query
  • OWL2
  • RDFa 1.1
  • Apache Jena API, OWL API, Protégé

Details here

UE 3 : Web Programming (3 ECTS)

This course explores design and development techniques of web services. This course will teach the following topics (may be modified):

  • Notion of web service
    • Deefinition of web services
    • Use cases
    • HTTP protocol
    • Presentation of the 3 components of web services (SOAP, UDDI, WSDL)
    • Web services and J2EE, Servlet
  • Tutorials and Lab works : Composition – Collaboration – Orchestration of services web
    • Use of social networks APIs to develop applications (twitter, facebook, …)

Deatils here

UE 4 : Distributed and Mobile Computing (3 ECTS)

This course explores client-serveur development architectures, development of J2E applications, and design and development of applications running on a mobile phone. This course will teach the following topics (may be modified):

  • Server-side basic components
  • Objects lifecycle
  • Enterprise JavaBeans
  • Introduction to mobile application development
  • Web technologies and web standards (javascript, HTML5)
  • Native and hybrid technologies (iOs, Android, Titanium)

Deatils here

UE 5 : Security, Trust and Privacy (4 ECTS)

This course is an introduction to computer security. The objective is to be able to identify when security (confidentiality, availability and integrity) is required and to be able to choose and implement right solution. Keywords: security, risk, network, cryptography

This course will teach the following topics (may be modified):

  • Information system security
  • IP networks security
  • Introduction to cryptography

It also presents technical solutions for access control, for the management and negotiation technics for trust, some know how to manage private data.

Details here Details here

UE 6 : Internet of Things (5 ECTS)

This course overviews the domain of Internet-of-things, which links physical world to the internet and the web. We put the emphasis on relevant technologies and real applications. Hardware-wise, we look at some technologies used in the industry (Orange), and some easy-to-develop ones, like Arduino and Raspberry. Communication-wise, we study the different layers (link, transport, application) required to develop an end-to-end IoT platform. The course is also complemented by an integrative project during which students

This course will teach the following topics (may be modified):

  • Introduction to Internet-of-things
  • Ambient Computing
  • Applications in IoT and WoT (Smart home, smart grids)
  • Hardware (overview, Arduino, Raspberry)
  • Link Layer and Transport Layer Protocols
  • Application Layer Protocols
  • Data, formats and semantics
  • Context Management in IoT and WoT

Details here

UE 7 : CPS2 project (5 ECTS)

During th whole duration of the first semester of the second year, students have to drive by themselves a development project integrating all the different techniques expounded during the classes. for a selected application domain, major issues in the development of Cyber-physical social applications (e.g. transport, smart city, energy, health)

More info on the requirements for the project here.

Syllabus, Semester 2 (Internship/Master thesis, 30 ECTS)

As to complete their master thesis, students have to follow an internship in a research team (validated by the track coordinator).


  • Minimum duration: 4 months
  • Maximum: 6 months
  • Period: February to June (see longer)
  • Place: academic laboratory


  • Research orientation
  • The subject must be related to the models, tools and technologies of "CPS2"
  • The subject is validated by the track coordinator


  • Mandatory gratuity
  • Minimum: 30% minimum wage of ~ € 436.05
  • Maximum: none


  • Mandatory, signed by the supervisor, the coordinator and the student
  • Deadline: mid January (laboratory) in mid-February (business)




or at

Year 2019-2020:

  • 10th May 2019 (non european applicants)
  • 30th June 2019 (european applicants)


Early September for both M1 and M2 curriculum.


See the following plannings for more details :



International Partnerships

CPS2 track operates several International exchange programs for courses or internship:

  • University of Freiburg, Germany
  • University of Bonn, Germany
  • Technical University Wien, Austria
  • University Polytechnic of Madrid, Spain
  • Università degli studi di Torino, Italy
  • NTNU Trondheim, Norway
  • University of Umea, Sweden
  • University of Tokyo, Japan
  • Aoyama Gakuin University, Tokyo, Japan
  • National University Kaohsiung, Taiwan


Author: Gauthier Picard


Created: 2019-12-02 Mon 15:04