Accueil

Formation

Site fadagogo.com
Programmation
Automation
HTML
PHP

Sénégal
Asbl
Sur le chemin...
Ci-dessous
L'avis des utilisateurs
Ci-dessous
Exercices Pascal

Apprentissage des bases de la programmation

Description rapide du didacticiel

Apprendre à programmer est une activité difficile car elle demande de passer de l'univers humain à l'univers de la machine.

Nous sommes peu habitués à traiter de l'information qui n'a aucun sens pour nous. Or, programmer un ordinateur revient à lui faire traiter de l'information en se basant uniquement sur sa forme, en ne pouvant à aucun moment se rattacher à son sens. De plus la machine ne peut se contenter d'aucune imprécision, tous les détails du traitement devront être donnés précisément et anticipativement.

Cette différence est une falaise qu'il est difficile de gravir pour certains apprenants. En effet, l'expérience montre que, systématiquement, environ un tiers des élèves ont de réels problèmes dans l'acquisition de ce savoir-faire.

A notre connaissance, il n'existe aucun support informatique qui permette d'acquérir les bases de la programmation. La métaphore ci-dessous montre comment ce didacticiel, avec "son petit burin et son marteau" essaie de transformer la falaise en escalier dont toutes les marches seraient aisément franchissables.



Ce didacticiel se base sur l'ouvrage de Charles Duchâteau : Images pour programmer dans lequel Charles amène l'apprenant à maîtriser les bases de la programmation par étapes successives en créant des images mentales de la façon dont l'ordinateur peut fonctionner.

Le didacticiel profite de l'interactivité de l'outil informatique afin de prolonger cette méthode efficace et novatrice. Cette interactivité permet notamment de mettre en oeuvre des activités d'expérimentation lorsque l'apprenant doit programmer les tâches de petits automates dans un environnement de robotique virtuelle (chapitre 5) ou programmer le robot ordinateur qui "montrera" la manière dont il fonctionne (chapitre 8).

L'apprentissage de la programmation demande la maîtrise de plusieurs concepts qui s'articulent entre eux et qui ont avantage à être amenés progressivement. Ainsi, les différents chapitres vont suivre une stratégie permettant de mettre en place de façon structurée ces différents concepts.



La continuation de ce "découpage" donne lieu aux différents chapitres qui constituent le didacticiel lui-même, à savoir:

Chap. Thème Détail
0 Avertissement Ce chapitre représente en quelque sorte le contrat passé avec l'apprenant: "ce sera difficile, mais les résultats seront à la mesure des efforts consentis"
1 Introduction Expose dans quelle mesure la programmation (qui amène à un changement de raisonnement) peut avoir des répercussions dans de nombreux domaines, même dans la vie courante
2 Programmer : c'est quoi ? En quoi consiste la tâche "programmer". De quoi s'agit-il?
3 Programme = marche à suivre Programmer, c'est réaliser des marches à suivre pour que des "autres" effectuent des tâches à votre place.
4 Les structures de contrôle Les instructions d'actions élémentaires sont organisées grâce à certaines structures qui sont exposées et expliquées dans ce chapitre
5 Programmer des robots Les bases de la programmation étant mises en place, il s'agit de s'exercer en programmant des robots virtuels
6 Ordinateur = robot L'ordinateur est un robot. Sa particularité? Il manipule de l'information.
7 Programmer un ordinateur Quelques "tours de main" élémentaires permettant de se mettre le pied à l'étrier.
8 Programmer en pseudo-code Connaissant maintenant l'ordinateur et ses astuces de programmation, réalisons les premiers programmes en pseudo-code
9 La syntaxe Pascal Apprentissage des bases d'un langage de programmation structurée.
10 Programmer en Pascal On sait programmer un ordinateur en pseudo-code et on connaît un langage de programmation? Il est dès lors possible de programmer un ordinateur réel.
11 Les variables indicées Ces variables "tableaux" vont permettre de faciliter la tâche dans de nombreux cas.
12 Les fonctions Il est possible de réaliser des annexes aux programmes destinées à accomplir une tâche bien précise et de retourner une "valeur".
13 Les procédures paramétrées Quand les programmes deviennent trop complexes, on "sous-traite" la gestion de l'information à des procédures qui s'occupent de tâches bien déterminées. L'échange d'informations entre les différentes procédures est capital et doit être géré de manière rigoureuse.
14 Les pointeurs Ces variables "tableaux" à adresses relatives sont complexes à mettre en oeuvre mais d'une puissance intéressante

