• Aucun résultat trouvé

Apprendre à programmer avec Python

N/A
N/A
Protected

Academic year: 2022

Partager "Apprendre à programmer avec Python"

Copied!
6
0
0

Texte intégral

(1)
(2)

A Maximilien, Elise, Augustin, Lucille

Colophon

Choisie délibérément hors propos, l'illustration de couverture est un dessin réalisé par l'auteur à la mine de graphite sur papier Canson en 1987, d'après une photographie ancienne. Il représente le yacht de course de 106 tonnes Valdora participant à une régate dans la rade de Cowes en 1923.

Construit vingt ans plus tôt, et d'abord gréé en yawl, Valdora remporta plusieurs trophées avant d'être regréé en ketch en 1912 avec la voilure de 516 m² que l'on voit sur le dessin.

Ce superbe voilier, très estimé par ses équipages pour son bon comportement à la mer, a navigué pendant près d'un demi-siècle.

(3)

Apprendre à programmer avec Python

par Gérard Swinnen

professeur et conseiller pédagogique Institut St Jean Berchmans - Ste Marie

59, rue des Wallons - B4000 Liège

Ces notes peuvent être téléchargées librement depuis le site : http://www.ulg.ac.be/cifen/inforef/swi

Une part de ce texte est inspirée de :

How to think like a computer scientist

de Allen B. Downey, Jeffrey Elkner & Chris Meyers disponible sur : http://rocky.wellesley.edu/downrey/ost

ou : http://www.ibiblio.org/obp

Copyright (C) 2000-2003 Gérard Swinnen

Les notes qui suivent sont distribuées suivant les termes de la Licence de Documentation Libre GNU (GNU Free Documentation License, version 1.1) de la Free Software Foundation. Cela signifie que vous pouvez copier, modifier et redistribuer ces notes tout à fait librement, pour autant que vous respectiez un certain nombre de règles qui sont précisées dans cette licence, dont le texte complet peut être consulté dans l'annexe intitulée « GNU Free Documentation licence », page 283.

Pour l'essentiel, sachez que vous ne pouvez pas vous approprier ces notes pour les redistribuer ensuite (modifiées ou non) en définissant vous-même d'autres droits de copie. Les notes que vous redistribuez, modifiées ou non, doivent obligatoirement inclure intégralement le texte de la licence citée ci-dessus, le présent avis, l'introduction qui suit, ainsi que les sections Preface et Contributor list du texte original américain (voir annexes). L'accès à ces notes doit rester libre pour tout le monde. Vous êtes autorisé à demander une contribution financière à ceux à qui vous redistribuez ces notes, mais la somme demandée ne peut concerner que les frais de reproduction. Vous ne pouvez pas redistribuer ces notes en exigeant pour vous-même des droits d'auteur, ni limiter les droits de reproduction des copies que vous distribuez.

Ces notes sont publiées dans l'espoir qu'elles seront utiles, mais sans aucune garantie.

(4)

Introduction

Les présentes notes ont été rédigées à l'intention des élèves qui suivent le cours Programmation et langages de l'option Sciences & informatique au 3e degré de transition de l'enseignement secondaire belge. Il s'agit d'un texte expérimental qui s'inspire largement de plusieurs autres documents publiés sous licence libre sur l'internet.

Nous proposons dans ces notes une démarche d'apprentissage non linéaire qui est très certainement critiquable. Nous sommes conscients qu'elle apparaîtra un peu chaotique aux yeux de certains puristes, mais nous l'avons voulue ainsi parce que nous sommes convaincus qu'il existe de nombreuses manières d'apprendre (pas seulement la programmation, d'ailleurs), et qu'il faut accepter d'emblée ce fait établi que des individus différents n'assimilent pas les mêmes concepts dans le même ordre. Nous avons donc cherché avant tout à susciter l'intérêt et ouvrir un maximum de portes, en nous efforçant tout de même de respecter les principes directeurs suivants :

L'apprentissage que nous visons doit être adapté au niveau de compréhension et aux connaissances générales d'un élève moyen. Nous nous refusons d'élaborer un cours qui soit réservé à une « élite » de petits génies.

Dans cette option d'études et à ce niveau, l'apprentissage doit rester généraliste : il doit mettre en évidence les invariants de la programmation et de l'informatique, sans se laisser entraîner vers une spécialisation quelconque.

Les outils utilisés au cours de l'apprentissage doivent être modernes et performants, mais il faut aussi que l'élève puisse se les procurer en toute légalité à très bas prix pour son usage personnel.

Toute notre démarche d'apprentissage repose en effet sur l'idée que l'élève devra très tôt mettre en chantier des réalisations personnelles qu'il pourra développer à sa guise.

L'élève qui apprend doit pouvoir rapidement réaliser de petites applications graphiques.

Les étudiants auxquels on s'adresse sont en effet fort jeunes (en théorie, ils sont à peine arrivés à l'âge ou l'on commence à pouvoir faire des abstractions). Dans ce cours, nous avons pris le parti d'aborder 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 nous observons 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 à nos élèves de se lancer très tôt dans de petits projets personnels attrayants par lesquels ils puissent se sentir valorisés. Nous leur imposerons cependant de réaliser leurs projets sans faire appel à l'un ou l'autre de ces 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-jacente.

