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 icon PDF.
  • Big Java, chapitre 7 (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é
  • Hiérarchie de sous-classes
  • Classes abstraites
  • 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 01 sur les packages: >PDF icon PDF.
  • Notes de cours 02 sur l'héritage: >PDF icon PDF.
  • Notes de Horstmann sur les packages: >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. Polymorphisme et interfaces
Sujets
  • 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 03 sur les interfaces: >PDF icon PDF.
  • Notes de cours 04 sur les classes imbriquées: >PDF icon PDF.
  • Notes de cours 05 sur les événements Swing: >PDF icon PDF.
  • Notes de Horstmann sur l'héritage: >HTML.
  • 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 et exceptions
Sujets
  • Erreurs et exceptions
  • Déclaration et génération d'exceptions
  • Traitement d'exceptions
  • Abstraction pour E/S en Java: flux de caractères, flux d'octets
  • Classes principales pour E/S: java.io
  • Interface Swing: javax.swing.JFileChooser
Références
  • Big Java, chapitre 11.
  • Notes de cours 06 sur l'entrée/sortie: >PDF icon PDF.
  • Notes de cours 07 sur les exceptions: >PDF icon PDF.
  • Tutoriel de Sun sur E/S: >HTML.
Révision pour l'intra
  • Notes de cours 08 sur les sujets à l'intra: PDF icon PDF.
5. 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)
  • Notes de cours 09 sur la conception de logiciel : >PDF icon PDF.
  • Documentation de Sun sur javadoc (Solaris): >HTML.
6. Interface graphique
Sujets
  • Conception d'interface graphique
  • Composants SWING
Références
  • Big Java, chapitre 18 (graphique en Java).
  • Notes de cours 10 sur les composantes graphiques Swing: >PDF icon PDF.
  • Notes de cours 11 sur les composantes texte: >PDF icon PDF.
  • Tutoriel de Sun sur les composants Swing: >HTML.
7. 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 12 sur les threads: >PDF icon PDF.
  • Tutoriel de Sun sur concurrence en Java: >HTML.
8. Structures de données
Sujets
  • Type abstrait et structure de données
  • Liste chaînée
  • Classes génériques, collections en Java
  • Structures de données élémentaires: pile, file d'attente
  • Dictionnaire (interface), tableau de hachage (structure)
  • Recherche binaire, arbre binaire de recherche (recherche, insertion et parcours)
Références
  • Big Java sections 14.7-14.8 (recherche binaire), chapitre 15 (liste, pile, file d'attente), sections 16.1-16.4 (hachage), sections 16.5-16.6 (arbres binaires), sections 17.1-17.2 (classes génériques)
  • Notes de cours 13 sur les listes, hachage et les classes génériques de Java: >PDF icon PDF.
  • Notes de cours 14 sur les arbres binaires de recherche et les files généralisées: >PDF icon 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 15 sur la programmation internet: >PDF icon PDF.
  • Tutoriel de Sun sur les réseaux : >HTML.
  • Tutoriel de Sun sur les applets : >HTML.
Révision pour le final
  • Notes de cours 16 sur les sujets à l'examen final: PDF icon PDF.

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, quatrième édition, publié chez Wiley.

Devoirs

Devoir 1 [Jeu de la Vie] à remettre le 4 juin.
Énoncé >PDF icon PDF.
Fichiers: GUI.java Grille.java blinker.grille lwss.grille gun.grille etapes.grille.
Devoir 2 [Élastiques et boules] à remettre le 28 juin.
Énoncé >PDF icon PDF.
Fichiers: Mecanique.jar
Devoir 3 [Séismes] à remettre le 13 juillet.
Énoncé >PDF icon PDF.
Fichier de données : seismes.csv
Devoir 4 [Accès multiple] à remettre le 27 juillet.
Énoncé >PDF icon PDF.