- Gestionnaire: Maxime LEFRANCOIS
This course is given in English as it corresponds to a Teaching Unit of the International MSc on Cyber Physical and Social Systems (CPS2): AI and IoT
Part 1: Everything from the Command Line
The command line interface is an essential tool for computer developers, both for its wealth of available tools and for its ability to increase productivity through the development of ad-hoc scripts.
Each of the other courses in the Computer Science Major makes use of the Shell command line interface, now available on all major operating systems.
The objective of the "Everything on the Command Line" part of this course is for students to master the fundamental concepts of the Shell command line, and to become comfortable with the command line interface for computer development projects.
The following concepts will be covered:
- the file system and working with it,
- text editing and processing,
- input/output streams and command chaining,
- process management
- basic scripting.
Part 2: Technological Foundation of Software Development
The second part of this course aims to discover the tools and methods that are essential to know in any modern software development project.
Students will discover:
- Concepts involved throughout the development and implementation of software systems
Modern tools and methods adapted to the development and implementation of software systems
The course consists of eight independent parts:
- Master your working environment
- Manage your source code
- Master your development environment and software dependencies
- Automate code production
- Debug, log, test, profile, analyse your software
- Document, license, publish, maintain your software
- Run your software anywhere with Docker
- Integrate and deploy your software continuously
- Gestionnaire: Maxime LEFRANCOIS
- Gestionnaire: Luis Gustavo NARDIN
- Gestionnaire: Xavier Serpaggi
This course is given in English as it corresponds to a Teaching Unit of the International MSc on Cyber Physical and Social Systems (CPS2): CPS2 engineering and development
Today's IT applications are increasingly complex. Resulting from the integration of multiple functionalities or pre-existing or non-existing services, they run in complex, distributed environments (e.g. Internet of Things, Cloud, Web). In addition to developing techniques for analyzing and processing the masses of data these applications have to cope with, the engineering of such applications is a major challenge if they are to be based on efficient, flexible and scalable architectures, so that they can integrate new data sources and new processes at the lowest possible cost.
The engineering of such systems is a major issue combining modeling, architecture definition, agility and reactivity. It is based on increasingly rich technical foundations, covering the whole cycle of development and production. It is of first importance to understand the challenges and problems of developing such systems, to master and know the models and technologies to address these challenges in order to choose the right models, technologies and methods according to the context and pursued objectives.
The pedagogical objectives of this course are to understand the current challenges and problems of the development of IT system that result from the bottom-up or top-down integration of existing systems (so called systems of systems), and that operate in distributed environments such as Web, IoT, Cloud, etc.
The students will acquire the skills to be able:
- to carry out an agile development of IT applications,
- to model, design, architect and integrate different IT services, data sources and systems with the right models, architectures,
- to efficiently develop, implement, deliver and put in production such systems with the right technologies and best practices
The following concepts will be covered mainly through practical cases.
- Introduction to Software Engineering and Agile software engineering methodologies
- the SCRUM methodology
- Unified Modeling Language (UML)
- proven models and good practices in the design and coding of software systems
- common software architectural styles (REST, micro-services, publish-subscribe)
- Gestionnaire: Victor CHARPENAY
- Gestionnaire: Maxime LEFRANCOIS
This unit is an introduction to the security of information systems and deals with the following aspects :
- Information systems security requirements, issues at stake and measures to be taken.
- Modern cryptography (classic algorithms, private or secret key encryption, public key encryption, modular arithmetic, primary and random numbers);
- Network security tools (filters, intrusion detection)
- lControl of access (ACL, roles…) and mechanisms of trust management and negotiation
- Personal data management.
- Gestionnaire: Philippe JAILLON
- Gestionnaire: Maxime LEFRANCOIS
The aim of this course is to understand the main concepts of cloud computing and on-demand use of computer system resources, including data storage and computing power. The main service models will be taught such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Software as a Service (SaaS). Practical sessions will use a well known platform provider such as AWS, Azure, or Google Cloud.
- Gestionnaire: Maxime LEFRANCOIS
- Gestionnaire: Luis Gustavo NARDIN
This course is given in English as it corresponds to a Teaching Unit of the International MSc on Cyber Physical and Social Systems (CPS2): AI and IoT
This lecture aims at understanding the data interoperability issues that arise from the integration of existing application, or the evolution of systems. The students will understand and use the main data formats, query languages, and schema definition languages. They will understand the importance of controlled vocabularies and ontologies, and the importance of relaxing data schemas to enable the injection of additional information in documents. The course combines theory and practice on the following topics:
- Encoding base data types. Numbers, characters, date and time, languages, quantities and units of measures, colors, etc.
- Data formats. Delimiter separated values, XML, JSON, YAML, data formats for configuration files, markup, multimedia, or 3D models.
- Data schemas and semantics. Covering XML and JSON schema, controlled vocabularies and ontologies, the Resource Description Framework, rich structured data.
- The value of data. Everything related to data storage and processing, the data value chain, open data, data interoperability, and the European strategy for data.
- Gestionnaire: Maxime LEFRANCOIS