Pour plus de détails sur ce logiciel, consultez le document "description détaillée" bientôt disponible.

Ce logiciel est en utilisation réelle dans mes classes de programmation au CSGN. Par rapport au cours théorique que je donnais par le passé, une nette amélioration des résultats est observable.

D'autre part, l'activité de la classe s'est transformée, le professeur ne joue plus un rôle de transmetteur de matière mais devient médiateur entre la matière et l'apprenant. L'enseignant troque son rôle de "magnétophone" contre celui d'expert en apprentissage; il observe le comportement de l'élève face à son apprentissage et évalue en permanence si celui-ci est pertinent. En cas de problème, il détermine sa cause et y remédie.

Les apprenants eux-mêmes vivent la classe différemment, vous pourrez vous en rendre compte en consultant "l'avis des utilisateurs" ci-dessous.


[ Retour en tête de page ]

Apprentissage des bases de la programmation

L'avis des utilisateurs

Les élèves de 5°rénové utilisent le didacticiel "Appentissage des bases de la programmation" depuis deux mois au rythme de quatre heures par semaine.

La moyenne du groupe est arrivée au chapitre huit (programmation en pseudo-code avec visualisation du fonctionnement interne de l'ordinateur lors de l'exécution du programme).

Il était temps de leur demander leur avis concernant l'utilisation de ce didacticiel, avis donné de façon anonyme. J'ai toutefois demandé à chaque élève de signaler s'il était une fille ou un garçon. La couleur de l'entête de chaque réponse signalera s'il s'agit de l'un ou l'autre.

Il est à remarquer que le groupe de 21 élèves dispose de 14 ordinateurs. Certains "couples" se sont donc formés alors que d'autres élèves ont préféré rester "solitaires".

Voici, "in extenso" et piochées au hasard, les 20 réponses reçues le 17 janvier 2003. Une synthèse se trouve en fin de page.


Positif1 Négatif
• On peut travailler chez soi.
• On ne perd pas le contact avec les autres de la classe : quand on a un petit problème, ce n'est pas grave, on demande à un camarade.
• La méthode est bien expliquée. Le programme est bien structuré. Les exercices sont amusants à faire. On a toujours envie de réussir l'exercice sinon ça nous énerve.
• Le professeur est gentil et marrant!
• C'est mieux parce qu'on peut avancer à son rythme.
• Ce sont les bases de la programmation. Je n'y connaît rien, mais je me demande si on utilise encore le système Pascal. Enfin, c'est juste pour que la colonne "Négatif" ne soit pas vide.

Positif2 Négatif
• On apprend vraiment pas mal de choses sur la programmation.
• Tout est très clair.
• On apprend mieux par ordinateur que par feuilles et on peut travailler à son rythme.
• Pour tester un programme, c'est un peu long lors des déplacements des étiquettes (rapport au chapitre 8, ndlr).

Positif3 Négatif
• C'est intéressant d'apprendre la programmation.
• Le programme est bien structuré, des exemples y sont présents.
• Je trouve que travailler par paires est plus intéressant car on peut s'entraider.
• Cette méthode de travail sur ordinateur nous apprend à dompter l'appareil.
• Les exercices sont bien faits, bien inventés, illustrés (mon cousin venant de finir ses études d'ingénieur civil en informatique trouve ce programme très bien conçu et est étonné de cette façon d'apprendre. Il a vu la même matière dans sa troisième année et les étudiants ont eu beaucoup de difficultés).
• C'est dommage que cela n'est pas obligatoire pour tout le monde.
• Certaines répétitions sont présentes. Celles-ci ont tendance à embrouiller l'utilisateur.
• Le fait d'être tout seul peut laisser passer certains points importants qu'on estimait ne pas l'être.

Positif4 Négatif
• La manière d'apprendre est intéressante, on peut revenir sur les chapitres non compris et on y va à notre aise mais certaines explications supplémentaires sur certains chapitres (7 et 8) seraient intéressantes.
• Oui c'est une bonne méthode car cela me motive pour travailler.
• j'ai bien appris, mais je préfère les explications données par un professeur.
• Je crois que j'ai acquis la matière.
• Quelques fois, il faut revenir aux chapitres précédents.
• Avoir plus d'explications sur les petits points non compris ou moins clairement expliqués.
• Quelque fois les explications ne sont pas claires.

