Software Engineering: Model and process based software development

Lecturer(s): Stéphane DERRODE, Alexandre SAIDI
Course ⋅ 16 hAutonomy ⋅ 10 hStudy ⋅ 22 h


After the discovery of object programming in the core curriculum, this course aims to continue learning object programming by studying : human-computer interfaces, or how to offer the user a nice ergonomic interface ; concurrency, or how to use several cores of a microprocessor to make a parallel calculation; distributed programming, or how to make remote computers work together on a network. This is one of the principles of cloud computing; mobile programming, or how to program on Android. Java is a language widely used in the industry, with vast libraries to facilitate programming and essential to mastering Android programming.

Palabras clave

Computer science, Java, Android, concurrency, parallelism, distributed programming, HCI, user interface


  • The Java language
  • Event-based programming (human-machine interfaces, HMI)
  • Concurrent programming (processes, parallel computing)
  • Distributed programming (Java RMI)
  • Programming for mobile computing devices (Android, Android Studio)

Learning Outcomes

  • Know how to program in Java an application distributed on several computers linked by a network.
  • Know how to develop a concurrent application using several processors.
  • Know how to program a user interface (GUI) that is ergonomic and fluid.
  • Be able to develop an Android application.


Grade = 50% knowledge + 50% skills Knowledge grade = 100% final exam Know-how mark = 33% for each of the 3 mini-project RCs.