Subject: Re : Re: Re : Re: [EDUC] Apprentissage code informatique : Qui doit s'en charger ?
From: [email-masked]
To: [email-masked]
Cc: [email-masked]
Date: Sat, 31 May 2014 10:59:31 +0200 (CEST)
List-Id: <educ.april.org>

----- sonic steph <[email-masked]> a écrit :
> Il ne faudrait pas je pense restreindre la réflexion par les cadres qui
> nous sont imposés. Charlie défend la "technologie" parce qu'elle existe
> au collège.

Pardonne-moi. Pas seulement. Mon approche n'est pas corporatiste.
Elle s'inscrit dans une profonde réflexion qui m'amène à considérer,
contrairement à ce que disent certains théoriciens de l'EPI, que 
l'informatique ce n'est pas seulement de la science (dont il faudrait
mieux définir les contours), c'est aussi un certain nombre de technologies.

Ce que considère aussi Jean-Pierre Demailly de l"Académie des sciences
dont je partage ici l'analyse, ici interviewé par l'EPI :

"L'informatique est devenue aujourd'hui une technologie très importante au 
niveau économique et industriel. Elle a permis de développer des outils de travail 
performants dans de nombreux secteurs d'activité, des moyens de communication nouveaux 
au service du citoyen dans sa vie privée comme dans sa vie professionnelle. Elle a 
donné lieu à une industrie des media et des loisirs en pleine expansion. 
Il y a donc aucune raison de ne pas réserver une place à cet outil à l'école, 
afin que les enfants puissent s'y familiariser dans un cadre scolaire.".
http://www.epi.asso.fr/revue/articles/a0504b.htm

De même lorsqu'il écrit :

" Mais le plus important est que l'instruction publique repose sur une certaine éthique 
du partage de la connaissance, et que seuls les logiciels libres respectent cette éthique. 
Étant ouverts, ils sont aussi beaucoup plus appropriés pour l'étude, puisque rien ne s'oppose 
à ce qu'on puisse les décortiquer et en comprendre tous les rouages. C'est d'ailleurs 
ainsi qu'on a vu émerger dans la galaxie Linux mondiale un bon nombre de « prodiges » 
âgés de 15 à 18 ans (ou moins!), dont les connaissances n'ont parfois pas grand chose à 
envier à bien des spécialistes.".

> D'autres défendent l'informatique enseignée par les
> mathématiques car ils ne voient que le lycée général. 

Pour Demailly par exemple et/ou pour Lafforgue (médailler Fields) ce n'est pas 
toutafè vrai. Ils se ont opposés à l'introduction de l'algorithmie dans les
programmes de mathématiques en seconde, non  parce qu'ils étaient opposés
à l'enseignement des algorithmes, mais parce que cet enseignement 
s'est imposé au détriment de la géométrie qu'ils jugeaient fondamentale.

> Certains lycées
> sont technologiques, d'autres sont les deux (général et technologique) :
> il faudrait alors décomposer le problème pour ces deux lycées ? Et
> comment traiter le cas des lycées technologiques où existent un BTS SIO
> dans lequel enseigne déjà des informaticiens ?

Absolument. L'enseignement de l'informatique dans une terminale S ne peut
pas avoir les mêmes contenus qu'un enseignement de l'informatique dans une filière 
technologique, même s'il faut penser à un "socle" commun.

> L'enseignement au "numérique" doit pour nous, je pense, rentrer dans une
> revendication à un école polytechnique - Pas d’école démocratique sans
> instruction polytechnique (1).

Enseigner le "numérique" sans en définir la réalité sémantique ne veut
strictement rien dire. Il faut soumettre ce concept à un examen
critique avant de prétendre l'enseigner.

La notion de "polytechnique" doit être également soumise à un examen
critique. C'est la raison pour laquelle je récuse le concept de technique,
appliqué à l'informatique hors du contexte stricto sensu du hardware qui
revêt bien sûr un caractère technique.
Voilà pourquoi j'utilise le concept de technologie(s) qui permet d'étudier
le mode de fonctionnement des objets techniques mais également les objets
informatiques qui ne revêtent pas de caractère technique.

Et c'est là que l'approche du Libre diffère d'une approche privatrice.