Positif5 Négatif
• La façon d'apprendre est beaucoup plus distrayante et c'est donc plus gai à apprendre qu'un cours en classe.
• L'intéractivité y est sûrement pour beaucoup. Le fait de pouvoir directement après un point de théorie pouvoir passer à un exercice (ex: chapitre 8).
• Le chapitre 8 est "excellent" car on y voit toutes les démarches de l'ordinateur mais le seul problème est que l'on peut utiliser que le "pas à pas", il faudrait, comme pour le chapitre 5, un bouton d'exécution automatique.
• Je trouve dommage aussi que le chapitre 9 (syntaxe Pascal) ne se trouve pas sur l'ordinateur, une lecture sur l'ordinateur suivie de petits exercices et exemples serait beaucoup plus facile à comprendre.
• Sinon, je trouve cette façon d'apprendre beaucoup plus simple. C'est facile d'entrer dans la matière.
• Je préfère me dire "il faut que j'avance en ETT" que de me dire "il faut que je fasse mon devoir en ..." (non communiqué pour des raisons de déontologie, ndlr).

Positif6 Négatif
• En ce qui concerne la manière d'apprendre, c'est excellent. Je trouve cela beaucoup plus amusant et facile.
• En bref, votre programme est parfait pour apprendre des choses intéressantes en peu de temps.
• Les textes d'explication sont quelque fois trop longs.
• Comme on est chacun devant son écran, on a moins de contacts avec les autres élèves.

