HEB-ESI / DEV1-ALG-Syllabus-Algo

Syllabus pour l'activité d'apprentissage d'Algorithmique (DEV1)
4 stars 4 forks source link

Chap 11: temps imparti, et réflexions sur le futur du cours #135

Open eythanlevy opened 7 years ago

eythanlevy commented 7 years ago

Pour le chap 11 (exercices sur les tableaux), il faudrait plus de 3h. C'est vraiment trop juste pour les 12 exercices, dont certains sont compliqués, et dont 9 portent le logo java. Cela fait 20 minutes par exercice, explications comprises (si on fait que le 9 avec java). Beaucoup trop court pour des exos complexes comme le 8, 10, 12. Ces exos (ainsi que le 3,4,6) exigent de vraies explications théoriques, qui prennent du temps. A mon avis, même 6h c'est encore juste, si on veut tout bien expliquer. Je crois que les exos 3, 4, 6, 9 et 10 doivent faire l'objet d'un "cours" théorique, d'une "thématisation" car ce ne sont pas de simples "exercices", ils sont porteurs de matière, et il faut bien expliquer aux étudiants les différentes manières de les résoudre, avec leurs plus et leurs moins (pour les doublons, p.ex. au moins 3 versions: celle avec 2 pours "complets" et test i!=j, celle avec deux pours et j=i+1, et celle avec 2 tant que et sortie anticipée. Tout cela prend bcp de temps à expliquer, et, à mon sens, il faut l'expliquer même aux étudiants qui ont réussi à faire l'exercice, car ils n'ont pas forcément perçu ces difficultés (même certainement pas). Idem pour les différentes manières d'initialiser le min et le max (0, INTMIN, INTMAX, tab[0]), ces différentes solutions, avec leurs forces et faiblesses doivent être discutées dans la aprtie "ex-cathedra" du cours, il ne suffit pas qu'un étudiant fasse bien l'exo, il faut qu'il soit conscient de ces variantes. D'ailleurs à l'unif, cet algo de max/min était expliqué en long et en large au cours théorique.

Pour une future révision du cours, je vois bien un cours organisé en "leçons". Ainsi, après une partie initiale consacrée au "control flow",où ils apprennent les if, if-else, switch, for, while et do-while (mais sans vraie "algorithmique, simplement avec exos genre : afficher les nombres de 1 à n, en croissant et décroissant, afficher les nombres impairs, etc...), la seconde partie du cours serait consacrée à des "leçons" de véritable "algorithmique" (quoique très basique encore au 1er quadri). P.ex. une leçon sur les aglos de max/min: on leur montrerait les 3 façons d'initialiser le premier élément notamment, avec les pour/contre et en expliquant bien l'algo avec des exemples, etc... Puis suivraient lex exercices, où ils devraient coder des variantes, comme nos actuels exos 5 et 8. Le cours (leçon) complet sur min/max (qui deviendrait un vrai cours d' "algo") durerait 2 heures: une pour la théorie, et une pour les exos (ou 45' de théorie et 1h15 d'exos) et aurait donc un sujet précis comme thème. Cette thématisation aiderait les étudiants à mémoriser les grands thèmes et algos-types, et le cours serait vraiment orienté "algos" et pas "structures de contrôle" comme acuellement. Je vois donc un cours en 3 parties: 1) control flow/structures de contrôle: variables, if-esle, switch, while, for, do-while, tableaux, fonctions et paramètres, le tout avec exos très simples, pas vraiment "algorithmiques". 2) la partie "algos", constituée de "leçons" prenant un nombre entier de cours de 2h. Exemples de leçons: "l'accumulateur" (l'algo de somme donné en théorie, et le produit en exercice, p.ex.), "la valeur sentinelle", "le min/max", "la recherche linéaire", "le comptage par tableau", "la recherche de doublons", "la recherche dichotomique" 3) une éventuelle troisième partie avec des énoncés combinant les problèmes vus précédemment, et où ils doivent vraiment trouver par eux-mêmes les bons algos. Le tout à combiner avec la partie java de DEV1, bien entendu. Ma préférence irait à ce que la partie algo soit aussi faite en java, afind e faciliter le testing des algos, seul moyen de craiment comprendre et de vraiment se convaincre que "ça marche". Qu'en pense l'équipe?

cuv commented 7 years ago

oui, c'est une bonne idée. Il faudrait travailler à une proposition structurée de révision de DEV1. Comment travailler efficacement à cela? Une réunion en groupe restreint pour établir une méthode de travail?

Le 5 décembre 2016 à 11:19, eythanlevy notifications@github.com a écrit :

