Premiers pas
A propos du chapitre
Objectif :
- Comprendre certains enjeux généraux de la programmation
- Execution d'un petit programme sur Basthon
- Comprendre comment on fait du vélo
Modalités :
- Réflexion sur papier (physique)
- un peu de programmation (Basthon)
Prérequis : aucun
Difficulté : facile
Remarque prof : ce chapitre est entièrement dirigé et presque entièrement débranché
Ordinateurs et intuition
Programmer, c'est décrire à un ordinateur les étapes qui permettent de résoudre un problème.
C'est plus compliqué qu'il n'y parait, parce que l'on peut savoir quelque chose intuitivement, mais pour expliquer comment la faire, il faut forcément la comprendre plus en détails.
Et là vous allez me dire :
"Euh ya des choses qu'on peut faire sans les comprendre ?"
Oui. Le vélo par exemple, et la moto aussi, en fait tous les deux roues monotraces. La plupart des gens savent faire du vélo, mais ne comprennent pas vraiment comment ils font.
"MDR on sait comment ça marche un vélo !"
Ah ouais ? C'est une certitude ? Allez, activité !
Activité: petite question sur le vélo
Sur un vélo en mouvement en ligne droite, pour engager (le démarrer, mais pas en sortir !) un virage à gauche, quelle action faut-il faire d'une manière générale (c'est à dire sans technique particulière) ?
- Tourner le guidon à gauche
- Tourner le guidon à droite
- Tourner le guidon à gauche, puis à droite
- Tourner le guidon à droite, puis à gauche
Prenez éventuellement un peu de temps pour réfléchir entre vous.
Solution
C'était la dernière réponse. Tourner le guidon d'abord à droite, puis à gauche.
Si vous avez dit "à gauche", c'était la réponse la plus logique, celle qu'on croit réelle, qu'on a l'impression de faire.
Vous voyez, vous savez faire du vélo, mais vous ne savez pas vraiment comment faire.
Si vous êtes sceptiques, vous pouvez lire les explications détaillées :
explications détaillées
TODO ajouter des schémas
Pour tourner à gauche, vous devez pencher le vélo à gauche :
- Pencher les roues réduit le rayon du virage pour un même angle de guidon (je ne détaille pas ici, c'est de la géométrie plutôt compliquée, demandez moi si vous voulez comprendre l'idée TODO faire extension)
- Déplacer votre centre de gravité à l'intérieur du virage par rapport aux roues permet de contrebalancer la force centrifuge, et donc de garder l'équilibre. Sinon, on tomberait côté extérieur du virage.
TODO schéma
Et c'est là que ça se complique : déplacer son centre de gravité, c'est pas si facile. Parce que quand vous vous appuyez sur le vélo pour vous pencher à gauche, par réaction le vélo penche à droite, et le centre de gravité n'a pas bougé. par rapport aux roues.
Précision
C'est tout de même possible de déplacer son centre de gravité en prenant appui sur le vélo, mais c'est très compliqué et la plupart des gens qui savent faire du vélo sont incapables de le faire de manière suffisament précise pour diriger le vélo.
Donc, d'une manière générale, quand on pilote un vélo, on fait autrement.
Quand vous tombez d'un côté d'un velo à l'arret, c'est presque impossible de rétablir son équilibre sans tourner le guidon.
Alors comment fait-on pour se pencher à gauche ?
On tourne légèrement le guidon vers la droite !
Le vélo se déplace alors vers la droite, mais votre inertie vous maintient à votre position. Et donc, relativement, votre centre de gravité se retrouve a gauche du vélo : vous penchez à gauche. Une fois que vous avez penchez sur la gauche, vous tournez le guidon à gauche, et le vélo tourne à gauche, et vous avec.
TODO ajouter schémas
Si vous voulez vérifier si vous avez bien compris et mémorisé, vous trouverez du RAB1 dans les extensions.
Une des grandes difficultés que vous rencontrerez au début de la programmation, c'est d'arriver à analyser vos intuitions pour les comprendre, et les transformer en explications suffisamment précises.
Mais détendez-vous, les problèmes que l'on résoudra dans ce cours seront bien moins difficiles que de comprendre comment on fait tourner un vélo !
Pourquoi programmer ?
Vous avez peut être une question qui vous vient :
Si c'est plus difficile d'écrire un programme plutôt que de résoudre directement le problème, C'EST QUOI L'INTÉRÊT ?!
L'intérêt, c'est de faire travailler l'ordinateur à notre place :
- Une fois le programme écrit, on peut l'exécuter encore et encore si on a plusieurs fois le même problème à résoudre.
- L'ordinateur peut traiter des problèmes très volumineux très rapidement. Par exemple, trouver une personne à partir de son numéro de téléphone dans une liste de 1 000 000 personnes.
- Couplé à d'autres systèmes, un ordinateur peut permettre de dépasser les limites humaines. Par exemple, un système d'ABS permet d'éviter le dérapage des roues d'un véhicule au freinage en modulant très précisément la force du frein.
- L'ordinateur exécute un programme de manière extrêmement fiable : il suit parfaitement les instructions sans jamais faire d'erreur (par contre, le programme peut être erronné !)
Langage de programmation
Pour écrire un programme, on le décrit à l'aide d'un moyen compréhensible par des humains (schémas, texte, ...) : c'est la source.
Puis on utilise un logiciel qui traduit la source vers un format compréhensible par l'ordinateur.
- Si le logiciel doit lire la source à chaque fois qu'on veut exécuter le programme, on dit que c'est un interpréteur.
- Si le logiciel lit la source une seule fois pour produire une version executable du programme que l'on peut lancer sans avoir besoin de la source, on dit que c'est un compilateur.
La plupart du temps, la source est sous format texte, écrite dans un langage de programmation, qui est plus facile à analyser qu'une langue naturelle comme le français. On parle alors de code source.
Dans ce cours (sauf extensions), on utilise un langage simple mais très populaire : Python.
Interprété
Python est un langage dit interprété, parce qu'il est prévu pour être exécuté par le biais d'un interpréteur.
Premier programme : Python et Basthon
Il y a des tas de manières d'exécuter du code Python. Dans ce cours nous utiliserons Basthon, qui est un éditeur+interpréteur en ligne simple d'utilisation. Si vous avez l'habitude d'utiliser un autre éditeur, et qu'il est disponnible dans le lycée, vous pouvez l'utiliser.
Activité: hello world
Cliquez sur ce lien pour accéder à Basthon.
Vous devriez voir une fenêtre comme suit apparaître :

