introduction ============ Le langage python est un langage largement utilisé pour les calculs scientifiques, le prototypage d'interface graphique pour traiter des données, ou l'apprentissage automatique. Il est donc un outil incontournable pour la science des données et indispensable pour la plupart des spécialités de l'ingénierie. Ainsi, il est enseigné en première année de l'ENIB pour que vous puissiez l'utilisez dans les autres matières au cours des semestres suivants. L'objectif donc est que vous en sachiez suffisamment pour utiliser les principales bibliothèques et documentations que vous serez amenés à découvrir, et que vous produisiez du code python bien formé. Les 2 premières années d'enseignement de l'informatique à l'ENIB mettent en avant la **programmation procédurale**. Ce choix repose bien entendu sur une réflexion critique concernant le développement informatique. Dans ce cadre, il était important que votre premier projet à l'ENIB s'appuie sur la seule programmation procédurale. Cependant, le langage python est un langage multi-paradigme : impératif, fonctionnelle, procédurale et orienté objet. Et,le paradigme de la **programmation orientée objet(POO)** est largement utilisée dans la plupart des développements informatiques. Comme nous ne reviendrons plus sur l'enseignement du python en informatique, vous devez connaître quelques principes de la POO, pour être autonome dans l'utilisation du langage au cours de votre formation. Anticipant alors sur le cours de POO du semestre 5 qui utilisera d'autres langages, il vous est proposé une activité d'une dizaine d'heures pour découvrir les concepts minimaux pour vous "débrouiller" avec la POO en python. Ces concepts sont : * l'**encapsulation** * la **collaboration** * le **polymorphisme dynamique** * l'**héritage** En réalité les 2 premières notions, vous les maîtrisez déjà à travers le développement de votre jeu et l'utilisation des types de données abstraits. Il ne s'agira ici que de re-écriture et de vocabulaire. Les 2 autres notions seront abordées de façon pragmatiques autour d'exemples. Nous en profiterons pour vous montrer comment développer une interface graphique simple en python. Pour cela nous nous appuierons sur le livre de Gérard **Swinnen** : :download:`ICI ` .. hint:: Ce cours est une version simplifié du cours du S5 actuel : `OBJ `_ . Si vous êtes à l'aise et que vous voulez aller un peu plus loin, n'hésitez pas à le lire.