This teaching aims to continue the learning of object programming in Java language thanks to Human-Machine Interfaces (HMI) human-machine interfaces, or how to design ergonomic interfaces; concurrency, or how to use several cores of a microprocessor to perform a calculation in parallel; distributed programming, or how to make remote computers work together on a network (one of the operating principles of cloud computing); mobile programming, or how to program on Android.