In the 21st century, a company developing a product (or, a Polytechnique student, doing a CSP...) either:
- has a strategy to render the product (or, the CSP) somehow connected; or
- is as disconnected from reality, as the guy installing the bike rack on the picture to the right.
If you are or want to be, in the first category, then this MODAL is for you, regardless of your previous experience.
Whether you are a novice or a seasoned programmer, this tutorial-based MODAL will bring you to develop a complete connected object (system), and in the process, you will learn things such as:
- How a microcontroller works, and how to build intelligent objects with it?
- How to (efficiently) use WiFi, Bluetooth, Bluetooth/LE, IEEE 802.15.4, and other “IoT Interconnect” to connect your intelligent object to the Internet
- How to “communicate to the cloud” from your connected object – in passing, understand things such as CoAp, and REST.
You are highly encouraged to bring your own project ideas, which your instructors will work with you to fit into the PCs.
For this reason, this MODAL is limited to 24 students.
Inscription based on demand. Please contact jill-jenn.vie@inria.fr.

This modal presents the different concepts of smartphone and tablet programming.
While the number of tablets per year has far exceeded the number of computers, it is essential to know how they work. Unfortunately, each operating system (Apple iOS, Google Android, Windows ...) has its programming language (Java, Objective-C ...).
In recent years, in order to avoid this extra cost of development (one application per type of device), cross-platform programming has been developed thanks to programs written in Javascript and HTML. The principle of these applications is simple and can realize many applications in a minimal time and functioning on almost all systems.
This modal offers you to learn how to develop such applications. You will be evaluated on a project in pairs that you will have to carry out during working hours in the afternoon accompanied by teachers. This project is chosen freely by pairs after validation by the referring teacher. Binet, online sales, club, student sites, give free rein to your imagination to find an application.
This modal offers an introduction to the professional field of video games, and, in particular the acquirement of basic notions that allow the design and the IT development of 2D and 3D video games. The theoretical concepts covered in class will be put into practice through a supervised development project for a complete video game.
The video game will be developed in small groups, on Unity, and with C# scripts. The project's overall theme will be "Gamify a science". An introduction to Unity is an integral part of the modal.
Practically every time we interact with a computer program — on our computer, tablet, smartphones, SmartTVs or our refrigerators … or, for some reason on our also connected toaster oven — we’re in reality interacting with a distributed application.
The device we hold in our hands for sending an email (or, into which we slide our sliced toast … ) will, at the very least, communicate with a server, somewhere out there in “the cloud” — and, most often, comunicate with a whole host of servers, and computers … and does so through what we call “The Internet”.
A corollary to this is that every relevant modern application is a distributed aplication, which uses the Internet and the cloud — and, in a nutshell, the purpose of this MODAL is to teach you how to competently develop those.
That implies, of course, discovering how the net works (pun intended), what a protocol is, what a system is, and what the different acronyms that you might encounter really means: TCP/IP, SMTP, NAT, NATP, etc. It also implies writing programs which communicate over the Internet — who knows, maybe you will be getting the impulse to starting the next Google or FaceBook during this course?
This course will consist of a set of activities, organised through "learning flows". These activities are:
- Video Capsules, which introduce key technological concepts for conceiving network systems.
- Quizzes, which will help you verify if you have learned the key technological concepts and -- if not -- will help you identify which you will need to study further.
- Tutorials, which will take you "from neophyte" to a competent networker, and which will teach you how to write communicating programs, and have them talk to each other across the Internet.
- A Project, which will allow you to, more autonomously, apply the competencies that you have learned.
Course Evaluation & Grading:
- Up for grabs: 100 points
- Quizzes & Tutorials: 30 points
- Project: 70 points
- Letter-grades:
- > 50 points ➔ C
- A, B, C distributed in accordance with the “note de cadrage” from the DE
- Any instance of plagiarism will be met with an F.
- The grade F, will be used for all scores ≤50%
- Nummerical grades:
- Highest point score (assuming >80) ➔ 20/20
- >50 points: ➔ ≥ 10/20
- Other point-scores mapped to [0;20] distributed to be in accordance with the “note de cadrage” from the DE
Robots are complex systems containing a variety of sensors, actuators and algorithms that link them together to interpret the environment, model it, plan movements or manipulate it.
Developing software for these systems is therefore difficult, and approaches enabling the abstraction from specific hardware or reusing existing components are being developed to simplify the task. Algorithms and their proofs of good functioning, in the presence of the many uncertainties due to sensors and actuators, are also major issues in drone development.
Contacts : David Filliat - david.filliat@ensta-paristech.fr
Eric Goubault – eric.goubault@polytechnique.edu
Sylvie Putot – sylvie.putot@polytechnique.edu
Quota: 30 students;
after a common core of around 4 sessions, sub-groups will be organized according to project choices, and a possible different direction on vision and mapping issues, or modeling, control, planning and guaranteed simulation.
Nowadays, the number of websites is close to one billion whereas in 2004, they were only 57. 000. 000. Moreover, these sites offer more and more personalized services according to the user: aggregators, shared workspaces, community sites, or even blogs are the perfect example. This new deal has simultaneously seen the development of these types of sites or should we actually say these types of applications.
This course will be primarily composed of TDs in the machines room, students will have to complete a project such as the development of a Web application for the dynamic management of a library (customers, stock, reservations, loans, renderings, etc.), a small blog or binet hosting site, a collaborative site or any other similar application of their choice...
TDs will be an opportunity to discover through practical experience, some of the key concepts of contemporary computer science, commonly used in the industrial world.
Nowadays, we have access to large datasets, many created and released by governments. For example, here in France, we have the data.gouv.fr portal.
These datasets offer great insight into our societies and can help spot social trends or social issues.
During this modal, you will familiarize yourself with notions and tools for exploring data. We will discuss impactful research articles that use computational methods to uncover social issues. This class also introduces the different significant steps a data science engineer needs to know to extract knowledge from large volumes of data.
The first five sessions are dedicated to presenting concepts and tools, while in the remaining sessions, you will carry out projects in pairs with the tutor’s help.
Prerequisite: Python
Language: The materials are in English, but the class can be in English or French, depending on the students.
As anybody, familiar with 1970s sitcoms can confirm, Mel, Alice's cook used to say:
“the best defense is a good offense”.
In cybersecurity, a similar saying would be that in order to know how to secure something, one needs first to know how to compromise & break it.
This is exactly what the MODAL offers: to help you understand — and try — how to “break things”. This can include topics such as:
- TCP Connection hijacking & SYN flooding
- SQL Injection attacks on WWW servers
- Heartbleed - that SSL bug that caused the whole Internet to flip out
- DNS Cache Poisoning
- ...
This course consists of a set of instructional videos, some quizzes, tutorials, a set of challenges -- and regular exchanges with your professors and instructors over WebEx.
- Tutorials serve to help students to acquire a certain set of skills. Each tutorial requires a submission of some code, which will be evaluated, and a grade for each tutorial will be given.
- Quizzes serve to allow checking that certain theoretical concepts have been acquired. Each quiz can be attempted once. Completing a quiz will give a number of points and will unblock future course activities (tutorials, videos, challenges, and more quizzes...)
- Challenges each represent "a thing to hack", such as DNS, or TCP, or DHCP, or invoking a buffer overflow, or performing a man-in-the-middle attack. Challenges will each have an explanation, and supporting material, for what is expected - but will require independent thinking. Each challenge requires a demonstration to an instructor, then submission of some code, which will be scrutinised. Based on all this, a grade will be awarded.
- Each challenge can bring you a maximum number of points, which will be indicated for the challenge.
- A submission which "does the job, nothing more, nothing less" will be given 50% of the maximum number of points, indicated for the challenge
- To get maximum points, an additional effort, such as highly modular code, flexible, robust, or supporting different attack approaches, is required.
- Each challenge can bring you a maximum number of points, which will be indicated for the challenge.
You're encouraged to work in a small group of 1-2 students for each challenge.
You will choose to work on challenges in the order you like, and you will do however many you want - or, need, in order to get enough points to pass the course.