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




