Cours après cours

Attention, un changement de professeur vient avec des changements d'habitudes... Voici quelques changements qui vous attendent:

  1. Nous ne regarderons pas ensemble de "powerpoint", mais utiliserons la craie (ainsi qu'un interpréteur javascript de temps en temps). Les codes que nous verrons ensemble sont disponibles sur cette page (inutile donc de prendre en note ces codes pendant le cours). Prenez note que ces codes peuvent évoluer dans le temps. Vous avez accès aux slides rédigés par les autres professeurs du cours, mais je ne les suivrai pas à la lettre et je les distribue seulement à titre de support supplémentaire (par exemple pour celles et ceux qui ne viendraient pas au cours).
  2. Je vais également utiliser un interpréteur en ligne de commande plutôt que codeboot. Vous pouvez continuer à utiliser ce dernier si vous le souhaitez ou faire comme moi et utiliser un éditeur pour saisir (et sauver) vos programmes sur votre ordinateur (ou ceux du DIRO), puis utiliser un interpréteur ligne de commande pour les exécuter. Si vous continuer à utiliser codeboot, vous devez le mettre en mode standard (menu affiché en rouge) pour exécuter certains codes que nous verrons ensemble.

D'avance bonne continuation dans cette session, et bon courage pour la transition de professeur !

semaine du 1 Déc. au 5 Déc. 2014

semaine du 24 Nov. au 28 Nov. 2014

note: certains changements ont été apportés dans [tools.js] et [algo-tab.js]. Il serait petinent de mettre à jour vos copies locales (dans codeboot et/ou dans votre répertoire de code)

semaine du 17 Nov. au 21 Nov. 2014
[10_tableau_associatif_objets (pdf)]

  • [piece.js]: une version décente d'une pièce que l'on peut tirer à pile ou face:
    • constructeur (convention et dangers)
    • tostring, flip, etc.
    • variables partagées par plusieurs objets
  • une version de pièce sans objet: [piece_sans_objet.js]
  • [rational.js]: les objets rationnels
    • réflexion sur l'état d'un nombre rationnel, choix
    • réflexion sur le constructeur et méthodes de service
    • égalité de deux objets rationnels
    • opérations arithmétiques

semaine du 10 Nov. au 13 Nov. 2014
[11_recursivite (pdf)]

semaine du 3 Nov. au 7 Nov. 2014
[algo_sur_tableaux (pdf)] [11_recursivite (pdf)]

  • Algorithmes (peu efficaces) de tri: [sort.js] (suite et fin)
    • tri par sélection (wiki)
    • tri à bulle (wiki)
    • tri par insertion (wiki)
  • Recherche d'un élément dans un tableau trié (en ordre croissant): [binary-search.js]
    • recherche linéaire (version naïve et améliorée)
    • recherche dichotomique (et quelques uns de ses pièges) (wiki)
  • Récursivité [recursion.js]
    • factoriel (fact)
    • boucle en utilisant la pile de récursivité (affiche1 à affiche6)
    • suite de fibonacci (wiki)
      • version récursive naive
      • version avec mémorisation

semaine du 27 Oct. au 31 Oct. 2014
[08_structures_tableaux (pdf)] [algo_sur_tableaux (pdf)]

  • Utilisation d'un interpréteur en ligne de commande
    • Si vous êtes connecté sur une machine Linux de la salle 1340, alors vous avez accès à un interpréteur javascript en tapant (dans un terminal ou une console) la commande js24.
    • Si vous êtes en possession d'un mac récent, un interpréteur en ligne de commande est disponible de manière native ici: /System/Library/Frameworks/JavaScriptCore.framework/Resources/jsc
    • Sinon, vous avez plusieurs options, dont installer un interpréteur ligne de commande comme spidermonkey. C'est la solution que je recommande.
    • N'oubliez pas que vos démonstrateurs peuvent aussi vous aider, et qu'au pire, vous avez toujours codeboot qui est très bien fait...
  • Structure des codes distribués:
  • Algorithmique de base sur les tableaux: [algo-tab.js]
    • argmin et min d'un tableau
    • shuffler un tableau
    • algorithmes (peu efficaces) de tri: [sort.js]
      • tri par sélection (wiki)
      • tri à bulle (wiki)
      • tri par insertion (wiki)