Design of mobile, reactive and contextual applications
- UE code INFOM451
-
Schedule
30 15Quarter 1
- ECTS Credits 5
-
Language
Anglais
- Teacher
At the end of the course, the student will have acquired an in-depth knowledge of the concepts, techniques and programming paradigms necessary to design reactive and contextual applications.
Part of the course consists in a project done by groups of students, which allows students to acquire soft skills.
The objective of the course is to study the programming paradigms underlying the design of mobile, reactive and contextual applications.
In addition to the innovative aspect of using the Open Source framework to design an operating system for mobile devices in a hitherto highly proprietary field, the Android project has, from its launch in 2003, had the merit of wanting to provide the user with a rich experience of his preferences and of his environment. Since then, this has been popularized through the development of numerous "apps" both on Android and on other platforms such as iOS or Windows Mobile. Ambient computing aims to further accentuate this phenomenon by allowing the user to benefit from intelligent services provided by communicating objects.
At the programming level, this evolution requires new paradigms to be taken into account. The course proposes to address the main ones through two parts, devoted, on the one hand, to reactive programming and, on the other hand, to contextual programming.
The first part, devoted to reactive programming, will be dedicated to the principles underlying the propagation of changes and other effects in programming such as failure and latency. The key elements of the FRP (Functional Reactive Programming) and OORP (Object-Oriented Reactive Programming) paradigms and their embodiment in the Scala language will be discussed.
The second part, devoted to contextual programming, will be organized along three complementary axes. In the first one, two main models of cooperation will be studied: the actor model and the coordination model based on shared spaces. Incarnations in the Scala language will then be examined. Finally, a link will be made with the declarative programming of a mobile web application highlighted by the React Native framework.
The student is evaluated on the basis of assignments to be submitted as well as an exam at the end of the semester.
Training | Study programme | Block | Credits | Mandatory |
---|---|---|---|---|
Master 120 en sciences informatiques, à finalité spécialisée en data science | Standard | 0 | 5 | |
Master 120 en sciences informatiques, à finalité spécialisée en software engineering | Standard | 0 | 5 | |
Master 60 en sciences informatiques | Standard | 0 | 5 | |
Master 60 en sciences informatiques | Standard | 1 | 5 | |
Master 120 en sciences informatiques, à finalité spécialisée en software engineering | Standard | 2 | 5 | |
Master 120 en sciences informatiques, à finalité spécialisée en data science | Standard | 2 | 5 |