Maquette de couverture : Françoise Rojare
Du pilotage d'un robot qui se déplace sur l'écran pour exécuter des dessins stylisés jusqu'à la manipulation de concepts plus abstraits comme la récursivité, chacun, de l'écolier à l'adulte débutant pourra progresser à son propre rythme jusqu'à développer des applications personnelles.
Stégosaure | Numération égyptienne |
Spirale de Baravelle | Courbe de Peano |
De nombreuses introductions à la programmation reposent sur la connaissance préalable de l'architecture des ordinateurs ou utilisent des notions mathématiques qui ne sont pas à la portée des enfants ou des adultes n'ayant pas une formation scientifique [9]1. (Les petits chiffres surélevés renvoient à une note de bas de page expliquant le mot qui précède. Par exemple, la note qui se trouve en bas de cette page explique l'usage des chiffres entre crochets comme [9].) Nous proposons de procéder autrement.
Nous utilisons le dessin, qui est à la portée de tous. Cette approche est relativement nouvelle dans l'apprentissage de l'informatique, les progrès saisissants de la technologie qui ont permis de mettre à la portée du grand public des micro-ordinateurs dotés d'écrans graphiques très performants ne datant que des années 1980. Il est plaisant de noter que les origines de notre activité graphique remontent à la préhistoire (plus précisément à la période de l'art pariétal2 entre 22000 et 13000 ans av. J.-C.). L'informatique graphique qui a 10 ans va donc nous permettre à 20000 ans d'intervalle de dessiner avec le même plaisir que nos lointains ancêtres.
Ce livre s'adresse à tous. Les enfants des classes maternelles sont capables de faire des dessins stylisés à la main et avec un peu d'imagination, de les reproduire sur l'écran de l'ordinateur en utilisant un programme de dessin interactif (chapitres 1 et 2). Les enfants des classes primaires peuvent écrire des programmes pour réaliser des dessins figuratifs (chapitres 3 à 5). Très vite ils découvriront la facilité avec laquelle ils peuvent programmer l'ordinateur pour faire des dessins géométriques simples basés sur des motifs répétitifs qu'ils n'auraient pas la patience ni la minutie d'exécuter à la main (chapitres 6 et 7). Les collégiens mettront en œuvre leurs connaissances rudimentaires d'algèbre et de géométrie analytique pour écrire des programmes de dessin utilisant des calculs élémentaires et des repères cartésiens (chapitres 8 à 17). Ils trouveront une base intuitive pour mettre en œuvre des concepts qui peuvent paraître abstraits. Les lycéens sont à même d'assimiler des notions plus informatiques comme le codage, voire des notions moins élémentaires comme la récursivité, qui deviennent évidentes par le dessin (chapitres 17 à 22). Les étudiants trouveront du plaisir à comprendre simplement la programmation qui paraît parfois obscure quand elle est présentée trop rapidement en premier cycle universitaire.
Les langages de programmation n'offrant pas les possibilités graphiques souhaitables, nous avons ajouté une bibliothèque à PASCAL3 qui nous permet d'obtenir de façon simple des effets simples (comme les arcs de cercles) ou spectaculaires (comme la peinture) sans être liés à la technologie des écrans graphiques actuels et sans faire appel à des notions avancées de programmation comme les structures de données. Cette bibliothèque ainsi que tous les exemples et programmes solutions des exercices proposés dans le livre sont fournis sur disquette4. Elle offre de nombreuses possibilités qui ne sont pas explorées dans le livre, comme par exemple pour les spécialistes, de créer des programmes interactifs d'apprentissage comme ceux qui sont proposés pour l'addition, les coordonnées cartésiennes et la translation.
Ce livre devrait être lu par étapes successives, en prenant le temps et le plaisir de faire de nombreuses expériences personnelles sur ordinateur, en résolvant des exercices, en modifiant les programmes proposés en solution et en recherchant de nouveaux thèmes de dessin.
Nous donnons en addenda à la fin de chaque chapitre des notes additionnelles destinées aux lecteurs déjà familiers de l'informatique.
Nous introduisons dans ce livre les activités de base de la programmation comme la saisie du texte, l'interprétation, la compilation, l'exécution et la mise au point de programmes. Les notions de programmation sont présentées en PASCAL : structuration des programmes en procédures, itérations bornées, expressions entières, déclarations de constantes, paramètres (passés par valeur), tests, expressions booléennes, itérations non bornées, codages de l'information, expressions rationnelles (réelles), récursivité, variables de types simples et affectations. Notre approche basée sur le dessin permet de donner une intuition graphique à ces notions et évite les problèmes plus complexes de spécification et de correction des programmes (qui sont des évidences visuelles). Les structures de données (tableaux, enregistrements et pointeurs en PASCAL) sont volontairement laissées pour des apprentissages ultérieurs plus élaborés.
L'apprentissage de la programmation à un niveau très élémentaire comme celui qui est proposé dans ce livre permet d'acquérir le sens du passage du concret à l'abstrait, l'intuition des structures formelles, le raisonnement inductif et la capacité à formaliser qui sont à la base de la programmation mais également le point de départ de toute démarche scientifique.
1 Les scientifiques ont l'habitude de `citer leurs sources' en donnant les références aux articles de revues scientifiques et aux livres des auteurs dont ils utilisent les idées. La méthode moderne pour citer les sources est d'utiliser un numéro placé entre crochets (comme par exemple [9]) qui renvoie à une liste de références, placée à la fin du livre, que l'on appelle bibliographie (voir page 281).
2 Peinture sur les parois d'une grotte.
3 Nous utiliserons les compilateurs Turbo Pascal 5.5 ou 6.0 de Borland sur les ordinateurs compatibles IBM PC et le compilateur Turbo Pascal 1.1 de Borland sur les Macintosh.
4 Un bon de commande de la disquette d'accompagnement se trouve à la fin du livre. Pour apprendre à l'utiliser, l'insérer dans un lecteur puis, sur compatible IBM PC taper LisezMoi ou sur Macintosh cliquer deux fois rapidement avec la souris sur l'icône LisezMoi.