Par exemple, le refus de la vente subordonnée et/ou le refus des
brevets logiciels amène à distinguer ce qui relève du matériel de ce
qui relève des données et de leur traitement.

De ce fait, apprendre aux enfants à démonter/remonter un vieux micro-ordinateur
(qui n'existe dans aucun programme de l'Education nationale et pour cause !!!),
à distinguer hardware et software, le code et le matériel devrait être
la première marche de l'escalier.
 
> L'analyse corporatiste a bien sûr toutes les chances de gagner car c'est
> comme ça que le système fonctionne et c'est même comme ça que certains
> syndicats majoritaires fonctionnent. J'espère néanmoins que nous pouvons
> mieux faire.

Le corporatisme se retrouve tout aussi bien chez les partisans d'un enseignement
de la science informatique que chez un grand nombre de professeurs de technologie.

> Pour pouvoir développer une pensée critique autour du "numérique", il ne
> suffit de savoir coder un logiciel. Sinon, il n'y aurait plus de
> développeurs chez Microsoft et Apple.

L'approche du code privateur ne peut être basée que sur une division sociale
du travail arborescente. 
Cf. Bangalore, la « Silicon City » indienne qui enregistre le plus grand nombre 
et le plus haut taux de suicide en Inde. Bangalore est considérée 
comme la capitale du suicide.
On peut donc très bien pisser du code, comme ce fut le cas dans de nombreuses
SS2i où les analystes programmeurs codaient sans avoir la maîtrise et/ou
un point de vue d'ensemble sur les projets ; comme on peut également
considérer que la lecture et la connaissance des briques logicielles existantes
permettent de développer des modèles collaboratifs plus efficients. C'est les modèles 
de développement des logiciels libres et de l'open source.
Pour autant, je considère qu'apprendre aux élèves de collège à distinguer
le travail coopératif du travail collaboratif issu de l'informatique
de réseau, à travers de petites réalisations et/ou de courts projets,
est une nécessité absolue.
L'approche d'un mode de production ne relève pas stricto sensu de la science
informatique (cela relèverait d'ailleurs davantage en tant que "science"
à la sociologie des organisations) mais de la technologie dans le sens
où la technologie a à voir depuis son origine avec l'organisation du
travail, les pratiques sociales de réf"rence et les modes de production.

> Sinon comme je l'écrivais plus haute, contrairement à ce que pense bcp
> de monde qui écrit sur cette liste, dans l'enseignement secondaire, les
> informaticiens se retrouves rangés dans l'économie-gestion, elle même
> rangée dans la technologie. 

Oui, mais pas que. Il faut également prendre en considération certaines
filières proches de l'électronique. Je pense ici entre autre à notre
collègue Pierre Jacque du lycée Artaud  le jour de la pré-rentrée.
Voir sa lettre ici. L'enjeu étant entre autre l'impossibilité
d'enseigner sérieusement l'informatique.
http://destimed.fr/Marseille-Suicide-d-un-professeur

> Alors peut-être faut-il comprendre dans les
> messages qu'on lit ici qu'on ne doit envisager, à l'April, que ce qui
> est "général". Au collègue, on touche presque tout le monde, mais au
> lycée, non.

Entièrement d'accord avec toi. A mille pour cent !
Nous devons pas seulement penser l'enseignement général mais l'enseignement
dans toute son entièreté, notamment les enseignements technologiques.
Voilà pourquoi j'ai tenu à ce que les revendications du Conseil national
du numérique soient présentes dans le CP contre l'event Micorosft/Inspection
générale.
https://www.april.org/lecole-selon-microsoft-comment-jai-appris-ne-plus-men-faire-et-aimer-leducation-privatrice-et-fermee

> L'enseignement informatique ne change pas que le profil soit matheux ou
> techno, voit littéraire. Par exemple, en BTS, les élèves arrivent de
> toutes les séries et suivent pourtant la même progression. Il n'y a pas
> de pré-requis mathématiques. On est pas obligé de créer des programmes
> basés sur des fonctions mathématiques, on est pas obligé non plus de
> créer des programmes basés sur des cas de gestion de données et de
> traitement de l'information, on peut tout aussi créer des programmes
> autour de jeux simples comme le propose letrès bon hors série de
> GNU/Linux magazine qui utilise Python dans une approche plus ludique:
> http://boutique.ed-diamond.com/gnulinux-magazine-hors-series/549-gnulinux-magazine-hs-71.html
> 
> Dernière chose, un langage interprété comme Python ou PHP permet tout de
> démontrer les enjeux du logiciel libre. Tu installes Openshot par
> exemple, tu l'utilises et tu te demandes à quoi ressemble le code.

