Cet enseignement est basé sur celui assuré à Nancy par J.-P. Jacquot. Le programme détaillé de cet enseignement est le suivant :
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).
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).
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).
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).
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).
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).
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).
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.
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).
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).