Warning: Cannot modify header information - headers already sent by (output started at /home/gillesbld/www/weblog/inc/config.php:41) in /home/gillesbld/www/weblog/inc/clearbricks/common/lib.http.php on line 222

Warning: Cannot modify header information - headers already sent by (output started at /home/gillesbld/www/weblog/inc/config.php:41) in /home/gillesbld/www/weblog/inc/clearbricks/common/lib.http.php on line 224

Warning: Cannot modify header information - headers already sent by (output started at /home/gillesbld/www/weblog/inc/config.php:41) in /home/gillesbld/www/weblog/inc/public/lib.urlhandlers.php on line 65

Warning: Cannot modify header information - headers already sent by (output started at /home/gillesbld/www/weblog/inc/config.php:41) in /home/gillesbld/www/weblog/inc/clearbricks/common/lib.http.php on line 247
Tag - enseignement - Embedded weblog

Embedded weblog

Aller au contenu | Aller au menu | Aller à la recherche

Tag - enseignement

Fil des billets - Fil des commentaires

vendredi, septembre 14 2012

de l'option informatique au lycée

Le besoin d'un nombre de caractères supérieur à 140 sort ce blog du frigo.

J'ai commencé l'informatique très tôt, à 7 ans (comme un certain nombre de geeks), sur Atari ST, avec du Basic (petite pensée pour Dijkstra). Je n'ai pas fait grand chose, à vrai dire, ma vraie passion était ailleurs, dans l'électronique et la robotique. Au collège, dans le cours de techno, divisé en plusieurs activités durant l'année (la période électronique où l'on construit l'amplificateur sonore, la période de dessin où l'on se demande ce que l'on fiche... Et la période d'informatique), le professeur de techno (quand j'y pense, j'en ai eu quatre, mais une seule année m'a vraiment marqué, à ce niveau) s'est entrepris de nous former à l'informatique. Il y avait les vieux PC dans une salle dédiée mais standard, et des PC neufs dans une salle coffre-fort ; les premiers équipés de DOS, les seconds de Win3.1 — à l'époque, je ne comprenais pas pourquoi on travaillait déjà sur ces vieilles bouses alors que mon Atari était largement supérieur. Le cours ? Je me souviens avoir passé 1h30 à recopier un programme en Basic (encore !... Du Qbasic cette fois, il me semble), pour faire une bannière rotative. On ne nous avait pas vraiment expliqué comment "ça marchait", ni l'algorithmique. L'ennui total.

En revanche, lorsque je fus en 4ème, à la maison, on changea l'Atari pour un PC, 2Ghz, 2Go de disque dur, 32Mo de RAM (quoique, je crois qu'au début il devait y en avoir 16, on l'a boosté plus tard, pour que Win98 puisse fonctionner). Une bête de course, un truc de fou. C'est l'époque où tout les gens de la classe moyenne "éclairée" (pas ceux qui se demandaient encore à quoi pouvait bien servir un tel engin) commençaient sérieusement à s'équiper. Et mon paternel passa à VB3, ce sur quoi je suivi, avant de migrer vers VB6 assez rapidement — moi aussi (en revanche, il passa aussi rapidement au C, mais là, moi non : le lycée, beaucoup de boulot, le livre pour apprendre le Borland qui devenait très, très gros). J'ai donc fait du Visual Basic durant plusieurs années, et j'ai appris par moi-même, avec l'aide Microsoft fournie (il faut imaginer que VB3, c'était quelque chose comme 21 disquettes pour l'installation), et un bouquin sur VB5 (on n'avait pas pu trouver mieux, même à Marseille, il fallait faire 10km pour le trouver).

