Aux nouvelles
Notes du final
Vos notes à ce cours sont disponibles sous forme brute sur la page Studium. Comme je n'arrive pas à y importer vos notes lettrées, je vous ai envoyé à 22h30 un code secret qui vous permet d'identifier toutes vos notes (normalisées tel qu'indiqué dans le plan de cours: 15 points pour les exercices notés, 15 points pour chaque devoir, 25 points pour l'intra et 30 points pour le final) dans la page suivante. Prenez note qu'une permanence vous est donnée vendredi 9 janvier de 13h30 à 15h00 afin que vous puissiez passer voir votre examen final. Manifestez tout problème rencontré dans vos notes rapidement (tout ce qui concerne les exercices notés et les devoirs doit être envoyé aux démonstrateurs). À celles et ceux que je ne reverrai pas, bonne continuation et à tous, une bonne année 2015.
Devoir 2
Vous êtes plusieurs à me demander une extension pour le devoir 2, aussi la date limite à été reportée au 18 décembre (après, il sera difficile de corriger dans les temps). Bon temps des fêtes.
À propos du final
Rappel: examen final jeudi 11 décembre de 15h30 à 18h29. Vous avez été informé par courriel: l'examen se déroulera dans deux salles: G-715 (section A) et G-615 (section B) du pav. Roger Gaudry.
Vous avez le droit à 2 feuilles (US letter) de notes (recto-verso). Tout autre document est interdit. L'usage de votre ordinateur (ou téléphone intelligent) ne sera pas permi, pas plus que l'usage d'internet. La matière à l'examen porte sur tout ce que vous avez vu en cours à l'exclusion de l'introduction à la programmation fonctionnelle.
Examens passés
Les sujets des examens finaux des sessions automne 2012 et 2103 sont disponibles (voir le cours de la semaine du 1 au 5 décembre). Des exercices de ces examens seront traités en démonstration.
Exercice noté 7
Le sujet est disponible (suivre le lien travaux) et est à remettre via studium d'ici dimanche 30.
Devoir 2
Le sujet du devoir 2 est disponible (suivre le lien travaux) et est à remettre via studium le 15 décembre 2014. Le sujet sera présenté lors de la prochaine démonstration.
Exercice noté 6
Le sujet est disponible (suivre le lien travaux) et est à remettre via studium d'ici dimanche 23.
Exercice noté 5
Le sujet est disponible (suivre le lien travaux) et est à remettre via studium d'ici vendredi 14.
Interpréteur ligne de commande
L'interpréteur ligne de commande js
de SpiderMonkey a été
installé par l'équipe de support sur les machines d'enseignement. Il
vous est possible de l'invoquer en tapant js24
(ex: js24 algo-tab.js
si vous vous trouvez dans le
répertoire où se trouve algo-tab.js
). Notez que
l'interpréteur js
continue à exister, mais que les codes
que nou voyons en cours ne sont pas compatibles avec cet interpréteur.
Exercice noté 4
Le sujet est disponible sur Studium, la remise est prévue pour vendredi 7 novembre.
Changement de prof
Je donne le cours à partir de la semaine du 27 octobre 2014.
Attention: un changement de prof vient avec
des changements d'habitudes. Mes informations sont dans le lien
contacts
. N'hésitez pas à passer me voir ou à me
contacter
par email.
Cours après cours
Attention, un changement de professeur vient avec des changements d'habitudes... Voici quelques changements qui vous attendent:
- 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).
- 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
- Arbres (suite et fin)
- Exemple d'utilisation: [expressions.js]
- introduction à la programmation fonctionnelle: [fonctional.js]. Ceci n'est pas au programme (et ne sera pas testé en examen).
- examen final: Automne 2012
- examen final: Automne 2013
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)
- Listes chainées
- Arbres
- Noeud d'un arbre: [node.js]
- Arbre binaire de recherche: [arbre.js]
- Exemple d'utilisation: [expressions.js]
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)]
- suite de fibonacci (wiki)
- notion de récursion terminale (wiki)
- version récursive efficace en mémoire et en temps
- reconnaître les chaînes palindromes (wiki)
- [quicksort.js]: tri rapide: (wiki)
- [fusionsort.js]: tri par fusion: (wiki)
- [fusion_versus_quicksort.js]: comparaison des deux tris précédents
- [euler.js]: le problème du cavalier d'euler: (wiki)
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)
- 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
- factoriel (
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...
- 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
- Structure des codes distribués:
- [tools.js] (ce fichier va ou devrait évoluer)
- [assert.js] (inutile sous codeplay)
- Algorithmique de base sur les tableaux: [algo-tab.js]