Logo ÉTS
Session
Cours
Responsable(s) Abdelmoumène Toudeft

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement





Cours

  • La première période de trois heures sert aussi à présenter le plan de cours, l’approche pédagogique utilisée et les différents modèles d’évaluation. 
  • Notez que l'ordre de présentation peux varier selon l'enseignante ou l'enseignant.

 

Semaine

MATIÈRE

      1

  • Présentation du cours : plan de cours, stratégies pédagogiques, évaluations, ...
  • Environnement de programmation.
  • Éléments de base de la programmation et syntaxe Java :
    • Types primitifs (variables et littéraux);
    • Opérateurs et expressions;
    • Entrées/sorties (Scanner, System.out);
    • Structure d'un programme (main());
    • Structures de contrôle (conditionnelles et répétitives);
    • Tableaux 1D et 2D;
    • Méthodes, transmission de paramètres et retour de résultat (return);
    • Ruptures de séquence (break et continue) : fonctionnement, risques et règles d'utilisation.
  • Normes de programmation
  • Philosophie du programmeur : Le moins couteux en temps machine, en espace mémoire et en répétition de code sans nuire à sa clarté. 

      2 - 4

  • Introduction aux classes (attributs à accès privé) et aux objets;
  • Valeurs vs références;
  • Les paquetages (package et import);
  • Survol des packages java.lang et java.util de Java;
  • Classes de Java : String, Arrays et Math;
  • Les chaînes de caractères;
  • Les API de Java et utilisation de classes existantes;
  • Tris (à bulles, par sélection, par insertion);
  • Recherches/fouilles (séquentielle, binaire et séquentielle indexée);
  • Encapsulation;
  • Méthodes d'accès (accesseurs et mutateurs) et d'instances;
  • Tableaux d'objets;
  • Constructeurs;
  • Surcharge;
  • Conversion d'objets en chaînes de caractères;
  • Comparaison d'objets (test d'égalité - equals())
  • Référence this;
  • Attributs et méthodes de classes (static);
  • Agrégation/composition;
  • Documentation du code et commentaires Javadoc.
Examen Intra 1  Contenu des semaines 1 à 4   

   6 - 8

  • Vecteurs (ArrayList et Vector);
  • Notion de classe générique;
  • Classes enveloppes (wrappers) et conversion automatique (autoboxing et unboxing);
  • Itérateurs de listes (ListIterator);
  • Types de données abstraits (piles, files, listes), implémentation statique. Stragégies de gestion (LIFO et FIFO);
  • Classes internes (inner class);
  • Cadre de collection (LinkedList, Stack, Queue,...);
  • Chainage;
  • Types de données abstraits (piles, files, listes), implémentation dynamique avec chainages simple et double;
  • Implémentation d'un itérateur (exemple).
  • Héritage par extension :
    • Définition et utilité;
    • Syntaxe (extends);
    • Accès protégé (protected);
    • Appel aux constructeurs et aux méthodes de la classe mère (super);
    • Hiérarchies d'héritage;
    • Généralisation et spécialisation;
    • Héritage vs agrégation/composition (isA vs hasA);
    • Héritage simple vs héritage multiple;
  • Polymorphisme :
    • Définition;
    • Surcharge (overload);
    • Redéfinition (override);
    • Méthodes virtuelles et liaison dynamique (late binding);
    • Méthodes non polymorphiques;
    • Méthodes et classes abstraites (abstract);
    • Méthodes et classes finales (final);
  • Exemple d'application de l'héritage et du polymorphisme : les graphismes (classe Graphics);
  • Introduction aux enregistrements (attributs à accès public).

Examen Intra 2

 Contenu des semaines 1 à 8   

10-13

  • Gestion des erreurs et des exceptions;
  • Clonage et constructeurs de copies;
  • Interfaces (interface) :
    • Définition et utilité;
    • Implémentation;
    • Propriétés.
  • Notion d'interface générique;
  • Application des interfaces aux tris et aux recherches :
    • Test d'inégalité, ordre naturel et comparaison d'objets (interface Comparable);
    • Comparateurs (interface Comparator);
    • Méthodes de tri et de recherche binaire (méthodes des classes Arrays et Collections);
    • Notion de programmation par contrats.
  • Appels entre constructeurs d'une même classe (this());
  • Finalisation de la destruction d'objets (finalize());
  • Ramasse-miettes;
  • Types énumérés (enum);
  • Blocs d'initialisation statique;
  • Exemple de définition de classes et d'interfaces génériques : implémentation d'un itérateur;
  • Exemple de mise en oeuvre : la programmation graphique avec Swing
    • Composants Swing : JFrame, JPanel, JButton JTextField, JMenu, JList,  ...;
    • Boites de dialogue (JOptionPane);
    • Gestion de disposition (Layout Manager) : BorderLayout, FlowLayout, GridLayout;
    • Gestion d’évènements : modèle de délégation, interfaces écouteurs (listeners);
    • Précautions (threads et Swing, SwingUtilities.invokeLater())
    • Complément (non évalué) :
      • Architecture MVC (introduction);
      • Patron observer (exemple);

 Examen final

 Contenu de toute la session.

 

Laboratoires et travaux pratiques

Laboratoires :

  • Chaque semaine des exercices sont proposés pour comprendre la théorie de la semaine en vue de la réalisation des travaux pratiques. Les laboratoires ne sont pas à remettre mais nous supposons que l'étudiante ou l'étudiant les réalise. Nous pouvons les utiliser en référence dans les cours, les examens et les travaux pratiques.