Cet enseignement est basé sur celui assuré à Nancy par J.-P. Jacquot. Le programme détaillé de cet enseignement est le suivant :

  1. Introduction à la programmation objet :  notion d'objet et de classe, constructeur et méthodes.
    Transparents du cours de Nancy (HTML).

    Travaux dirigés :  syntaxe du langage Java, étude d'exemples de classe (celles du TP, données plus loin) et modifications de ces classes.

    Travaux pratiques :  mise en oeuvre de Java, autour d'un convertisseur (Euros / Francs, d° Celsius / d° Kelvin, etc.) ; 
    ennoncé (PDF, 24 kO), documentation des classes et fichiers fournis (interface et convertisseur).

  2. Conditionnelles et méthodes :  instructions if ... then ..., if ... then ... else ..., switch ... ; définition de méthodes (nom, catégories, paramètres, surcharge) et invocation, constructeur.
    Transparents du cours de Nancy (HTML).

    Travaux dirigés :  préparation du TP.

    Travaux pratiques :  conditionnelles et méthodes, définition d'un agent de change ;
    ennoncé (PDF, 20 kO), documentation des classes et fichiers fournis (interface et convertisseur).

  3. Mutabilité :  gestion des variables en Java (comparaison avec Caml), représentation en mémoire (références), porté et durée de vie.
    Itérations :  boucles for.
    Transparents du cours de Nancy (HTML).

    Travaux dirigés :  préparation du TP.

    Travaux pratiques :  mutabilité et premières itérations, définition d'une suite géométrique et d'une calculette (simple) ;
    ennoncé (PDF, 26 kO), documentation des classes (première et seconde partie) et fichiers fournis (interface et calculateur de la première partie, interface et calculateur de la seconde partie).

  4. De la récursivité à l'itération :  intérêt de la dérécursion, formes récursive, récursive terminale et itérative, passage de la première aux autres, boucles while, tableaux, listes.
    Transparents du cours de Nancy (HTML).

    Travaux dirigés :  préparation du TP.

    Travaux pratiques :  itérations et tableaux, définition d'une calculette HP ;
    ennoncé (PDF, 25 kO), documentation des classes et fichiers fournis (interface, calculette et gestion de la pile).

  5. Héritage et bibliothèques :  définition et intérêt de l'héritage, mise en oeuvre, classe object, ordre partiel sur les types, coercion, création et utilisation de bibliothèques, règles de visibilité des classes.
    Transparents du cours de Nancy (HTML).

    Travaux dirigés :  préparation du TP.

    Travaux pratiques :  autour de l'héritage, calcul des termes d'une suite et de sa série ;
    ennoncé (PDF, 25 kO), documentation des classes et fichiers fournis (interface et calculateur).

  6. Héritage, liaison dynamique, classe abstraite et coercion :  effet de l'héritage sur le contenu des objets d'un type (variables et méthodes), résolution des noms, noms particuliers (this et super), constructeurs et héritage, liaison dynamique, classes abstraites, coercion et types simples.
    Transparents du cours de Nancy (HTML).

    Travaux dirigés :  préparation du TP.

    Travaux pratiques :  héritage et classe abstraite, avec un jeu d'échecs ;
    ennoncé (PDF, 23 kO), documentation des classes et fichiers fournis (zip, 21 kO).

  7. Structures de données et généricité :  mise en oeuvre de piles et de listes de tous type d'objects.
    Transparents du cours de Nancy (HTML).

    Travaux dirigés :  préparation du TP.

    Travaux pratiques :  suite du jeu d'échecs (cf. TP 6).

  8. Synthèse sur les classes d'allocation, les classes abstraites et les interfaces :.
    Transparents du huitième cours de Nancy (HTML).

    Travaux dirigés :  préparation du TP.

    Travaux pratiques :  fin du jeu d'échecs (cf. TP 6 et 7).

Note :  les quatre dernières séances se focalisent sur le fonctionnement général de l'unité centrale et du micro-processeur.

  1. Codage de l'information (1/2) :  représentation et opérations sur les entiers (naturels et relatifs).
    Transparents du cours de Nancy (HTML).

    Travaux dirigés :  préparation du TP.

    Travaux pratiques :  fonctionnement d'une Unité Arithmétique et Logique pour des entiers relatifs ;
    ennoncé (PDF, 24 kO), documentation des classes et fichiers fournis (interface, calculateur, registre et bit).

  2. Codage de l'information (2/2) :  représentation et opérations sur les réels, codes à taille fixe ou variable, exemple sur les caractères (code de Huffman).
    Transparents du cours de Nancy (HTML).

    Travaux dirigés :  préparation du TP.

    Travaux pratiques :  codage de Huffman ;
    ennoncé (PDF, 20 kO) documentation des classes et fichiers fournis (zip, 16 kO).