Notes de cours
Vous trouvez ci-dessous le contenu détaillé du cours.
Notes de cours
- 1. Introduction
- Sujets
- Révision de Java (IFT1015): types et variables
- Tableaux: parcours et manipulation, extension dynamique
- Références
- 2. Héritage, éléments graphiques
- Sujets
- Packages, archive jar
- Héritage, superclasses, règles de visibilité
- Notions de base de graphisme en Java:
JFrame
etGraphics
- Références
- Big Java, chapitre 10 (héritage), sections 2.11-2.13 (graphisme), section 8.9 (packages).
- Notes de cours de la classe: >PDF.
- Notes de Horstmann sur les packages: >HTML.
- Notes de Horstmann sur l'héritage: >HTML.
- Tutoriel de Sun sur la programmation orienté objet: >HTML.
- Tutoriel de Sun sur l'héritage: >HTML.
- Documentation sur JFrame: >API (HTML) et >tutoriel (HTML).
- 3. Classes abstraites, polymorphisme, interfaces
- Sujets
- Hiérarchie de sous-classes
- Classes abstraites
- Interfaces: hiérarchies, implémentations
- Classes imbriquéees (nested classes)
- Événements en Java Swing
- Références
- 4. Entrée/sortie
- Sujets
- Abstraction pour E/S en Java: flux de caractès, flux d'octets
- Classes principales
- Interface Swing:
javax.swing.JFileChooser
- Références
- 5. Exceptions
- Sujets
- Erreurs et exceptions
- Déclaration et génération d'exceptions
- Traitement d'exceptions
- Références
- 6. Récursivité
- Référence
- Big Java, chapitre 13.
- 7. Conception de classes
- Sujets
- Cycle de vie du logiciel
- Conception: découverte de classes
- Relations entre classes: diagramme UML
- Cohésion et couplage
- javadoc
- Références
- Révision : Liste de sujets àl'intra.
- 8. Procéssus légers en Java
- Sujets
- Notion d'un procéssus léger (thread); création et exécution
- Interruption, sommeil et attente
- Mécanismes de synchronisation: exclusion mutuelle, rendez-vous, cooopération. Verrous et moniteurs.
- Threads en Swing,
SwingWorker
- Références
- 9. Interface graphique
- Sujets
- Conception d'interface graphique
- Composants SWING
- Références
- 10. Structures de données
- Sujets
- Type abstrait et structure de données
- Liste chaînée
- Classes génériques, collections en Java
- Dictionnaire (interface), tableau de hachage (structure)
- Recherche binaire, arbre binaire de recherche (recherche, insertion et parcours)
- Structures de données élémentaires: pile, file d'attente
- Références
- Big Java, section 14.7 (recherche binaire), chapitre 15 (liste, pile, file d'attente), sections 16.1-16.6 (tableaux de hachage et arbres), sections 17.1-17.2 (classes génériques)
- Notes de cours sur les listes, hachage et les classes génériques de Java: >PDF.
- Notes de cours sur les arbres binaires de recherche et les files généralisées: >PDF.
- Tutoriel de Sun sur les collections : >HTML.
- Tutoriel de Sun sur les classes génériques : >HTML.
- 11. Programmation internet
- Sujets
- La suite de protocoles Internet: TCP/IP
- Communication client-serveur par sockets
- Connexion URL
- Applets
- Références
Livres et ressources
Votre première ressource en programmation Java est le site web Java de Sun à java.sun.com. Ce site contient la référence complète du langage. Vous y trouverez en particulier les documents suivants.
- Spécification du langage Java par James Gosling: >WWW (disponible en HTML et PDF)
- Spécification de l'API (Java 6): >HTML
- Tutoriels de Java: >HTML
Nous utiliserons le livre Big Java de Cay S. Horstmann, troisième édition, publié chez Wiley.
- Notes de l'auteur sur Big Java, 2eme édition: >HTML (copie locale, applique pour la deuxième édition)
- Code source des exemples dans Big Java, 2eme édition: >HTML (copie locale du répertoire)
Devoirs
- Devoir 1 [Jeu de la Vie] à remettre le 17 septembre.
- Énoncé >PDF.
- Fichiers: Lancer.java Grille.java blinker.grille lwss.grille gun.grille etapes.grille.
- Devoir 2 [Élastiques et boules] à remettre le 6 octobre.
- Énoncé >PDF.
- Fichiers: Ball.java Board.java BoardPanel.java Drawable.java Lancer.java MovingObject.java RubberBand.java.
- Devoir 3 [Clavardage] à remettre le 18 novembre.
- Énoncé >PDF.
- Fichiers: Chat.jar.
- Devoir 4 [Clavardage TCP/IP] à remettre le 7 décembre.
- Énoncé >PDF.
- Ma solution au TP3: Chat.jar.