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
  • Document sur les exigences en IFT1015 avec exercices de programmation: >PDF.
  • Big Java, chapitre 8 (tableaux, java.util.ArrayList). Notes de l'auteur: >HTML
  • Documentation API pour ArrayList: >HTML.
  • Chapitre sur les tableaux dans la spécification du langage: >HTML.
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 et Graphics
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
  • Big Java, chapitre 9 (interfaces).
  • Notes de cours sur les classes imbriquées: >PDF.
  • Tutoriel de Sun sur les classes imbriquées: >HTML.
  • Notes de Horstmann sur les interfaces et polymorphisme: >HTML.
  • Introduction aux event listeners: >HTML.
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
  • Big Java, sections 11.1-11.2.
  • Notes de cours sur I/O: >PDF.
  • Tutoriel de Sun sur I/O: >HTML.
5. Exceptions
Sujets
  • Erreurs et exceptions
  • Déclaration et génération d'exceptions
  • Traitement d'exceptions
Références
  • Big Java, sections 11.3-11.7.
  • Notes de cours sur exceptions: >PDF.
  • Tutoriel de Sun sur les exceptions: >HTML.
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
  • Big Java, sections 8.1-8.2 (cohésion et couplage), chapitre 12 (conception OO)
  • Acétates: >PDF.
  • Notes de cours: >PDF.
  • Documentation de Sun sur javadoc (Solaris): >HTML.
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
  • Big Java, chapitre 20 (multithreading).
  • Notes de cours: >PDF.
  • Tutoriel de Sun sur concurrence en Java: >HTML.
9. Interface graphique
Sujets
  • Conception d'interface graphique
  • Composants SWING
Références
  • Big Java, chapitre 18 (graphique en Java), sections 10.10G, 10.11G (composants texte).
  • Notes de cours sur les composants graphiques Swing: >PDF.
  • Notes de cours sur les composants texte: >PDF.
  • Tutoriel de Sun sur les composants Swing: >HTML.
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
  • Big Java, chapitre 21, section 2.12 (applets)
  • Notes de cours sur programmation internet: >PDF.
  • Tutoriel de Sun sur les réseaux : >HTML.
  • Tutoriel de Sun sur les applets : >HTML.

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.

Nous utiliserons le livre Big Java de Cay S. Horstmann, troisième édition, publié chez Wiley.

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.