Ce cours a pour but d'introduire les paradigmes de la programmation et de la conception par objets dans le cadre du génie logiciel.

La COO (Conception Orientée Objet) et la POO (Programmation Orientée Objet) sont abordées en prenant en compte la qualité du logiciel (fiabilité, modularité, évolutivité et réutilisabilité). Le cours présente les concepts fondamentaux de la POO : classe, instance, message, héritage, polymorphisme, généricité, contrat, etc.

Par ailleurs, ce cours reprends les approfondie les notions d'algorithmique simples et avancées qui sont supposées connues à la fin du L3 Miage.

L'ensemble des expérimentations sera fait en utilisant le langage Java.