Alors au lycée (lycée Thiers de Marseille, je précise — élèves sur-sélectionnés), quand j'ai vu l'option informatique, naturellement, je l'ai prise. J'avais d'autres options, en plus de la section européenne, et notamment la TSA (je ne sais plus comment ça s'appelle à présent, ces Techniques des Systèmes Automatisés, l'électrotechnique en somme). Déception, cependant : loin de programmer, nous avons appris à manier Word, puis Excel. Ça m'a bien resservi, mais c'était un mode d'apprentissage de secrétaire, pas d'informaticien. La programmation, c'était par soi-même sur la calculatrice, la TI-85 (puis la 89, ah, quelle puissance !). Cependant, en 1ère, les choses ont changé : de la programmation, enfin ! Un cours de deux heures par semaine, en deux fois une heure. La première le lundi de 17h30 à 18h30 (soit après les trois à quatre heures de cours de l'après-midi, et les quatre à cinq du matin), parce qu'horaire commun à toutes les 1ères, une quarantaine de personnes, ensuite divisées en deux groupes, entre midi et deux cette fois, pour les TPs — alors que l'autre heure était pour la théorie. Programmation en Pascal. À la fin de l'année, j'ai pu faire un serpent et d'autres trucs amusants. En VB, j'étais pourtant allé beaucoup plus loin question résultat, mais on ne manipule pas de tableaux, en VB (c'est possible, évidemment, mais on n'y est pas vraiment encouragé, on peut largement s'en passer par les truchements du langage). C'était un prof de maths reconverti qui enseignait, je crois, mais il ne devait faire que ça dans le lycée, d'ailleurs il me semble que c'était un autre prof de maths qui faisait faire les TPs (les deux ayant la quarantaine).

C'est cet autre prof de maths qui s'occupait de l'option informatique en Terminale. Et puis on nous a obligé choisir au bout de quelques semaines : soit informatique, soit TI (technologie industrielle, la suite de la TSA en changeant le nom à partir de la 1ère) ; avec le même horaire du mardi de 17h00 à 19h00 (plus un mercredi aprem entier de temps à autre pour la TI, puisque c'était censé être 3 heures par semaine), pour rendre les deux options impossible à cumuler. Nous étions deux à avoir gardé les deux options. Nous avons tous les deux choisi de garder la TI et d'abandonner l'informatique. Je me souviens très bien des raisons de ce choix : on apprenait au final mieux par nous-même à programmer, alors qu'en TI, on s'éclatait, on apprenait un nombre démentiel de choses.

En informatique, le prof de maths ne nous a jamais expliqué comment marche une machine. En TI, les profs étaient des ingénieurs reconvertis, ils savaient de quoi ils parlaient, ils avaient une approche pratique forte, on avait envie d'apprendre le métier d'ingénieur. Pour suivre le cours de TI, il fallait avoir choisi l'option dès la 2nde et ne jamais avoir lâché (on était 120 en 2nde, plus que 20 en Terminale — et en section européenne, de 80 on était passé à 15) ; en informatique, on pouvait commencer l'option en Terminale (même s'il valait bien mieux avoir déjà pris l'option en 1ère), ce qui impliquait que le prof devait recommencer par les bases. En informatique, il fallait rendre un projet franchement simple noté par le prof, et les bonnes notes pleuvaient assez gratuitement ; en TI, il y avait une vraie épreuve écrite de trois heures sur des problématiques d'ingénieur, c'était du costaud (et j'ai tout de même eu 20).

En prépa, le problème s'est de nouveau posé : nous avons tous commencé par la SI (Sciences de l'ingénieur), et on nous a ensuite donné le choix, au bout de quelques semaines (peut-être un trimestre), de basculer sur l'option informatique (choix à faire pour les deux ans, aucun retour en arrière possible, un seul cours de test en info pour se décider). Cette option étant dispensée par mon prof de maths à l'ensemble des trois classes MPSI et trois MP, en transversal, ce qui collectait une quarantaine d'élèves au final de chaque niveau (sur 150). En SI, c'était un ingénieur, formé en école d'ingénieur et devenu spécialement prof de SI pour les prépas, qui dispensait le cours. Mais j'en ai eu un peu marre, ayant déjà fait une partie — la plus intéressante — en TI, et la matière étant assez pourrie de calculs encore plus approximatifs qu'en cours de physique (ce n'est pas peu dire...). J'ai donc opté pour l'informatique, et j'y ai fait des choses assez passionnantes, comme reconstruire la logique avec trois états, pour une application à l'informatique quantique, et ce en DS de quatre heures. On y a appris le CamL et on a fait du Mapple — j'ai très largement préféré le CamL. J'ai même poussé la logique jusqu'au bout en prenant le TIPE d'informatique, ce que seule une quinzaine de personnes ont fait. J'ai mené un projet de deux ans sur les algorithmes génétiques, et j'ai codé un voyageur du commerce. En CamL ? Non, en VB6. En deux ans, deux fois deux heures de cours par semaine, nous n'avons jamais fait de OCamL, ni géré d'affichage graphique. Ça laisse rêveur l'ingénieur informatique que je suis devenu par la suite...

