VI Préface
tôt possible des réalisations personnelles qu’il pourront développer et exploiter à leur guise.
• Nous aborderons très tôt la programmation d’une interface graphique, avant même d’avoir présenté l’ensemble des structures de données disponibles, parce que cette programmation présente des défis qui apparaissent bien concrets aux yeux d’un programmeur débutant. Nous observons par ailleurs que les jeunes qui arrivent aujourd’hui dans nos classes « baignent » déjà dans une culture informatique à base de fenêtres et autres objets graphiques interactifs. S’ils choisissent d’apprendre la programmation, ils sont forcément impatients de créer par eux-mêmes des applications (peut-être très simples) où l’aspect graphique est déjà bien présent. Nous avons donc choisi cette approche un peu inhabituelle afin de permettre au lecteur de se lancer très tôt dans de petits projets personnels attrayants, par lesquels ils puisse se sentir valorisé. En revanche, nous laisserons délibérément de côté les environnements de programmation sophistiqués qui écrivent automatiquement de nombreuses lignes de code, parce que nous ne voulons pas non plus masquer la complexité sous-sous-jacente.
Certains nous reprocheront que notre démarche n’est pas suffisamment centrée sur l’algorithmique pure et dure. Nous pensons que celle-ci est moins primordiale que par le passé. Il semble en effet que l’apprentissage de la programmation moderne par objets nécessite plutôt une mise en contact aussi précoce que possible de l’apprenant avec des objets et des bibliothèques de classes préexistants. Ainsi il apprend très tôt à raisonner en termes d’interactions entre objets, plutôt qu’en termes de construction de procédures, et cela l’autorise assez vite à tirer profit de concepts avancés, tels que l’instanciation, l’héritage et le polymorphisme. Nous avons par ailleurs accordé une place assez importante à la manipulation de différents types de structures de données, car nous estimons que c’est la réflexion sur les données qui doit rester la colonne vertébrale de tout développement logiciel.
Choix d’un premier langage de programmation
Il existe un très grand nombre de langages de programmation, chacun avec ses avantages et ses inconvénients. Il faut bien en choisir un. Lorsque nous avons commencé à réfléchir à cette question, durant notre préparation d’un curriculum pour la nouvelle option Sciences & Informatique, nous avions personnellement accumulé une assez longue expérience de la programmation sous Visual Basic (Microsoft) et sous Clarion (Topspeed). Nous avions également expérimenté quelque peu sous Delphi (Borland). Il était donc naturel que nous pensions d’abord exploiter l’un ou l’autre de ces langages. Si nous souhaitions les utiliser comme outils de base pour un apprentissage général de la programmation, ces langages présentaient toutefois deux gros inconvénients :
• Ils sont liés à des environnements de programmation se’est-à -dire des logiciels) propriétaires.
Cela signifiait donc, non seulement que l’institution scolaire désireuse de les utiliser devrait acheter une licence de ces logiciels pour chaque poste de travail (ce qui pouvait se révéler coûteux), mais surtout que les élèves souhaitant utiliser leurs compétences de