Les dates et contenus des cours d'algorithmique et de Java en deuxième année de Master-ID (2007-2008).

Séance 1/12

Algorithmique

  • boucles simples et boucles imbriquées

Programmation Java

Syntaxe Java non-objet :

  • instruction d'affichage
  • déclaration de variables, typage Java, affectations
  • tests et structures de contrôle
  • méthodes et programme principal

Travaux pratiques

  • Hello world!
  • compter jusqu'à 100
  • production d'une table de multiplication
  • dessin de figures géométriques

Séance 2/12

Algorithmique

  • algorithmes sur les tableaux

Programmation Java

  • vocabulaire: classes et objets, méthodes et propriétés
  • exemples de deux classes Java : String et Arrays
  • syntaxe pour écrire une classe
  • variables et méthodes d'instance, variables et méthodes de classe
  • des méthodes à implémenter : l'encapsulation (getter et setter), les méthodes héritées de Object
  • héritage, classes concrètes, classes abstraites
  • utilisation de javadoc

Travaux pratiques

  • implémentation d'algorithmes sur les tableaux Java

Séance 3/12

Programmation Java

  • polymorphisme
  • interfaces
  • JUnit

Travaux pratiques

  • classe TableDeMultiplication
  • classes de Figures
  • fichier de tests JUnit pour le problème Syracuse

Séance 4/12

Programmation Java

  • énumérations
  • lecture au clavier en Java

Travaux pratiques

  • correction du problème Syracuse
  • implémentation des premières classes pour le dilemme des prisonniers itéré

Séance 5/12

Programmation Java

  • les varargs

Travaux pratiques

  • suite et fin du dilemme des prisonniers itéré

Séance 6/12

Interrogation

Sujet sur le jeu « Alésia », nécessitant :

  • implémentation de classes et d'interfaces, héritage
  • encapsulation, polymorphisme
  • manipulation de tableaux
  • utilisation de JUnit et javadoc

Séance 7/12

Programmation Java

  • exceptions
  • écrire et relire dans les fichiers
  • sérialisation
  • XML

Séance 8/12

Algorithmique

  • structures de données : liste, pile, file, avec ou sans doublon
  • opérations sur ces structures : insérer, accéder, effacer, tester existence, trier
  • implémentations possibles : tableau, liste chaînée, arbre, table de hachage

Programmation Java

  • classes génériques
  • les collections : Set et List
  • les map
  • interfaces Comparable et Comparator
  • méthode hashCode

Séance 9/12

Travaux pratiques

On manipule les structures fournies par Java :

  • les set : HashSet et TreeSet
  • les list : ArrayList et LinkedList
  • les map : HashMap et TreeMap

et on utilise les interfaces Comparable, Comparator, Iterator et Iterable

Séance 10/12

Algorithmique

  • liste chaînée
  • arbre binaire de recherche

Travaux pratiques

  • implémentation de ces structures avec des classes génériques
  • définir des itérateurs sur la classe ListeChainee

Séance 11/12

Programmation Java

Organisation et distribution du code

  • séparation des sources et des classes compilées
  • packages, hiérachie et import
  • fichiers .jar

Travaux pratiques

  • constitution de .jar exécutables pour le Dilemme

Séance 12/12

Algorithmique

Design Patterns :

  • modèle de création : Singleton
  • modèle structurel : Décorateur
  • modèles comportementaux : Obervateur, Itérateur

Travaux pratiques

  • classe ServeurImpression pour illustrer Singleton
  • cafés et suppléments pour illustrer Décorateur
  • station météo pour illustrer Observateur