Programmation Objet en Python L2 (Informatique) 2011 – 2012 CM : Jerzy Karczmarczuk – TD/TP : Véronique Terrier (Cherchez-nous en Sciences 3, 3ème étage) Je pense que ce cours est un de de plus importants, sinon LE plus important des matières informatiques en L2. Ce cours est relativement avancé, vous êtes « affranchis », la connaissance du langage Python est considérée acquise. Version utilisée : Python 2.7, avec une « pollution » considérable par des éléments de la version 3.2. Ses objectifs sont par excellence pratiques. Peu de « philosophie généraliste », beaucoup de programmation concrète.
Les objets au sens technique du terme sont des structures de données « conscientes » qui gèrent ses procédures du traitement, (ou méthodes) qui sont attachées aux données. Vous les déjà connaissez, vous savez que x + y signifie plusieurs choses selon le type (ou classe) des arguments : ajout entier, flottant ou complexe, concaténation, etc. Vous pourrez ajouter d'autres choses, comme vecteurs... Mais les objets sont plus riches que ça. Ils peuvent effectuer des opérations arbitraires quand on les « touche », par ex. on demande à ce qu'une « balle » change sa propriété « position », et ceci déclenche automatiquement une opération graphique sur l'écran... Les programmes deviennent ainsi considérablement plus modulaires, lisibles, et maintenables. Mais ceci n'est pas la fin de l'histoire... TOUT dans Python passe par les objets. Les fonctions sont des objets. Les modules sont des objets. D'autres types, comme les itérateurs, les générateurs, les threads (pour la programmation parallèle), les expressions régulières (pour le traitement des textes), etc. vous seront présentés, avec leurs méthodes spécifiques. Les objets prennent en charge la hiérarchisation, la communication, la sécurité (partiellement)... Le sujet est infini, et continue en L3 avec Java.
On travaillera avec quelques modules de support non-standard, notamment : ● Numpy, une bibliothèque mathématique, facilitant les opérations sur les tableaux, les séquences, etc. ● Matplotlib, un paquetage graphique très riche et utile, permettant faire des choses visuelles à un niveau beaucoup plus haut que le notoire Tkinter (qui, quand même, constitue une des libraires de base possibles sous Matplotlib. Installez ces librairies sur vos ordinateurs personnels ! Modalités. Vous aurez un examen sur table (2/3), et un projet de programmation – pour la note de contrôle continu (1/3). (Le projet sera géré par Véronique). Mes notes de cours seront mis en ligne régulièrement, sauf si je constate un absentéisme exacerbé, alors je distribuerai les notes individuellement aux présents en cours. De toute façon, la lecture des notes ne remplacera jamais la présence en cours, car je ferai interactivement des exemples, et je vous offrirai des explications supplémentaires (et ceci va vous manquer, comme disait Uma Thurman dans « Kill Bill », a propos des membres coupés à son ennemie...) L'URL des notes : users.info.unicaen.fr/~karczma/TEACH/PyObj/Master.htm l
Questions ? N'hésitez pas à me contacter par mail et demander des renseignements, éclaircissements, etc. Vous serez encouragés à faire beaucoup d'exemples personnels, off-line. Il est probable, que je vous offrirai après chaque cours une collection de problèmes à résoudre (officieusement, mais je peux les réutiliser comme sujets d'examen...) Ne laissez pas traîner des bugs difficiles à décortiquer trop longtemps, demandez de l'aide. Mais si vous ne posez pas des questions, vous n'aurez aucune réponse... J. Karczmarczuk