Choisir l'informatique comme option puis en TIPE, c'était se fermer des écoles, notamment Centrale et les Mines, nous avait-on prévenu. Tout simplement parce que les quotas sur ces épreuves ne reflétaient pas la proportion d'étudiants partagés entre informatique et SI — et pourtant, il n'y avait pas grand monde en informatique, ce truc un peu nouveau dont un ne savait pas trop quoi faire (en 2002 : l'ordinateur n'existant que depuis 50 ans, il faut comprendre, n'est-ce pas ? Pendant ce temps-là, au MIT et à Berkeley...). Certaines écoles faisaient clairement de la discrimination négative forte envers ceux qui avaient choisi de se spécialiser en informatique. Ayant royalement raté ma prépa, j'ai même poussé le vice encore plus loin : j'ai fait l'EPITA, l'école des geeks, encore malaimée à l'époque (on lui refusait la CTI avec une force assez démentielle : les romanichels, vous savez ?).

Et pour la première fois de ma vie, j'ai eu des profs d'informatique spécialisés en informatique, des vrais informaticiens, pas des recyclés. Au début, on m'a demandé de faire la pré-rentrée, et je n'ai pas compris pourquoi, ayant fait tellement de spécialisation et de bidouillage par moi-même ; c'était finalement loin d'être inutile. À la rentrée et dans les 15 jours qui ont suivi (la fameuse piscine...), j'ai pris conscience du gouffre démentiel qui me séparait de la vraie maîtrise de l'outil informatique. Les 15 jours suivant, j'en ai appris plus que durant toute ma vie jusque-là.

Alors quand je vois qu'on réinvente une option informatique au lycée, pour les Terminale S pour le moment, avec quelques heures (deux par semaine), où les professeurs sont des matheux, des biologistes ou des physiciens qu'on a formé le temps d'un été à l'INRIA, eh bien je suis TRÈS partagé. C'est bien, il y a un effort, dans la réinvention de cette option qui existait DÉJÀ il y a 10 ans, et que l'on avait sauvagement et injustement supprimé (il faut dire qu'il n'y avait pas grand monde, en France, qui la proposait, et que personne n'y comprenait rien...). Mais on revient à la case départ, celle dont je suis issu. Et on l'aura compris, à la lumière de mon parcours, je suis très sceptique.

Les professeurs de TI et de SI sont de vrais ingénieurs, pas des reconvertis. Mais l'informatique est toujours considéré d'une telle manière qu'elle n'accède pas au statut de matière, c'est une activité qu'on peut confier à des gens qui bidouillent le week-end et que l'on va former durant 24 heures par un chercheur dans son laboratoire (certes, c'est l'INRIA, mais quand même). On va parler d'éthique sur Facebook et de programmation objet, de neutralité des réseaux et d'allocation mémoire (non, en vrai d'algorithmie pour faire des additions, j'en suis tout excité). Le tout en 70 heures au mieux dans l'année (et en tout, puisque pour terminales uniquement), dans un lycée sur cinq, parce que surprise !, on n'a pas trouvé assez de profs volontaires à recycler. Du bon sentiment, il y en a. C'est mieux ficelé qu'avant, il y a même un manuel (mais on utilisait très bien un très bon bouquin sur Pascal à l'époque, ou "l'option informatique en classe prépa" aussi). Mais franchement, je suis dubitatif. Ce n'est pas avec de l'enthousiasme qu'on réussit les choses : c'est nécessaire, mais loin d'être suffisant.

Je suis professeur en informatique depuis maintenant cinq ans. J'ai été étudiant pendant trois. Il y a une énorme différence en école d'ingénieur par rapport à la prépa et la fac (hormis les sections "professionnalisante" — les autres sont des sections à chômeurs, a contrario, ou à docteurs-pour-la-fac, ce qui revient assez souvent au même) : en école d'ingénieur, les cours "pratiques" (et ils sont nombreux) sont dispensés par des professionnels, et souvent pas n'importe qui, parce que pour s'adapter aux agendas en journée il vaut mieux être indépendant, ce qui implique d'avoir les épaules très solides pour trouver du boulot par sa seule réputation dans le milieu. Et je peux vous dire que les écoles d'ingénieur ne paient pas beaucoup (dans l'absolu, ce n'est pas mauvais, mais une fois que l'on prend en compte le déplacement pour quelques heures à peine, la préparation parce que le nombre d'heures et le niveau des étudiants n'est jamais le même d'une école à l'autre, la remise à jour des slides pour cause d'évolution de la matière, et la correction de copies au mieux payées au lance pierre, c'est tout à coup beaucoup moins bien...). Eh bien on le fait parce qu'on aime ça, parce qu'on aime former (et potentiellement pour étoffer son propre réseau, petit piou-piou deviendra grand).