La fenêtre est, en gros, divisée en deux :
- La partie gauche est l'éditeur de code, c'est là que vous allez écrire le code Python.
- La partie droite est la console, c'est là que votre programme (et l'interpréteur) affichera des choses.
Copiez-collez le bout de code suivant dans la partie éditeur :
Ce petit programme est le Hello world. C'est un des programmes les plus simples qu'il soit possible d'écrire dans la plupart des langages de programmation.
La tradition des cours de programmation veut que ce soit le premier programme qui soit fait exécuter aux élèves.
Il permet, entre autres, de vérifier que l'environnement (éditeur, interpréteur ou compilateur, ...) fonctionne correctement.
Appuyez ensuite sur :

Vous devriez voir du texte apparaître dans la partie console, avec, entre autres, `Hello, world !" :

Félicitation ! Vous venez d'exécuter votre premier programme Python. (Enfin, le premier de ce cours si vous avez déjà utilisé Python.). Et de finir le chapitre.
Extensions
Réflexions sur le pilotage de vélo
Caractéristiques
Objectif :
- Comprendre plus en détails la physique du pilotage d'un vélo/d'une moto
Modalités :
- Réflexion sur la physique
Prérequis : avoir fait l'activité "petite question sur le vélo" dans ce chapitre
Difficulté : facile -> difficile
Activité facile: sortie de virage
Sur un vélo en virage à gauche, pour sortir du virage et se mettre en ligne droite, quelle action faut-il faire d'une manière générale (c'est à dire sans technique particulière) ?
- Ramener le guidon droit
- Tourner le guidon plus à gauche
- Tourner le guidon à droite
- Tourner le guidon plus à gauche, puis le ramener droit
- Tourner le guidon à droite, puis le ramener droit
Solution
4 eme : tourner le guidon plus a gauche, puis le ramener droit.
Tourner plus le guidon vers la gauche a pour effet de ramener le vélo en dessous du pilote, et donc de "redresser" la position, pour être à l'équilibre en ligne droite. Ensuite, ramener le guidon droit permet de garder la ligne droite.
Activité moyenne: Equilibre
Expliquez comment les réflexes permettent de tenir en équilibre sur un vélo qui avance.
Solution
On fait des micro corrections par réflexe, qui nous permettent de tenir le vélo droit :
- si on penche vers la gauche, on tourne le guidon à gauche pour ramener le vélo sous notre centre de gravité
- si on penche vers la droite, on tourne le guidon à droite pour ramener le vélo sous notre centre de gravité
Activité difficile: guidon en butée
Sur la plupart des vélos, le guidon peut généralement tourner avec un très grand angle.
Pour les motos, c'est souvent le contraire. Les motos ont des butées de direction, qui limitent l'angle de rotation du guidon.
Entre autre, ça limite les risques en cas de guidonnage (vidéo), qui est un phénomène de perte de contrôle.
Mais ça pose un problème, en particulier à basse vitesse : si on veut tourner avec un petit rayon, par exemple faire demi tour par la gauche sur une route de campagne pas très large, il faut beaucoup tourner le guidon à gauche pendant le virage, qui se met contre la butée, et ne peut pas tourner plus à gauche.
Expliquez comment redresser la moto sans mettre le pieds par terre dans une telle situation
Solution
On a vu au tout début que se pencher dans les virages avait pour rôle, entre autres, de contrebalancer la force centrifuge que l'on recoit dans le virage, sans quoi on tomberait vers l'extérieur du virage.
Dans la situation décrite, la force centrifuge est parfaitement annulée par notre inclinaison. Si on arrive à augmenter la force centrifuge, elle nous redressera.
La force centrifuge est proportionnelle à la vitesse. Donc, si on accélère en gardant le même angle de guidon, la moto se redresse.
Ca marche aussi en vélo, mais c'est plus compliqué d'accélérer en virage en vélo, donc c'est plus simple de tourner le guidon vers l'intérieur du virage pour redresser.
Approfondissement interpréteur et compilateur
TODO activités ici
Approfondissement syntaxe
TODO activités ici Parler syntaxe formelle, définitions récursives etc.