Cet enseignement consiste en un approfondissement des principes et concepts liés à la programmation. Il est basé sur le langage de programmation Java, et donc aborde en particulier les concepts de la programmation orientée objet, mais aussi les aspects fonctionnels. L'accent sera mis sur la méthodologie et les bonnes pratiques à adopter pour programmer proprement.
- Polymorphisme : interfaces, classes abstraites, extension
- Programmation au niveau de la fonction : patron de méthode, branchements, boucles, collections, streams
- Interfaces génériques : consommateur, producteur, conteneur, interfaces fonctionnelles
- Principes de base de conception : Don't repeat yourself, Single responsability principle, refactoring
- Méthodologie : spécification, documentation, tests, gestion de version