Cet enseignement consiste en un approfondissement des principes et concepts liés à la programmation. Il porte sur les concepts de la programmation orientée objet et utilise le langage java. L'accent est mis sur la méthodologie et les bonnes pratiques à adopter pour programmer proprement et gérer des projets conséquents.

- Polymorphisme : interfaces, classes abstraites, extension
- Programmation au niveau de la fonction : patron de méthode, branchements, boucles, collections
- Interface génériques : consommateur, producteur, conteneur, interfaces fonctionnelles
- Principes de base de conception : Don't repeat yourself, principes SOLID, refactoring
- Méthodologie : spécification, documentation, tests, gestion de version
- Patrons de conception, patron d'architecture (MVC)