Pour le chap 11 (exercices sur les tableaux), il faudrait plus de 3h. C'est vraiment trop juste pour les 12 exercices, dont certains sont compliqués, et dont 9 portent le logo java. Cela fait 20 minutes par exercice, explications comprises (si on fait que le 9 avec java). Beaucoup trop court pour des exos complexes comme le 8, 10, 12. Ces exos (ainsi que le 3,4,6) exigent de vraies explications théoriques, qui prennent du temps. A mon avis, même 6h c'est encore juste, si on veut tout bien expliquer. Je crois que les exos 3, 4, 6, 9 et 10 doivent faire l'objet d'un "cours" théorique, d'une "thématisation" car ce ne sont pas de simples "exercices", ils sont porteurs de matière, et il faut bien expliquer aux étudiants les différentes manières de les résoudre, avec leurs plus et leurs moins (pour les doublons, p.ex. au moins 3 versions: celle avec 2 pours "complets" et test i!=j, celle avec deux pours et j=i+1, et celle avec 2 tant que et sortie anticipée. Tout cela prend bcp de temps à expliquer, et, à mon sens, il faut l'expliquer même aux étudiants qui ont réussi à faire l'exercice, car ils n'ont pas forcément perçu ces difficultés (même certainement pas). Idem pour les différentes manières d'initialiser le min et le max (0, INTMIN, INTMAX, tab[0]), ces différentes solutions, avec leurs forces et faiblesses doivent être discutées dans la aprtie "ex-cathedra" du cours, il ne suffit pas qu'un étudiant fasse bien l'exo, il faut qu'il soit conscient de ces variantes. D'ailleurs à l'unif, cet algo de max/min était expliqué en long et en large au cours théorique.

Pour une future révision du cours, je vois bien un cours organisé en "leçons". Ainsi, après une partie initiale consacrée au "control flow",où ils apprennent les if, if-else, switch, for, while et do-while (mais sans vraie "algorithmique, simplement avec exos genre : afficher les nombres de 1 à n, en croissant et décroissant, afficher les nombres impairs, etc...), la seconde partie du cours serait consacrée à des "leçons" de véritable "algorithmique" (quoique très basique encore au 1er quadri). P.ex. une leçon sur les aglos de max/min: on leur montrerait les 3 façons d'initialiser le premier élément notamment, avec les pour/contre et en expliquant bien l'algo avec des exemples, etc... Puis suivraient lex exercices, où ils devraient coder des variantes, comme nos actuels exos 5 et 8. Le cours (leçon) complet sur min/max (qui deviendrait un vrai cours d' "algo") durerait 2 heures: une pour la théorie, et une pour les exos (ou 45' de théorie et 1h15 d'exos) et aurait donc un sujet précis comme thème. Cette thématisation aiderait les étudiants à mémoriser les grands thèmes et algos-types, et le cours serait vraiment orienté "algos" et pas "structures de contrôle" comme acuellement. Je vois donc un cours en 3 parties:

  1. control flow/structures de contrôle: variables, if-esle, switch, while, for, do-while, tableaux, fonctions et paramètres, le tout avec exos très simples, pas vraiment "algorithmiques".
  2. la partie "algos", constituée de "leçons" prenant un nombre entier de cours de 2h. Exemples de leçons: "l'accumulateur" (l'algo de somme donné en théorie, et le produit en exercice, p.ex.), "la valeur sentinelle", "le min/max", "la recherche linéaire", "le comptage par tableau", "la recherche de doublons", "la recherche dichotomique"
  3. une éventuelle troisième partie avec des énoncés combinant les problèmes vus précédemment, et où ils doivent vraiment trouver par eux-mêmes les bons algos. Le tout à combiner avec la partie java de DEV1, bien entendu. Ma préférence irait à ce que la partie algo soit aussi faite en java, afind e faciliter le testing des algos, seul moyen de craiment comprendre et de vraiment se convaincre que "ça marche". Qu'en pense l'équipe?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/HEB-ESI/DEV1-ALG-Syllabus-Algo/issues/135, or mute the thread https://github.com/notifications/unsubscribe-auth/AE8VtgCLdZwssN6DqZUnzZoJ7lozG4kJks5rE-UygaJpZM4LEDtf .

npettiaux commented 7 years ago

Oui, je pense aussi que plusieurs exercices notamment 3 ou 4, 6, 9 et 10 (et peut-être d'autres) devraient faire l'objet de thématisation avec la présentation et la discussion de PLUSIEURS solutions qui sont discutées et comparées.