Dans notre démarche, nous souhaitons aussi familiariser les étudiants le plus tôt possible avec le concept informatique d'objet, approché par étapes successives. Nous leur ferons d'abord utiliser en abondance divers types d'objets préexistants (et notamment des objets graphiques), afin qu'ils apprennent à exploiter petit à petit les méthodes et attributs de ces objets. La construction d'objets personnalisés sera envisagée plus tard, et progressivement, lorsque nous serons assurés que les notions de base sont déjà bien en place.

(5)

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. L'idéal serait certainement d'en utiliser plusieurs, et nous ne pouvons qu'encourager les professeurs à présenter de temps à autre quelques exemples tirés de langages différents. Il faut cependant bien admettre que nous devons avant tout viser l'acquisition de bases solides, et que le temps dont nous disposons est limité. Dans cette optique, il nous semble raisonnable de n'utiliser d'abord qu'un seul langage, au moins pendant la première année d'études.

Mais quel langage allons-nous choisir pour commencer ?

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 (Micro$oft) et sous Clarion (Top$peed). Nous avions également expérimenté quelque peu sous Delphi (Borl@nd).

Il était donc naturel que nous pensions d'abord exploiter l'un ou l'autre de ces langages (avec une nette préférence pour Clarion, qui reste malheureusement peu connu).

Si nous souhaitons les utiliser comme outils de base pour un apprentissage général de la programmation, ces langages présentent toutefois deux gros inconvénients :

Ils sont liés à des environnements de programmation (c'est-à-dire des logiciels) propriétaires.

Cela signifie 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 risque de se révéler assez coûteux), mais surtout que les élèves souhaitant utiliser leurs compétences de programmation ailleurs qu'à l'école seraient implicitement forcés d'en acquérir eux aussi des licences, ce que nous ne pouvons pas accepter.

Ce sont des langages spécifiquement liés au seul système d'exploitation Windows. Ils ne sont pas

« portables » sur d'autres systèmes (Unix, MacOS, etc.). Cela ne cadre pas avec notre projet pédagogique qui ambitionne d'inculquer une formation générale (et donc diversifiée) dans laquelle les invariants de l'informatique seraient autant que possible mis en évidence.

Nous avons alors décidé d'examiner l'offre alternative, c'est-à-dire celle qui est proposée gratuitement dans la mouvance de l'informatique libre1. Ce que nous avons trouvé nous a enthousiasmés : non seulement il existe dans le monde de l'Open Source des interpréteurs et des compilateurs gratuits pour toute une série de langages, mais le véritable cadeau consiste dans le fait que ces langages sont modernes, performants, portables (c'est-à-dire utilisables sur différents systèmes d'exploitation tels que Windows, Linux, MacOS ...), et fort bien documentés.

Le langage dominant y est sans conteste C/C++. Ce langage s'impose comme une référence absolue, et tout informaticien sérieux doit s'y frotter tôt ou tard. Il est malheureusement très rébarbatif et compliqué, trop proche de la machine. Sa syntaxe est peu lisible et fort contraignante.

La mise au point d'un gros logiciel écrit en C/C++ est longue et pénible. (Les mêmes remarques valent aussi dans une large mesure pour le langage Java).

1 Un logiciel libre (Free Software) est avant tout un logiciel dont le code source est accessible à tous (Open source).

Souvent gratuit (ou presque), copiable et modifiable librement au gré de son acquéreur, il est généralement le produit de la collaboration bénévole de centaines de développeurs enthousiastes dispersés dans le monde entier.

(6)

Cliquez ici pour telecharger le PDF complet

Références

Documents relatifs

la caserne? Des objets circulent à l'intérieur des collecteurs et trahissent ceux qui pensaient les faire disparaître à tout jamais. Deux éléments cependant semblent

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

Mais c'est aussi l'occasion de constater l'existence d'une autre opposition qui est, elle, indépendante du contexte : que ce soit dans cette Maison brahmane ou dans les centres

نيرخلآا ذيملاتلا لكاشم لح ف اهفم 18 / هعم فوقولاب كلذو قهارملا ذيممتلاب مامتهلاا همكاشم لح ف هكارش او فطمب هعم لماعتلاو همكاشم ف نسلا

ثادحأ ذنم 11 ربمتبس 2001 .م نأ ذإ ةرهاظلا هذه ةيلماع ةرهاظ يه امنإو ،اهنيعب ةيميلقإ ةعومجم وأ ةدحاو ةلود ىلع رصتقت مل علا يف عارصلل ي ساسلأا لكشلا

Pour Simone Weil, le travail est à la fois confrontation à la douleur (en ce qu’il est une expérience de la nécessité, comparable à la mort) et expérience fondamentale par

Ce groupe, constitué de Bravais, du dessinateur Louis Bevalet, de l’astronome et physicien Victor Lottin, ainsi que de deux physiciens suédois, choisit d’hiverner au village de

ةساردلل يرظنلا راطلإا 06 يداصتقلاا ومنلاو ةلاطبلا عيضاولد يقيبطتلا راطلإا :نياثلا ثحبلدا .اهفادىأ فلاتخبا بيلاسلأاو تاودلأا في اوفلتخا