Je suis prêt, par amour et dévotion à l'informatique, à aller me faire payer au lance-pierre (mais pas trop non plus, faut pas déconner, et merci de défiscaliser) dans un lycée pas trop éloigné de chez moi, pour filer deux ou trois heures de cours par semaine (si ça peut prendre une journée, c'est mieux pour la facturation). Je suis certain que l'on peut trouver des professeurs d'écoles d'ingénieur qui bossent dans des labos pour les dépêcher une journée en lycée. Ou des vieux informaticiens qui ont tout vu dans leur vie et qui pourraient finir leurs carrières à transmettre leur savoir et leur expérience (ce sont mes préférés, j'en connais un bon nombre, je les adore, les écoles d'ingénieurs savent très bien les récupérer d'ailleurs).

Je suis persuadé qu'il y a de meilleures solutions que de recycler de gentils professeurs qui ne doivent même pas imaginer les efforts colossaux qu'il faut faire pour être un informaticien brillant (et ce même si je sais très bien que RMS était prof de physique à la base). On demande un niveau bac+4 dans une discipline pour y enseigner, après avoir passé le CAPES, ou mieux, l'Agreg. On embauche déjà des ingénieurs pour dispenser des cours de TI/SI. Mais en informatique, non. Certes on manque d'informaticiens, mais c'est un problème de poule et d'oeuf, à force d'avoir considéré la discipline comme celle de pestiférés, de sous-ingénieurs, voilà où nous en sommes arrivé. Il faut donc investir, et d'ici cinq à sept ans (le temps de terminer le bac+5), on verra des résultats qui viendront nourrir naturellement la machine. Ça, ce serait un vrai effort !

À la place, on va prendre de gentils amateurs, saupoudrer un peu de tout et n'importe quoi, pour faire les mêmes erreurs qu'il y a dix ans. Alors je vais regarder mon art être encore une fois bafoué (avec de bons sentiments, cette fois), et très probablement échouer dans la mission annoncée. Et on pleurera encore.

Disclaimer : je suis une Cassandre assez efficace.

jeudi, novembre 12 2009

conférence Paris8, deuxième