Certes, mais nous devons développer un point de vue qui s'inscrive
globalement dans une pluralité et en continuant de débattre.

Par exemple, j'étais favorable à l'enseignement du Javascript parce que
c'est le langage par lequel commence mes rares élèves qui codent encore
en tant qu'autodidactes au collège. Plus, je relis un vieux mèl de
David Chemouil notamment en faveur de la programmation déclarative
(programmation logique, programmation fonctionnelle), plus je me dis
que son approche s'inscrit véritablement dans la science informatique.

Je me permets de copier/coller son post pour t'éviter de fastidieuses
recherches. Même si son point de vue me semble totalement en phase
pour un enseignement en terminale S par exemple, ce point de vue
doit être pris par nous tous en considération :

--- extrait du post ---

Je vais développer un peu... mais mon but n'est pas de déclencher une
guerre des langages. Si débat il y a, il faut qu'il soit argumenté...

Donc je pense pour ma part qu'il faut privilégier les langages
fonctionnels typés. En l'état, ça peut être le fragment fonctionnel
d'OCaml ou de Scala, ou alors Haskell.

Quelques raisons pédagogiques pour ça :
- les types permettent d'enseigner à raisonner par abstraction et
permettent par ailleurs de détecter des erreurs avant exécution (pour ma
part, je préfère savoir qu'un pont ne va pas s'effondrer *avant* de le
construire)
- pour ceux qui développent de gros programmes, les types sont
indispensables pour la mise au point de programmes modulaires (ce qu'on
appelle "types abstraits" dans la littérature scientifique)
- le fonctionnel consiste à voir les programmes comme des fonctions qui
se composent et se décomposent comme en maths, en physique...
- l'exécution d'un programme fonctionnel est très simple à expliquer
comme la réécriture du programme en un autre programme (comme la
récriture des identités remarquables en algèbre par exemple), ça se
déroule très simplement au tableau. Ce n'est pas le cas des langages
impératifs qui font en plus appel à une structure (processeur, mémoire,
allocation...) pas simple à comprendre et qui force à mélanger deux
niveau d'abstraction (l'application d'un côté, le compilateur et le
runtime de l'autre)
- enfin le fonctionnel permet de voir de façon très simple LA méthode de
raisonnement en informatique, à savoir l'induction/récursion
(généralisation de la récurrence que les élèves voient en maths avec les
suites)
- prosaïquement, je pense qu'il est préférable de commencer par un
langage avec ces qualités pour pouvoir mieux affronter les langages
différents qui ajoutent certaines difficultés sur le plan cognitif
(faiblesse du typage -tous les langages étant typés contrairement à une
certaine croyance-, approche impérative, approche objet, gestion mémoire...)

La question du langage web, à savoir Javascript, revenu dans plusieurs
mails, me paraît décalée. Rien n'empêche de faire de la programmation
web avec des langages fonctionnels typés (en pratique, pour Ocaml, on
dispose de Js_of_Ocaml <http://ocsigen.org/js_of_ocaml/> qui compile du
Ocaml en Javascript, ce dernier étant utilisé comme un assembleur).

Pour finir, pour de jeunes élèves (peut-être même jusque en 4°/3°, je
sais pas), les langages graphiques me semblent une bonne idée en ce
qu'ils permettent, en pratique, de se débarrasser des erreurs de syntaxe
et en ce qu'ils mettent en avant l'idée fondamentale de "syntaxe
abstraite" (soit la structure du programme, ici directement visible
graphiquement). C'est dommage que ces langages graphiques soient tous
impératifs AFAIK.

---

Librement,
Charlie

> 
> stéphane moulinet, enseignant en informatique ds le secondaire
> 
> (1) http://www.skolo.org/spip.php?article1401&lang=fr
> 
> 

--
Pour gérer votre abonnement à la liste educ et vos informations personnelles :
http://listes.april.org/wws/info/educ