Cours après cours

Cette page vous indique ce que je prévois de faire pour chaque cours et vous donne accès aux ressources utilisées en cours (programmes, acétates, etc.). À la fin de chaque cours, cette page sera modifiée de manière à refléter ce que nous avons réellement vu ensemble.

jeudi 01/12/2011 [algo2] (3 heures)

Un cours de 2h sera donné le matin (salle de démo), puis répété l'après-midi (salle de démo). Le cours habituel d'une heure à 15h30 est maintenu.
  • Récursivité (suite et fin)

mardi 29/11/2011 [algo2] (2 heures)

  • Récursivité
    • Le cas de factoriel: [CompareFact.java]
    • La récursivité par l'exemple [Recurse.java]
      • Affichage d'une chaîne sans boucle
      • Nombres de Fibonnaci récursif ou itératif (discussion)

jeudi 24/11/2011 [algo1] (3 heures)
Un cours de 2h sera donné le matin (salle de démo), puis répété l'après-midi (salle de démo). Le cours habituel d'une heure à 15h30 est maintenu.

  • Algorithmique (suite):
    • Rechercher un élément dans un tableau trié (une bonne partie du TP2): [BinarySearch.java]
    • Tri d'un tableau (tri à bulle, tri par insertion, tri par sélection): [TestSort.java]
    • Merge de deux tableaux triés en un seul: [Merge.java]

mardi 22/11/2011 [algo1] (2 heures)

  • Tableaux à plusieurs dimensions (suite et fin): [FinalH2000.java]
  • Algorithmique (enfin !):
    • Rechercher un élément dans un tableau trié (une bonne partie du TP2): [BinarySearch.java]
    • Ajouter un élément dans un tableau trié
    • Vérifier qu'un tableau est trié
    • Tri d'un tableau (tri à bulle, tri par insertion, tri par sélection): [TestSort.java]
    • Merge de deux tableaux triés en un seul: [Merge.java]

jeudi 17/11/2011 [oop2] (1 heure)

  • Questions ouvertes sur les objets
  • Tableaux à plusieurs dimensions: [FinalH2000.java]

mardi 15/11/2011 [oop2] (2 heures)

mardi 08/11/2011 [oop1] [oop2] (2 heures)

jeudi 03/11/2011 [oop1] [oop2] (1 heure)

mardi 01/11/2011 [oop1] [oop2] (2 heures)

  • Fonction retournant un objet
  • Les objets
    • notion d'état et de comportement, dissection d'une classe: variables d'instances, constructeur(s), assesseurs, mutateurs, toString: [Piece.java] [TestPiece.java]
    • les variables d'instance sont initialisées (pas les variables locales)
    • variables d'instance versus variables de classe: [Piece2.java] [TestPiece2.java]

jeudi 20/10/2011 [fonctions1] [fonctions2] (1 heure)

  • Les méthodes (suite)
    • Notion d'environnement, modèle de mémoire plus précis (pile et tas)
    • En Java, le passage de paramètre se fait par valeur
      • passage de types primitifs
      • passage de types référence (objets)
    • Surcharge d'une méthode: [Surdefinition.java]

jeudi 13/10/2011 [fonctions1] [fonctions2] (1 heure)

mardi 11/10/2011 [fonctions1] [fonctions2] (2 heures)

  • Les méthodes
    • Définition d'une méthode, terminologie (entête, signature, corps, paramètres formels, procédure, fonction)
    • Études de cas:

jeudi 06/10/2011 [tableaux] (1 heure)

  • Initialisateurs de tableaux
  • Tester un générateur aléatoire: [TestAlea.java], [TestAlea2.java]
  • Algorithmes typiques sur les tableaux: max, argmax, mélange, décalage
  • Comment faire si je ne connais pas la taille d'un tableau au moment de la création ?

mardi 04/10/2011 [boucles] [boucles2] [tableaux] (2 heures)

jeudi 29/09/2011 [boucles] (1 heure)

mardi 27/09/2011 [conditions] [conditions2] [boucles] (2 heures)

jeudi 22/09/2011 [conditions] (1 heure)

mardi 20/09/2011 [conditions] (2 heures)

  • Règles de bonne écriture d'un programme
  • Instructions conditionnelles
    • Instructions if et if ... else
    • Le type primitif boolean: [AdditionQuiz.java]
    • Partout où une instruction est possible, un bloc d'instruction l'est aussi
    • Instructions conditionnelles imbriquées: [MaxOfTrois.java]
    • Règle d'indentation concernant les imbrications multiples [NoteToGrade.java]

jeudi 15/09/2011 [expressions] [conditions] (1 heure)

  • Les conversions / opérateurs raccourcis (suite et fin)
    • les opérateurs de pré- et post-incrément (++ et --)
    • un programme tordu: [Tordu1.java]
  • Le type primitif char
  • La table ASCII
  • Première rencontre avec le type (non primitf) String

mardi 13/09/2011 [expressions] (2 heures)

  • Les opérateurs arithmétiques
    • Le cas de la division
    • Le cas des opérateurs +
    • Opérateur modulo (%) [CalculTime.java]
    • Table de priorité
    • Associativité des opérateurs
  • Les conversions / opérateurs raccourcis
    • implicites et explicites
    • à propos des littéraux numériques (convention)
    • les opérateurs raccourcis (+=, *=, etc.)
    • les opérateurs de pré- et post-incrément (++ et --)

jeudi 08/09/2011 [expressions] (1 heure)

  • Éléments du programme [CalculAire.java]
  • Rencontre de l'API API Java
  • Variables, expressions et affectations
    • À propos des identificateurs (conventions de nommage, règles)
    • Déclaration versus initialisation d'une variable
    • Les types primitifs
      • Attention aux erreurs d'approximation avec les nombres flottants

mardi 06/09/2011 [intro] (2 heures)

  • Présentation de la page de cours (suite et fin):
    • matière abordée
    • à propos des notes de cours
  • Introduction:
    • Vue générale d'un ordinateur
    • Quelques mots sur le language Java
      • Quels autres languages ?
        • Une hiérarchie très incomplète (mais suffisante)
        • Les languages en demande: [art1] [2002]
        • Java versus Lisp
        • Notion de language de bas et de haut niveau:
          binaire    hex
          10001011   8B  \
          01000101   45   | lire 1er entier dans reg. AX
          00001010   0A  /
          00000011   03  \
          01000101   45   | lire 2em entier et ajouter a AX
          00010100   14  /
          
    • Quelques points sur l'histoire de Java
    • Compilation, Interprétation, le cas de Java
    • Notre premier programme Java: [Hello.java]
  • Variables et expressions
    • Notre premier algorithme: calcul de la circonférence d'un cercle.
      • Variable = emplacement mémoire qui (en Java) doit être déclaré
      • Entrée au clavier
      • Un programme possible: [CalculCirconference.java]

jeudi 01/09/2011 [intro] (1 heure)

  • Présentation de la page de cours:
    • Livres
    • Modalités de notation
    • Conseils d'usage