enseignement informatique en lycée ?
Bonjour,
je voudrais un conseil : je voudrais lancer un "groupe de travail" pour les lycéens de mon établissement. But recherché : essayer de les former à un langage informatique et à l'algorithmie.
Je pensais leur enseigner le php : gratuit, des boucles logiques "simples" et globalement "transposables" dans d'autres langages.
Avez-vous un ou des conseils à me donner pour cela ??
Y aurait-il un autre langage que vous auriez déjà essayé d'enseigner au lycée ? Votre bilan ?
MERCI
je voudrais un conseil : je voudrais lancer un "groupe de travail" pour les lycéens de mon établissement. But recherché : essayer de les former à un langage informatique et à l'algorithmie.
Je pensais leur enseigner le php : gratuit, des boucles logiques "simples" et globalement "transposables" dans d'autres langages.
Avez-vous un ou des conseils à me donner pour cela ??
Y aurait-il un autre langage que vous auriez déjà essayé d'enseigner au lycée ? Votre bilan ?
MERCI
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
je voudrais éviter les langages trop "académiques" pour ne pas "recruter" que les élèves voulant faire des prépas. Donc je pense renoncer à caml.
Je ne connais rien au C la question est : peut-on l'implémenter simplement et gratuitement sur des ordinateurs. Y a t'il une "interface" simple pour compiler les programme, et pour le côté "pédacogique-attractif", les élèves pourront ils produire un résultat assez gratifiant en moins de 3 séances (autre que "Hello word") ?
merci
> ok ! merci de ces réponses qui amènent d'autres
> questions :
>
> je voudrais éviter les langages trop "académiques"
> pour ne pas "recruter" que les élèves voulant
> faire des prépas. Donc je pense renoncer à caml.
>
> Je ne connais rien au C la question est : peut-on
> l'implémenter simplement et gratuitement sur des
> ordinateurs.
Oui
> Y a t'il une "interface" simple pour
> compiler les programme,
oui
> et pour le côté
> "pédacogique-attractif", les élèves pourront ils
> produire un résultat assez gratifiant en moins de
> 3 séances (autre que "Hello word") ?
non. C est un langage d'assez bas niveau. Pour faire quoi que ce soit de gratifiant, il faut utiliser et se plonger dans la documentation d'une bibliothèque annexe.
un avantage est que cette façon de faire est fréquente dans le monde de l'informatique actuelle, et que la syntaxe C est très proche de celles de C++ et Java.
a part ça, je n'ai pas vraiment d'avis sur ta question. Quand tu auras fait ton choix, fais nous un retour d'expérience s'il te plaît, car j'aimerais bien tenter la même chose dans mon lycée.
Pour nfo, un de mes élèves de 2nde programme en C.
>
> merci
mais pour ce qui est du "vécu" ce ne sera pas avant l'année prochaine...
le java est il sympa pour les élèves ?
le côté bibliothèque ne me paraît pas très "pédagogique" pour une première approche d'un langage. Peut être la peur de leur faire utiliser une usine à gaz.
Ce n'est pas pour le plaisir de leur faire redécouvrir l'eau tiède mais les différentes façons de calculer les factorielles me paraît assez intéressant, et cela ne nécessite pas un langage trop évolué.
A priori je penche pour un travail plus "algorithmique" que sur un aspect plus "informatique" utilitaire, si vous voyez ce que je veux dire, (et sans aspect péjoratif sur la notion d'utilité)
pour le java, je connais mal, mais j'en avais fait un peu en terminal, mais meme en ayant qq bases de C ca m'avait semblé vachement obscure, notamment le fait que tout programme doit etre une classe, que la syntaxe soit assez lourdingue.. enfin ca n'est que mon avis, et ca vient peut etre de moi
sinon, l'idee qui me semble particulierement non debile (normal c'est la mienne :-) ) ca pourrait etre d'utiliser octave, le clone libre de matlab : tu as l'avantage du coté script, pas de compilation, de bibliotheque ou de manip compliquée avant de demarrer un code, un programme n'est quasiment rien d'autre qu'une "traduction" de l'algo, possibilité de tester les fonctions "en live" sans avoir a prevoir un bout de code pour recuperer une entree utilisateur, et du coup facile a tester sur plein d'exemples, facile a debugguer, bref ca epargne un bon bout du cote "moche" de la programmation, tout en etant un "vrai" langage avec des boucles, des variables,...
je pense que du point de vue pedagogique c'est un bon compromis !!
Dans ce cas, comme l'a dit Roger, le Pascal me semble le plus adapté à ce que tu cherches.
où ?
Pour ce qui est d'apprendre la programmation avec Scilab ou Octave, je crois que c'est délicat, car il y a tellement de fonctions prédéfinies dans ces logiciels (fonctions mathématiques, graphiques, etc), que l'élève ne doit pas bien distinguer le concept de boucle ou de récursivité (présent dans tous les langages) caché derriere certaines fonctions intégrées (sum pour sommer un tableau, dans scilab par ex.). C'est un peu ce qui se passe en prépa avec l'apprentissage de Maple : certains étudiants sont perdus entre ce qui relève de l'écriture d'une procédure (itération, tests, etc ...) et les puissantes fonctions de bibliothèque (diagonalisation d'une matrice, résolution de f(x)=0 ...), ce qui fait parfois dire à certains "Monsieur, pourquoi vous nous demandez d'écrire une fonction qui existe déjà ?"
Le mieux à mon avis pour faire quelque chose de gratifiant est :
- soit de mettre plus que trois séances, si c'est possible (mais bon ça peut etre dur)
- soit de leur donner un code à trous : certaines parties chiantes sont déjà tapées, et les élèves se concentrent sur l'écriture du coeur de l'algo. Par exemple, avec java, on peut rapidement faire des petits applets graphiques (ce qui rejoint l'idée initiale du php).
http://fr.wikipedia.org/wiki/Pascal_(langage)
pour ma part, je déconseille vivement PHP, pour les raisons déjà citées plus haut. C'est un langage qui a une cible spécifique, le web, qu'il n'est pas intéressant d'aborder dans une optique d'initiation à la programmation. Il est également bien trop peu structuré, a une syntaxe peu claire et encourage de mauvaises pratiques de programmation.
Autres mauvais candidats pour une première approche :
- C : trop bas niveau, trop complexe, nécessite une certaine compréhension de l'architecture sous-jacente avant de pouvoir faire quoi que ce soit
- Java : trop verbeux, nécessite des concepts d'orienté objet qu'il n'est pas évident de faire passer à des élèves qui n'y ont jamais touché
- Caml : il y a un certain intérêt, notamment pour ceux qui voudront aller en prépa, mais la programmation fonctionnelle, bien que formidable, nécessite de maîtriser un certain nombre de notions "pas évidentes" (fonction, type, etc...). L'apprentissage est déjà douloureux dans beaucoup de cas en prépa où les élèves ont un bagage formel beaucoup plus complet qu'en terminale.
Pascal est une option (d'ailleurs souvent utilisée) mais c'est vraiment un langage vieillissant et finalement assez pauvre en expressivité. Il continue à être enseigné dans certains lycées et certaines prépas uniquement parce que des professeurs y ont été formés et ne souhaitent pas réapprendre un nouveau langage, mais il faudra tôt ou tard en changer.
Pour ma part, je pense que la meilleure solution, de loin, serait python. Il a de multiples avantages, dont le moindre n'est pas sa syntaxe très claire et facile à appréhender. Il n'est pas trop verbeux, encourage de bonnes pratiques de programmation (comme l'indentation), est de haut-niveau (donc pas de bêtises pour la gestion de la mémoire). Il est aussi interprété, ce qui évite de devoir expliquer le principe de la compilation, au moins dans un premier temps, et possède un toplevel qui permet d'expérimenter facilement. Enfin, il est libre et gratuit, disponibles sur toutes les plateformes. Cerise sur le gâteau, ses nombreuses librairies, comme par exemple pygames qui peut permette à un groupe motivé de mener à bien un petit projet de jeu (meilleur moyen de motiver une classe à mon avis).
Le paradigme de base est impératif, donc le plus simple à appréhender pour des élèves qui n'ont absolument jamais programmé. Il est possible d'enchaîner sur l'orienté objet, voire sur un peu de fonctionnel, selon le temps (mais je doute que ce soit très pertinent, à moins que ce ne soit un enseignement sur plusieurs années).
> [...] Enfin, il est libre et gratuit,
> disponibles sur toutes les plateformes. [...]
selon vous, la meilleure interface sur windows XP svp ?
(je fais avec ce qu'il y a au lycée :P)
Le C me semble un peu ardu pour être enseigné en lycée. Pour mon opinion.
Perso j'aurais preféré étudier JAVA au lycée plutôt que le Turbo Pascal. Mais en 1990-1993 JAVA n'existait pas...
Et bien contrairement à ce qu'un certain nombre d'intervenants semblent penser, le monde du langage Pascal est toujours bien vivant et même très dynamique! Non seulement le compilateur FPC (free pascal compiler) existe sous toutes les plateformes, mais il existe un projet très prometteur et en plein essor: le projet Lazarus, il ressemble comme deux gouttes d'eau à Delphi/kylix (d'ailleurs il y a compatibilité à quelques noms d'unités près), c'est du pascal objet tout ce qu'il y a de plus moderne (classes, exceptions, et touti quanti...). Le projet est encore jeune (version 0.9) mais n'a plus grand'chose à envier au cèlèbre Delphi de Borland. Un très gros avantage: un seul source pour toutes les plateformes, et c'est du COMPILE, pas de l'interprêté.
Cela dit, du temps ou j'enseignais l'option informatique en Terminale (c'était avant qu'Allègre supprime toute option informatique prétextant que tout le monde était déjà informaticien...), j'avais commencé avec le Pascal bien sûr, mais rapidement j'étais passé au Visual Basic: très simple, très facile d'utilisation, permettant tout de suite de faire des jeux ou des animations, bref, les élèves préfèraient largement ce dernier!
Joaopa
Joaopa
Ils auront tout le temps de se former a l'ANPE
Néanmoins, je te propose le langage Anubis.
selon toi quels avantages ? et quelq avantages sur les autres ?
http://fr.wikipedia.org/wiki/Langage_Anubis
mais je ne suis pas convaincu :S
Est-ce que vous savez quel est le langage le plus utilisé par les étudiants lors de la sortie de leurs études en entreprise.... le VBA (Visual Basic for Application).
Eh oui... même si c'est triste il faut savoir que MS Excel est utilisé par 80% des entreprises dans le monde pour faire du reporting, de l'analyse de données (data mining et BI), de la statistique de la comptabilité et gestion de stocks (même si cela peut paraître hallucinant...).
Donc pour donner un langage simple et qui servira quasiment à coup sûr à plus ou moins n'importe qui le VBA me semble le plus adapté... les autres langages sont "quasiment" élitistes et surtout académiques (ne servent qu'à des gens qui feront de l'informatique leur métier ou leur passion).
Cordialement,
Vincent
Formateur informatique en entreprise...
Il doit y avoir un article dessus sur Wikipedia, ou sinon un petit google.
Quand à savoir s'il y a un interpréteur Ruby pour Windows... Probablement, mais pas sûr.
Dans tous les cas, pour le lycée, à éviter absolument : C/C++ (trop compliqué), Java (trop complet-xe), Fortran (trop n'importe quoi), PHP (trop sale), Caml (trop fonctionnel), C# (trop propriétaire)...
pour me rappeler ma jeunesse, j'ai ré-essayé le Pascal...j'ai trouvé un compilateur "free pascal ide"...mais l'interface est moche...
vous n'auriez pas mieux à me proposer comme compilateur sous win xp ???
MERCI
JPS
Auriez-vous d'autres idées de "projet" faisable avec des lycéens de 2nde-1ère ??
Merci
Au passage, j'avais effectivement oublié que python peut aussi s'utiliser en mode "interactif", ce qui peut être un plus...
Pour les algos, le tri peut être intéressant pour illustrer l'efficacité d'un algo, sinon à part Syracuse, il y a les classiques : la suite de Fibonacci, la factorielle, la résolution d'équations simples, les méthodes "naïves" de factorisation des entiers (où on passe facilement de $O(N)$ à $O(\sqrt{N}/2)$ ), le crible d'Eratosthène, j'en oublie sûrement beaucoup... Je ne suis pas du tout prof, donc je connais mal les programmes, mais pourquoi pas un peu d'arithmétique, pgcd et autre.. en cherchant bien, je suppose qu'on peut trouver des algorithmes cachés derrière des "recettes" qu'on apprend au lycée pour résoudre des problèmes...
celui sur le développement d'un polynôme ?
En effet ! Super, je retiens toutes ces idées "simples" mais efficaces pour tester la compréhension...
Mais pour l'arithmétique c'est limite parce que à part le pgcd, ils ne savent pas grand chose avant de prendre spé maths en TS...
[Est-il indispensable de recopier in extenso un message précédent, d'autant qu'il contient du LaTeX non compilé ? AD]
Après, on peut faire plein de choses amusantes dessus (pour les plus ambitieux, on peut même aller jusqu'à utiliser une librairie python pour faire de petits graphes).
Les tris sont aussi une bonne approche parce qu'ils ont l'avantage de faire clairement sentir ce qu'est un algorithme. Par contre, ce n'est pas si facile que ça en a l'air. J'ai du l'enseigner récemment à une classe de MPSI, en Maple (pas option info) et ce n'était pas *si* évident que ça. Il faut bien comprendre ce qu'est une liste avant de se lancer, et avant ça avoir une bonne idée de comment marche le langage, ce qui prend déjà deux bonnes séances.
Sinon, pour donner une idée de la récursivité, montrer différentes versions de la factorielle est un classique qui reste toujours efficace. On peut après enchainer sur Fibonacci et dire pourquoi ce n'est pas efficace tout le temps, voire dire deux mots sur les notions de complexité (il y a explosion combinatoire pour Fibonacci récursif s'il est écrit "naïvement"). Montrer un flocon de Koch à différents niveaux est aussi une bonne idée pour illustrer la récursivité, mais clairement ambitieux à faire programmer.
par contre, je n'ai jamais entendu parler d'un problème de complexité sur Fibonacci.
(Est-ce parcequ'on l'appelle 2 fois de suite dans la version "naïve" ?)
Ce qui me gêne un peu avec le Pascal (pour les souvenirs que j'en ai) ce sont les résultats "pas très jolis" point de vue graphique, mais il faut que je vérifie que le langage n'ait pas évolué depuis 15 ans...
Voici un site avec pleins de docs, de cours, et d'exercices corrigés pour tous les langages : http://www.developpez.com/
Je commence l'enseignement avec Pascal et des trucs simples : résolution d'équations du second degré, calcul de factoriel, triangle de Pascal, ...
Il y a pleins d'autres exemples sur le site.
Ensuite un peu de html - css, un peu de php, et je reviens sur du python.
A ce propos, vous semblerait il "économique" d'essayer de faire de l'algorithmique avec le php ?
il y a quelques raisons qui semblent être rédibitoires (déclarations des variables pas assez strictes)....
votre avis sur la question ?
je viens de relire l'ensemble de ton sujet : je pense qu'il faudrait que tu affines ton projet en lui fixant des objectifs bien précis (qui, à ce niveau, resteront de toute façon {\bf très} modeste). Il me semble en effet que tu balances encore entre plusieurs possibilités.
Veux-tu mettre plutôt l'accent sur le travail algorithmique ou sur une pratique de la programmation ? Souhaites-tu développer ces activités pour que tes élèves fassent surtout des mathématiques, ou, à l'inverse, te servir de quelques questions issues des mathématiques pour que tes élèves fassent surtout de l'informatique ?
Pour les avoir moi-même rencontrées (mais avec des Bac+1 et je n'avais pas le choix du langage, c'était du C), ces questions, si on y réfléchit bien, ne sont pas si anodines qu'elles le paraissent.
Une chose est certaine : un projet "flou" et des activités "mal définies", dont les élèves ne comprennent ni le sens ni le but, ne retiendront pas leur attention, surtout s'ils sont très jeunes.
nb : pour Hörner, oui, c'est bien l'algorithme qui fournit, en un temps linéaire, les coefficients de $Q(x)$ et la valeur $P(a)$ dans l'égalité $P(X)=(X-a)Q(X)+P(a)$.
je suis assez d'accord avec toi, il faut que je me fixe un objectif clair; et que je le présente aux élèves afin qu'ils accrochent dès le début.
En fait, je pense que je vais lancer une première année à but "algorithmique" avec le PASCAL comme langage. Les maths seront un outil (simple?) d'étude. Le public concerné serait les 2nde-1ère.
L'année prochaine, si j'ai des fanas, je pourrais faire du php. (avec les futurs 1ère terminale).
Le must serait de faire un jeu en Flash lors d'une 3ème année... mais si c'est l'année du bac...je ne suis pas sûr de trouver des fanas.
MERCI de vos contributions... j'y vois beaucoup plus clair !
Je viens de voir ce lien, il pourra peut etre vous intéresser. Scilab est le clone gratuit de Matlab, et ses possibilités de programmation peuvent etre intéressantes pour le débutant (on dispose de fonctions graphiques relativement évoluées). De plus, on peut faire des illustrations mathématiques du cours (intégration numérique, probas, stats). Enfin, c'est l'un des logiciels au programme de BCPST (prépa bio).
Cordialement.