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.


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.