Pile poil un an après ma conférence à Paris 8, me revoilà au même lieu, toujours sous le regard d'Isis Truck, et celui d'une assemblée assez nombreuse et hétéroclite. Début de conférence retardé pour cause de câble manquant (ma faute, c'était dans mon sac, en plus...) et de projo à aller chercher à l'autre bout de St-Denis l'université, j'aurai tout de même bien parlé deux bonnes heures, ce qui me fait penser que je devrais peut-être songer à une version "light" -- pas gagné. Voici en tout cas les slides de la conférence Paris 8 2009 remis à jour (c'est-à-dire sans coquille).

Encore une fois, je remercie l'équipe de Paris 8 pour m'avoir si sympathiquement accueilli.

lundi, mars 23 2009

un troll peut cacher bien des vérités

Cela faisait longtemps que je n'avais point trouvé sujet à troll, et même si ce n'est pas vendredi, voici un billet sur une pile d'appel Java pour le moins... impressionnante. Même en ruby, on ne fait pas mieux, même si c'est déjà beaucoup. D'autant que nous ne somme pas encore dans le code de l'interpréteur. Cependant, il faut paraît-il minorer pour le Java : la pile présentée est celle "virtuelle" (correspondant aux sources), et non la "réelle" qui peut être bien plus optimisée ; on n'en demeure pas moins songeur.

Faut-il crier haro sur le Java pour autant ? (je rappelle que nous sommes sur un blog embarqué) Un ingénieur très expérimenté en informatique industrielle/embarquée (ça tombe bien) dit que non. Et il détaille très longuement. J'aurais tendance à appuyer cet argumentaire, mais constate que l'Ada est tout de même plus sympathique que le Java (même si les effets de bords y sont bien plus aisés, par exemple parser des chaînes de caractères en Ada est à la limite de la calamité). En attendant, chacun sait mon aversion pour le C (d'autant que je le maîtrise parfaitement, sinon je ne pourrais en faire état :)  ). De même, des implémentations "solidifiées" de Java se comptent au nombre de deux (au moins, il faut voir où en est Sun aussi) depuis bien des années maintenant, et je n'ai pas l'impression qu'elles suscitent un grand engoument ; on vérifiera cela sur le stand d'Aonix (qui n'hésite pas à comparer Ada et Java) au prochain salon RTS.

Vers la fin de cet argumentaire très intéresant que j'ai cité, on trouve ceci :

One of the biggest lessons I've learned in my many years of working, interviewing, and managing projects is that specific technical skills are far less important than outlook and character. Technical skills are the easiest skills to teach. They're also the skills that must be updated and replaced regularly.

Le hasard voulait que je tienne précisément le même discours fort récemment, ce week-end pour être précis. Le problème est alors l'enseignement de cette partie très importante du métier de l'ingénieur (à tel point que l'évolution de carrière tend à en faire l'unique sujet, alors que la technique "pure" disparaît du champ d'action à plus ou moins court terme) : pour moi, cette formation de l'esprit passe par du retour d'expériences à travers de la veille technologique et de l'étude de marché (mêler des cas réels à des graphes d'études), par exemple. Simplement, ça ennuie toujours les étudiants...  :)

jeudi, décembre 18 2008

conférence Paris8 (mais cette fois, ce n'était pas moi)

Non, c'était Pierre Gronlier, un plus-que-fort bon ami de mes années d'étude à l'EPITA, qui après avoir brillamment obtenu son diplôme spécialisé dans le logiciel embarqué et temps-réel (je précise, parce qu'on était classé au même niveau, donc je m'envoie indirectement des fleurs), a continué très originalement sur un master à l'ENS Cachan. Spécialité : le traitement de l'image. Tout un programme !

Coopté lors de ma propre conférence auprès de la gente Isis Truck -- qu'il est toujours un plaisir de revoir --, je peux me targuer d'avoir aussi recommandé Basile Starynkevitch pour le 26 janvier prochain, comme quoi je devrais penser à me reconvertir en agence (ça dépendra de mon EAD, hum :D ) ; en revanche, je ne suis pour rien dans la programmation de Loïc Dachary du 2 février suivant, mais le monde est décidément petit. Ce qui est certain, c'est que pour une première expérience, ce fut fort bon. La conférence a porté sur le codage vidéo (et non l'encodage, pensons aux apparatchik de l'orthographe françoise, même si la subtilité est tellement subtile que...), car Pierre travaille pour Actimagine. Le lien avec l'embarqué est évident : le but premier est de permettre une décompression vidéo de leur propre format, Mobiclip, équivalent en qualité au h264, sur des appareils déjà en circulation et non prévus pour (CPU pas assez puissant et GPU absent), ou disposant de peu de batterie : téléphones, consoles vidéos, etc. Bon, c'est pas libre, mais franchement, la démonstration est assez bluffante pour ne pas dire que ça pue, à moins d'être malhonnête (et puis, il y a aussi des choses pas libres qui puaient, et qui une fois libérés sentent toujours fort, Java par exemple, et le reconnaître vous empêche d'être qualifié d'ayatollah du libre, alors...). En revanche, aussi excellent soit le produit, il serait bien de penser à une version Linux autre que celle de l'ami Pierre sur son PC. Bref...

Pierre a parlé d'à peu près tout, et de fait ça a duré : après avoir galéré sur la ligne 13 et être arrivé à 18h20 (18h00 en prévision, c'est tôt, mais bon...), la présentation a terminé bien après 20h00 (une bouteille entière d'une célèbre boisson désaltérante fut sacrifiée). Différences de format de câbles, d'affichage, de codecs, subtilités afférentes au codage vidéo -- le gamma et ses histoires ubuesques, entre autres héritages-boulets que l'on traîne toujours --, on aura même parlé de la perception visuelle avec une plongée dans notre capteur oculaire portatif (qui peut cependant aussi servir à la drague). Comme les slides sont disponibles, il est inutile de s'étendre.

Mais louons tout de même cette forte introduction-et-plus à ce sujet plus passionnant que ça en a l'air de prime abord (quoique les cours de traitement de l'image n'étaient pas mes préférés, j'ai toujours préféré les manchots en boîte), et surtout que l'on peut être amené à croiser un jour ou l'autre : outre la petite digression dans l'échec de la DVB-H en France (et il se trouve que j'ai bossé sur l'implantation de la DVB-SH : mais en l'occurrence, le simulateur de communication satellite avec le récepteur-retransmetteur terrestre), la partie sur la transmission télévisuelle m'aura rappelé mon passage dans les services de Philips l'année dernière (aujourd'hui racheté par Pace), où j'ai dû ingurgité dans le métro les bases du métier, avec le très bon ouvrage maison (on y parle beaucoup d'OpenTV, de fait, qui comme l'indique son nom est très fermé -- c'est ce qui fait tourner C+, par exemple). Alors il est toujours bon, pour sa culture, de savoir de quoi l'on parle. Surtout lorsque les STB, les télés, les lecteurs DVD et j'en passe migrent tous peu à peu sous Linux (et même les retransmetteurs de DVB-SH, donc...).

J'invite donc tout un chacun à découvrir les 10Mo de slides de Pierre, que je peux encore remercier au passage.

mardi, novembre 11 2008

conférence Paris8

Dans le cadre des conférences menées au sein du département d'informatique de l'Université Paris 8 (Master professionnel Informatique des Métiers et des Applications), j'ai pu mener auprès des étudiants de Master (et notamment les M2 spécialisés en Informatique et Systèmes Embarqués), une conférence sur Linux embarqué. Sujet qui recouvre toujours plus que Linux mais le libre en général, même si notre kernel favori constitue évidemment l'essentiel du sujet. Voici donc les slides sous licence libre FDL, au format OpenOffice.org (3,2mo) et au format pdf (1mo). J'ai aussi effectué une démonstration avec la carte SBC2440, dont on trouvera des détails par là.

Je tiens à chaleureusement remercier Isis Truck pour avoir organisé cette rencontre avec un public nombreux (une quarantaine ou cinquantaine d'étudiants, dirais-je). La séance de questions fut assez brève, mais il est tout à fait possible d'en poser ici-même en commentaire. Mon attention a été attirée sur QNX, microkernel (Neutrino) et système d'exploitation complet certes très connu (de nom du moins) dans le milieu industriel, mais pas si répandu que cela, du moins pas autant qu'il ne devrait l'être si l'on considère ses performances objectives ; après avoir pris connaissance de la licence prise de tête pour une utilisation non-commerciale, je pense qu'il ne faut pas chercher plus loin l'explication du succès de Linux sur QNX, pourtant présent sur le marché depuis le début des années 80, et ayant commencé à s'ouvrir trop tardivement, après la montée en puissance constatée de Linux (virage qu'ont dû aussi prendre WindRiver ou LynuxWorks, ce dernier ayant changé de nom pour l'occasion en ajoutant un "y").

C'est ainsi qu'encore une fois, malgré les incertitudes qui règnent dans les esprits à son sujet, la licence GNU/GPL se montre supérieure : le même constat peut en effet être observé avec le système BSD, longtemps tout à fait meilleur que Linux sur tous les points, mais qui n'arriva jamais à percer, malgré plus de 10 ans (si ce n'est 15) d'avance dans le développement. Aussi, le micronoyau L4, projet universitaire lancé en 99 et dont la version 1.0 date de 2003, a déjà été récupéré plusieurs fois, notamment par l'équipe d'OpenKernel-Labs pour OKL4, le projet de paravirtualisation temps-réel pour l'embarqué courroné de succès. Son secret ? L4, outre qu'il est intelligemment et efficacement conçu, est sous GNU/GPLv2 (additionné d'une licence commerciale, comme Qt) depuis son lancement, tout simplement.