Positif7 Négatif
• Le chapitre 5 a été très intéressant, l'algorithmique m'a beaucoup plu. Il est très bien fait.
• Les dessins dans le chapitre 5 aident à mieux comprendre si on a fait une erreur.
• Les petites remarques en fins de chapitres sont très chouettes. Continuez.
• Les groupes par 2 et 1: bonne idée. La communication passe bien (pour moi). Le soutien des autres (pour l'aide) est très bien.
• Dans le chapitre 7, la description de l'automate, de la tâche et la rédaction du programme peuvent être raccourcies et réunies pour tous les tours de main.
• Le chapitre 7 (encore) donne trop d'explications, exemple: page 8/34.
• Les autotests ne sont pas assez nombreux. Ce serait bien quelques uns en plus.

Positif8 Négatif
• Les petites blagues, c'est bien :-)
• On arrive à circuler facilement dans le programme.
• Les exercices du chapitre 5 sont instructifs.
• Pas assez d'autotests.
• Le chapitre 7 est trop monotone.
• Les exemples du chapitre 7 page 8/34 sont lents et il y a trop d'explications pour une simple démarche.
• Dans le chapitre 4 les explications sont complexes et certaines inutiles. Un petit résumé des explications serait mieux.
• Trop de théorie et pas assez de pratique.
• On a un manque de concentration du fait d'être tout seul devant l'ordinateur.

Positif9 Négatif
• Le fait d'être seule devant l'ordinateur permet d'aller à son aise.
• C'est très bien d'avoir un CD à la maison (plus de facilité à se concentrer).
• Les petits textes sont super, et les exercices aussi jusqu'au chapitre 8.
• C'est mieux d'apprendre comme ça au lieu que le prof note tout au tableau et explique. On avance chacun à son rythme.
• Il y a une bonne ambiance en classe.
• Un peu trop de bla-bla inutile dans tous les chapitres, surtout dans le chapitre 7.
• On fait ce qu'on veut et on a donc tendance... enfin j'ai tendance à parler avec mon voisin.
• Les exercices du chapitre 8 sont trop durs. On arrive au chapitre 8 et on ne sait pas comment faire. Pas assez d'entraînement. Trop sec. J'ai dû retourner plusieurs fois au chapitre 7 et je ne suis qu'au quatrième exercice.

Positif10 Négatif
• Je trouve que c'est mieux d'apprendre par ordinateur que par feuilles recopiées, on apprend mieux sur PC.
• Les tests sont biens et permettent de savoir si on connaît la matière.
• Dans les chapitres 7, pour les six tours de main, il y a trop de répétitions. Vous réécrivez sur trois pages la même chose à chaque page.

Positif11 Négatif
• La manière d'apprendre car chacun avance à son rythme.
• Même si l'on se trouve devant ce logiciel, il y a toujours un certain contact avec les autres.
• Bonne méthode car évolution personnelle.
• J'ai appris mieux car je suis à mon rythme.
• J'ai appris quelque chose bien que je n'ai pas encore tout vu.
• Bonne organisation du logiciel.
• Disponibilité du professeur pour les sujets non compris.
• Allure personnelle car si jamais on travaille à deux, il faut tenir compte de l'allure de l'autre, qu'elle soit plus rapide ou moins rapide et en fonction de l'avance prise ou non à la maison.
• Les exercices du chapitre 8 ne possèdent pas d'aide et donc pour travailler chez soi ce n'est pas pratique.
• Remarque générale pour les chapitres: il faudrait parfois essayer d'expliquer d'une façon un peu moins compliquée.

Positif12 Négatif
• La manière d'apprendre est chouette et audacieuse.
• Les cinq premiers chapitres sont bien expliqués et très intéressants.
• Pour le reste, je ne sais pas, je n'ai rien compris.
• Je trouve le passage du chapitre 5 au chapitre 8 trop compliqué, mal expliqué et je trouve que l'on pourrait améliorer le programme. Par exemple: mettre un ou deux exercices au chapitre 8 avec une explication pour chaque point avant de commencer les exercices.
• Il faudrait un cours avant d'aborder le chapitre 5 et un autre avant d'aborder le chapitre 8 pour voler après de nos propres ailes et bien comprendre en profondeur.

Positif13 Négatif
• Le programme est bien car on peut avancer à notre rythme.
• C'est sûr qu'on apprend quelque chose.
• On peut revenir en arrière.
• Les exercices servent, mais il n'y en a pas assez, surtout si on ne comprend pas bien.
• Si on est en retard, c'est parfois difficile de se rattraper.
• Si on ne comprend pas, c'est plus difficile de se rattraper que si on était en classe.
• Quand on a deux heures de suite, c'est dur à la fin.
• Le local n'est pas super! Ce serait mieux au deuxième étage, il y a plus de fenêtres, c'est au moins de la lumière naturelle!
• Des fois, ça prend la tête (les ordinateurs).
• Le professeur n'est pas assez accessible ou il faudrait de l'aide sur le PC.

Positif14 Négatif
• Oui, je pense avoir appris quelque chose.
• C'est bien organisé car on n'est pas poussé, si on n'a pas compris, on peut revenir en arrière et on ne doit pas être tous en même temps.
• On a encore des rapports avec les autres car on peut leur demander de nous aider.
• Dans le chapitre 7, on répète souvent la même chose au début.
• On n'a pas assez de tests, on mélange tout quand on en a un.
• Les exercices sont bien trouvés et bien organisés, mais quand on éteint l'ordinateur, tout ce qu'on a fait s'efface et on doit tout recommencer si on veut aller revoir l'exercice (chapitre 5).

Positif15 Négatif
• Cette manière d'apprendre est excellente car d'une part elle permet d'avancer à son rythme et d'autre part de ne pas être sous pression grâce au mode d'apprentissage qui nous plaît, c'est-à-dire l'ordinateur.
• Le contact avec les autres est facilité car on nous laisse une certaine "liberté" en classe.
• J'ai appris à savoir analyser la situation avant de la résoudre.
• Les exercices de fins de chapitres sont bien conçus et l'explication que l'on donne est très concrète.
• Cette manière d'apprendre est aussi bonne car l'on peut questionner le professeur sans que l'on soit bombardé par ceux qui comprennent.
• J'ai éprouvé une certaine difficulté à me retrouver dans l'amas de flèches et de cadres du chapitre 3 car il y en a partout, il y a une forte concentration ainsi que lors de l'explication des conditionnelles avec la souris et le feu rouge.
• Je ne vois aucun rapport avec ce que l'on a expliqué dans le chapitre 6 et les exercices à la fin de ce chapitre.
• J'ai remarqué que l'on met deux fois le même exercice dans le chapitre 5, celui du lanceur de pièces.
• Je trouve que dans les exercices du chapitre 5, le bouton "Mettre en page" ne sert pas à grand-chose car si l'on veut tester l'exercice, la mise en page se fait automatiquement.

Positif16 Négatif
• Le programme est très bien, de plus, grâce à ce système, on peut s'avancer chez soi (si on a le temps), chacun va à son rythme.
• Il y a une bonne ambiance pendant le cours.
• Les exercices sont très bien faits mais il faudrait avoir la possibilité d'imprimer, voire d'enregistrer les résolutions.
• Cependant les explications ne sont pas très claires.
• La mise en page est parfois monotone.
• Les textes sont un peu difficiles.

Positif17 Négatif
• J'aime bien car cela peut être utile pour mon avenir.
• C'est très bien car toutes les infos nécessaires sont bien indiquées.
• J'ai une bonne allure pour apprendre.
• Tout va bien avec les autres sauf deux filles (les prénoms sont cités mais, pour des raisons déontologiques, ne sont pas indiqués ici, ndlr)!!!
• J'ai bien appris.
• Le chapitre 4 n'est pas bien expliqué par rapport aux autres chapitres.
• Dans le chapitre 8, il manque des éléments dans la théorie car, quand on arrive devant les exercices, on ne comprend pas totalement ce qu'il faut faire.

Positif18 Négatif
• J'aime travailler sur ordinateur, on avance à notre rythme et c'est plus gai d'apprendre. Ca me paraît plus intéressant et on a un plus grand rendement.
• Les contact avec une personne sont privilégiés car on travaille en groupe de deux.
• La méthode est bonne si on aime le cours.
• L'acquisition des connaissances est aisée car on peut revenir sur les sujets. De plus les tests permettent de recommencer s'ils sont faux.
• Le chapitre 5 était très amusant ainsi que le chapitre 8.
• Les contacts avec le reste de la classe sont moins évidents.
• Si on n'aime pas le cours, cette méthode permet de sauter un chapitre et donc on se plante dans la suite.
• Le début est assez lourd et difficile à comprendre.
• une petite aide de temps en temps aurait été utile, mais vous étiez là.
• J'aurais aimé pouvoir utiliser le programme chez moi mais ce n'est pas votre faute.

Positif19 Négatif
• Très bonne idée, c'est pour moi la meilleure façon d'apprendre car on suit le programme à son aise, chacun peut donc garder son propre rythme.
• Le programme en lui-même est bien constitué, surtout les exercices.
• Peut-être quelques passages dans la théorie assez difficiles à comprendre tout de suite.

Positif20 Négatif
• On peut travailler chacun à son rythme.
• Contrairement à ce qu'on pourrait penser, les relations avec les autres élèves sont plus fréquentes et meilleures.
• Et lorsqu'il m'arrive d'avoir oublié quelque chose, je peux aller revoir dans les chapitres précédents, ce qui est plus rapide.
• Les exercices sont chouettes et amusants et nous permettent de tester nos compétences.
• Ca m'a permis d'évoluer sur le plan de la programmation.
• Je pense que ce serait peut-être mieux de passer à l'anglais pour les conditionnelles, répétitives,... pour mettre directement dans le bain.

Synthèse

En résumé, on pourrait tirer les enseignements suivants de ce sondage:

Au niveau négatif:

  • Certains passages de théorie (le chapitre 7 remporte la palme) sont trop longs et comportent trop d'explications
  • Certaines pages sont trop chargées, peu claires ou monotones
  • Manque d'aide en ligne
  • Les chapitres 5 et 8 demandent une meilleure introduction afin que l'apprenant comprenne ce qu'on attend de lui
  • Le chapitre 8 devrait avoir un bouton d'exécution automatique afin d'accélérer la vérification de certains programmes.
Bien entendu, tous ces défauts seront corrigés dans la nouvelle version en préparation.

Au niveau positif:

  • L'autonomie au niveau du rythme est plébiscitée par les apprenants, et en ce y compris la possibilité de travailler à la maison (ce qui peut être un choc pour les enseignants qui considèrent que les élèves "ne font plus rien")
  • Cette nouvelle manière d'apprendre modifie de façon importante la façon d'être en classe qui est perçue comme beaucoup plus "relax" et productive
  • Est appréciée également la facilité avec laquelle l'apprenant peut naviguer dans le logiciel, notamment pour revoir des points de matière mal maîtrisés
  • Les exercices (auto-tests) permettant de se situer sont appréciés et même réclamés en plus grand nombre
  • Le logiciel est perçu agréablement, voire considéré comme ludique, et les exercices sont motivants.
De plus, certains élèves abordent les choses sous l'aspect des compétences:
  • Compétences spécifiques (apprentissage de la matière elle-même) au niveau des documents 2 et 3
  • Compétence démultiplicatrice ("dompter la machine") dans le document 3
  • Compétence stratégique (apprendre à analyser la situation avant de la résoudre) dans le document 15
  • Compétences dynamiques (motivation, relation avec le monde extérieur, goût de l'initiative, de l'apprentissage, de l'autonomie,...).
On peut également remarquer certaines évocations par rapport à la manière dont l'apprenant se perçoit lui-même, dans son environnement et par rapport à son avenir:
  • Evolution sur le plan de son apprentissage de la programmation (document 20)
  • L'intimité de l'apprentissage est perçue comme bénéfique (document 15)
  • Les contacts avec les autres est régulièrement abordé
  • "C'est utile pour mon avenir" (document 17).

Conclusions

Je suis heureusement surpris par la richesse de ces témoignages très positifs et j'en remercie mes élèves.

Cette nouvelle méthode d'apprentissage n'est certainement pas LA panacée, mais elle ouvre de nouvelles pistes sur ce que pourrait être "l'école de demain", à savoir une école qui rend plus autonome tout en favorisant des contacts plus riches entre les élèves (collaboration, reconnaissance, respect) et l'acquisition d'une Education au sens le plus large.


[ Retour en tête de page ]

Les variables indicées et les procédures paramétrées

Analyse et téléchargement des fichiers sources version Turbo Pascal 5.0

Thème du programmeAnalyseNomTélécharger ?
Calcul d'une moyenne avec nombre d'arrêt bidonEn coursmoyenne.pasOui (4,22 Ko)
Statistiques du lottoEn coursstatloto.pasOui (4,53 Ko)
Gestion d'une électionAtteindreelection.pasOui (5,50 Ko)
Simulation d'un pari tiercéAtteindretierce.pasOui (8,55 Ko)
Agenda électronique fugaceAtteindreagenda.pasOui (5,94 Ko)
Distribution d'un jeu de cartesAtteindrecartes.pasOui (6,95 Ko)
Statistiques de vente d'une firmeAtteindreventes.pasOui (6,06 Ko)
ColoBingo, le nouveau jeu en vogueAtteindrecolobing.pasOui (3,88 Ko)
La course folle de 8 escargots (avec pari doublé)Atteindreescargot.pasOui (5,92 Ko)

AtteindreAnalyse complète de TOUT le programme
AtteindreExplication des nuances par rapport à un programme similaire


Après avoir tourné ta souris 7 fois dans ta main, tu peux me poser des questions précises quant aux analyses ou aux programmes par e-mail.

Mode d'emploi pour télécharger et visualiser les codes sources

Tu utilises Mozilla FirefoxTu utilises Internet Explorer
  • Effectue un shift-clic gauche sur l'hyperlien
  • Choisis le répertoire dans lequel tu désire sauvegarder le fichier (qui aura l'extension ".pas")
  • Si tu veux le consulter et l'exécuter en Pascal
  • Si tu veux le consulter dans WordPad
    • Renomme l'extension ".pas" en extension ".txt"
    • Lance WordPad
    • A partir de WordPad, ouvre le document téléchargé par le type "Fichiers texte MS-DOS (*.txt)" (Conversion du format ASCII en ANSI)
  • Effectue un clic droit sur l'hyperlien
  • Dans le menu contextuel qui apparaît, choisis "Enregistrer la cible sous..."
  • Choisis le répertoire dans lequel tu désires sauvegarder le fichier (qui aura l'extension ".pas.txt")
  • Si tu veux le consulter et l'exécuter en Pascal
  • Si tu veux le consulter dans WordPad
    • Supprime l'extension ".pas" (l'extension ".txt" doit subsister)
    • Lance WordPad
    • A partir de WordPad, ouvre le document téléchargé par le type "Fichiers texte MS-DOS (*.txt)" (Conversion du format ASCII en ANSI)

En cas de problème, envoie-moi un e-mail en me décrivant précisément la difficulté rencontrée

[ Retour en tête de page ]