Le Tue, 01 Apr 2008 20:54:13 +0200, Wykaaa a écrit :
<zip>
> Le débat entame ici le fond du problème pour l'enseignement de la
> programmation.
> Je vais donner mon point de vue personnel qu'on peut ne pas partager
> (mais sans polémique SVP) :
Il est partagé.
J'y ajouterais des langages à paradigmes différents (style Lisp, Prolog
et assimilés). C'est un truc qui me manque je trouve, j'ai fait un peu de
prolog au CNAM, mais c'est tout.
Note: mes collègues qui enseignent dans les cursus d'informatique en fac
ont de plus en plus de mal de trouver des étudiants intéressés par le
simple fait de programmer - la pluspart veulent devenir analystes, chefs
de projets... mais surtout pas mettre les mains dans le cambouis. Pas sûr
qu'à terme ça ne fasse pas de mauvaises surprises au niveau des cahiers
des charges qu'ils rédigeront...
<zip>
> 2) Pour les scientifiques non informaticiens - notion de variable, de
> valeurs litérales (sans les encombrer avec les classes d'allocation
> mémoire (quoique des fois) - notion de sous-programme (sans les
> subtilités de tous les types de passage d'arguments)
> - quelques notions de typage
> - notion de récursivité
> - notion de modularité
> - notion d'héritage et de polymorphisme (peut-être même pas nécessaire.
> Dépend du contexte)
+ évidemment les tableaux, structures de contrôle & Co, les entrées/
sorties...
AMA il est important de leur montrer la réutilisation de bibliothèques
existantes, de leur apprendre à chercher d'abord si ce dont ils ont
besoin n'a pas déjà été réalisé dans un langage/outil quelconque.
> Langage support : un langage utilisé en simulation permettant de faire
> aisément des graphiques et de mettre en place une IHM, même rudimentaire
> Un langage tel que le regretté HyperCard (sur Mac) était parfait pour
> cela. Il faut trouver l'équivalent et, là , je fais appel à vos
> suggestions à tous.
HyperCard... nostalgie (SuperCard aussi dans mon cas).
Il y a un soft (commercial) qui tourne de la même façon et permet de
faire des "piles" (certains de mes collègues l'utilisent pour monter des
manips simples).
Ah, j'ai trouvé sur Wikipedia:
http://en.wikipedia.org/wiki/HyperCard#External_links
Pour mes collègues, c'est "Revolution"
Il y a aussi PythonCard (mais non je ne fait pas de prosélytisme) qui est
l'utilisation de Python avec une architecture événementielle type pile
HyperCard (mais avec les nombreuses librairies Python dispos).
Je ne sais pas trop où il en est (voir si le dépôt versionné n'est pas
très en avance par rapport aux tgz téléchargeables).
http://pythoncard.sourceforge.net/
> 3) Pour les non scientifiques
> Excel et VBA ??? (non pas taper...)
>
> J'ai certainement oublié des trucs mais, pour tous ceux qui sont
> impliqués dans l'enseignement de l'informatique au sens large dans des
> cursus divers et variés, peut-être est-ce une base de discussion ?
Le premier problème avec Excel et VBA c'est un verrouillage certain sur
des outils propriétaires (et pas donnés - s'il faut que les étudiants y
aient accès il faut le prendre en compte... quoique Microsoft fasse des
tarifs très préférentiels aux étudiants afin d'élargir sa gamme
d'utilisateurs captifs).
Le second c'est que l'on préfère souvent utiliser ce que l'on connaît
déjà pour réaliser ce dont on a besoin (on serait peut-être/sûrement plus
efficace avec des outils plus adaptés... mais il y a la barrière/le temps
d'apprentissage).
Et comme outils génériques, Excel et VBA ne sont pas bons. Ce qui fait
que l'on se retrouve avec des trucs développés par des gens de bonne
volonté, mais qui sont des horreurs du point de vue informatique.
>>> Si tu enseignes à des personnes pour qui la programmation n'est qu'une
>>> unité de valeur obligatoire dans leur cursus, qui leur servira
>>> peut-être plus tard (mais pas sûr), alors autant leur apprendre un
>>> langage qui leur permette de faire simplement des choses
>>> puissantes,:interfaces graphiques, accès fichiers, liens avec des
>>> bases de données, manipulation des protocoles de l'internet...
>
> Entièrement d'accord mais je n'ai pas la réponse en terme de langage (je
> sens que certains vont dire ... Python)
Oui oui oui.
Bon, il faut dire que les gens qui font du Python un peu avancé ont
beaucoup de code écrit dans d'autres langages (réutilisation de
librairies C/C++ existantes, écriture de code de calcul optimisé...).
Tu n'iras pas faire un soft de traitement d'image complètement en Python,
ce n'est pas le but et ça serait particulièrement inefficace. Par contre
tu réutiliseras des librairies pour pouvoir profiter facilement de leurs
fonctionnalités et ajouter des services par dessus (GUI, réseau,
changements de formats...).
[pause] Si je reprend un exemple par rapport à ce que tu sembles avoir
fait (vu ce que j'ai pu lire du début de la discussion), tu n'iras pas
faire un soft embarqué d'assistance au pilotage d'un avion en Python, ça
n'aurais aucun sens. Par contre, tu peux très bien utiliser Python pour
automatiser les enchaînements de build et de tests unitaires de ton soft
écrit en ADA.
Pour cet usage, tu peux remplacer Python par Ruby, TCL, Perl ou tout
autre langage de script un peu avancé - mais Python est une excellente
glue - et il y a PyAda, dont le développement est malheureusement
abandonné: http://pyada.sourceforge.net/index.html
[/pause]
>>
>> Tout à fait.
>> Mais l'enseignement de la programmation dans des cursus non
>> informatiques est un vrai problème: en fait, ce sont rarement des
>> informaticiens de formation qui les font, ce qui pose non pas un
>> problème de qualité (que des physiciens codent des scripts python ou
>> matlab comme des pieds, c'est pas très grave)
Ouaif... sauf quand il faut les reprendre pour les adapter...
>> mais de positionnement
>> (qu'est-ce que l'informatique, quels sont ces enjeux en 2008, etc).
>>
> Je suis assez d'accord que la "propreté" de la programmation est très
> secondaire dans ce contexte.
> Cependant, une vraie réflexion est nécessaire sur la place de
> l'informatique par grandes filières et les besoins par métier. Par
> exemple, un architecte, un géologue ou un graphiste n'ont absolument pas
> les mêmes besoins vis-à -vis de l'informatique. Sans parler des
> historiens, des sociologues, etc.
Je leur trouverais en commun d'avoir à accéder à des bases de données et
à faire des traitements pour extraire ce dont ils ont besoin... des cours
de SQL?
A+
Laurent.
--
Laurent POINTAL - laurent.pointal@laposte.net