This teaching consists of a deepening of the principles and concepts related to programming. It is based on the Java programming language, and therefore addresses in particular the concepts of object-oriented programming but also the functional aspects of programming. Emphasis will be placed on the methodology and good practices to be adopted for proper programming.
- Polymorphism : interfaces, abstract classes, extension
- Function-level programming : method pattern, hookups, loops, collections, streams
- Generic interfaces : consumer, producer, container, functional interfaces
- Basic design principles : Do not repeat yourself, Single responsability principle, refactoring
- Methodology : specification, documentation, tests, version control