Paris 7 – Licence 3 d’Informatique  et autres filières - 2005/2006

Programmation Orientée Objet

(avec Java)

 

L'équipe pédagogique

Eugène Asarin, mail , Chargé de cours

Bertrand Gentou, Chargé de  TD G1

Yan Jurski , Chargé de  TD G2

Jean-Baptiste Yunès , Chargé de TD G3

Guillaume Capron , Chargé de TD G4

 

Horaires et salles

Pour les étudiants de L3 Info le groupe de TD est déterminé par la première lettre du nom.

 

Cours : Jeudi, 14h30 -16h30, amphi 34a

TD  G1 : mercredi 8h30-10h30, J8 et 106  - pour A, B  et tous les linguistes.

TD  G2 : jeudi 16h30-18h30, J6 et 108  - pour C, D, et G à L.

TD  G3 :  lundi 10h 30-12h30, J4 et 110  - pour M à Q.

TD  G4 : jeudi16h30-18h30, J4 et 110  - pour E, F, et R à Z.

 

 

Contrôle de connaissances

Un QCM de mi-parcours a eu lieu mardi le 29 novembre à 18h30-19h15, amphi X2 .

Nouveau: Corrigé.

 

Un projet (obligatoire, même en cas de dispense  du contrôle continu): sujet : Jeu de Borodino; soutenance prévue le 16 janvier.

Nouveau:

  1. Vous pouvez utiliser la version de Java de votre choix.

  2. Par conséquent vous pouvez faire la démo sur les machines de l'UFR, sur votre portable, etc

  3. Vous devez rendre le projet jusqu'au 12/1 : version papier au secrétariat, version électronique aux enseignants (la manipulation à faire est décrite ICI: pour rendre le projet Borodino).

  4. Vous devez vous inscrire le plus vite possible pour la  soutenances du 16/1  auprès de Christine Da Silva

 

Un examen ( le 9/1). 

Nouveau:  il y a des annales au secrétariat.

 

 

Bibliographie

G.Clavel, E.-M.Mahé , Java la synthèse : des concepts objets aux architectures - Paris : Dunod , 2000

K. Arnold, J. Gosling , D. Holmes, The Java programming language, 3rd edition, Boston, Mass. : Addison-Wesley , c2000

Et le rayon « Java » de votre bibliothèque préférée…

Quelques liens utiles

La page web de Jean-Baptiste Yunès contient vos feuilles de TD et d'autres liens utiles.

 

Explorez http://java.sun.com, en particulier téléchargez le SDK (Software development kit) pour votre système d’exploitation, et étudiez les documents de http://developer.java.sun.com/developer/onlineTraining/

Deux excellents supports de cours en français :

Le cours Gilles Audemard de http://www.cril.univ-artois.fr/~audemard/java/cours.pdf Ce cours donne un magnifique aperçu conceptuel de la programmation objet Java. À lire en premier.

Et le cours de Jean-Marie Rifflet http://www.pps.jussieu.fr/~rifflet/JAVA/cours.html Ce cours explique en profondeur les subtilités de l’approche objet version Java. À lire lentement et attentivement.

Documents

QCM (2003) corrigé  

QCM 2004 énoncé

QCM (2004) corrigé

Plan approximatif (l’ordre et le contenu sont susceptibles de changer)

1.      Introduction

  1. Evolution (et révolutions) des langages de programmation impératifs

  2. Qu’est ce que c’est OO ?

  3.  Java – caractéristiques principales. Modèle d'exécution.

  4. Quelques mots sur les autres paradigmes de programmation (logique, fonctionnelle, relationnelle...)

2.      Java – le langage (et concepts OO)

  1. Objets et classes. Encapsulation.

    • Notions d'objet et de classe.

    • Variables et méthodes d'instance

    • Constructeurs

    • La naissance, la vie et la mort d'un objet.

    • Les variables références et les variables des types primitifs

    • Transmission de paramètres en Java

    • Privé et public. Accesseurs.

    • Variables et méthodes de classe (statiques)

    • Tableaux comme objets.

     

  2. Interfaces et polymorphisme

    • Notion de polymorphisme

    • Interfaces

    • Comment réaliser et utiliser une méthode polymorphe

    • Liaison tardive

    • Polymorphisme versus surcharge

    • A propos des interfaces:

      • Leur utilisation pour la conception OO

      • Comparaison Classe-interfaces

  3. Héritage

    • Réutilisation de code

    • Notion d'héritage et terminologie

    • Comment réaliser et utiliser une classe enfant

      • Déclarer

      • Ajouter des champs et des méthodes

      • Utiliser des champs/méthodes héritées et nouvelles

      • Programmer les constructeurs

      • Redéfinir des champs et des méthodes

    • Arborescence des classes

    • Classe Objet et ses méthodes

      • comment les utiliser

    • Transtypage

      • types primitifs

      • objets : upcasting

      • objets : downcasting

    • Liaison tardive encore, mécanismes statiques et dynamiques, type de référence et type d'objet,

    • Erreurs de compilation et erreurs d'execution

    • Retour au polymorphisme

    • Classes abstraites, classes, interfaces

    • Visibilité

  4. Exceptions

  5. Généricité (et collections)

3.      Java – les bibliothèques

3.1.   Packages en général

3.2.   Collections

3.3.   Entrées-sorties et sérialisation

 

Feedback

N'hésitez pas de m'envoyer vos commentaires, solutions des exercices, demandes d'information sur le contenu de cours. On apprécierait beaucoup les notes de cours (en tex, html ou même word).