URL: https://linuxfr.org/users/epeios/journaux/le-smartphone-comme-vecteur-d-initiation-a-la-programmation Title: Le smartphone comme vecteur d'initiation à la programmation Authors: Claude SIMON Date: 2022年04月27日T19:00:45+02:00 License: CC By-SA Tags: programmation, apprentissage, atlas_toolkit et python Score: 24 La plupart des gens, en particuliers les plus jeunes, sont très attachés à leur smartphone. D'où l'idée de se servir de cet attachement pour les intéresser à la programmation. Grâce à un IDE en ligne comme [*Replit*](http://replit.com), ou, pour les plus motivés, en installant [*Termux*](https://termux.com/), (ou [*iSH*](https://ish.app/) pour les appareils sous *iOS*), on dispose de la possibilité d'exécuter des programmes en *Python* avec son smartphone. Certes, un smartphone, ce n'est pas vraiment confortable pour programmer, mais est-ce vraiment pire que de programmer avec un [*ZX81* et son clavier à membrane](https://fr.wikipedia.org/wiki/ZX81), pourtant à l'origine de nombreuses carrières dans l'informatique ? ![Sinclair ZX-81](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8a/Sinclair-ZX81.png/260px-Sinclair-ZX81.png) Par ailleurs, que ne ferait-on pas pour pouvoir profiter de son trajet en bus pour écrire du code ou corriger un bug avec son smartphone plutôt que d'être réduit à aller pour la énième fois de la journée sur *Facebook*, *Twitter*, *Youtube*... ? Pour ce qui est de donner du grain à moudre à nos aspirants développeurs, il y a, par exemple, un livre comme [The Big Book of Small Python Projects](https://inventwithpython.com/bigbookpython/) de [Al Sweigart](https://alsweigart.com/). Bon, c'est en anglais, mais pour quiconque envisage la programmation de manière un tant soit peu sérieuse, l'anglais est incontournable. Ce livre propose un certain nombre de programmes relativement courts et simples, accompagnés de commentaires explicatifs, et, pour la plupart, ne nécessitant pas l'installation de modules supplémentaires. Pour arriver à ce résultat, l'auteur de ce livre s'est volontairement limité à une interface texte, comme il s'en justifie dans l'[introduction](https://inventwithpython.com/bigbookpython/introduction.html). Néanmoins, ce choix a un impact, et sur l'apparence, et sur l'ergonomie des programmes. La plupart des gens sont, notamment de par l'utilisation des smartphones, habitués aux interfaces graphiques, et au confort d'utilisation qu'elles apportent. Des programmes avec une interface texte peut les rebuter. Pour éviter cet écueil, j'ai entrepris de modifier les programmes de ce livre pour leur ajouter une interface graphique. Pour rester dans l'esprit du livre, j'utilise, pour ce faire, le [toolkit *Atlas*](http://atlastk.org). En effet, le toolkit *Atlas* est léger et ne nécessite pas l'installation d'autres modules, ce qui lui permet d'être fourni sous forme d'archive *ZIP*. En outre, sa mise en œuvre est peu intrusive, permettant de faire passer la programmation de l'interface graphique au second plan. Je n'ai, pour l'instant, que modifié deux des programmes du livre, mais ils sont emblématiques. Ils s'agit de deux jeux se jouant à deux. Voici l'apparence de ces deux jeux, successivement la version originale, et la version modifiée. Apparence de la version originale du jeu *Four in a row* : !['Four in a row' avec une interface texte](https://q37.info/s/v3hbxwbt.png) Apparence de la version modifiée du jeu *Four in a row* : !['Four in a row' avec une interface graphique](https://q37.info/s/dwgn9ckg.png) Apparence de la version originale du jeu *Mancala* : !['Mancala' avec une interface texte](https://q37.info/s/kmwf9rsn.png) Apparence de la version modifiée du jeu *Mancala* : !['Mancala' avec une interface graphique](https://q37.info/s/c4rcfh4c.png) L'apparence du jeu modifié reste assez rustique pour ne pas trop complexifier le code, mais l'ensemble est quand même nettement plus ergonomique que la version originale. L'interface étant en *HTML*/*CSS*, il est très facile d'en modifier l'apparence. En outre, là où, avec la version originale, les joueurs sont obligés de se passer l'appareil sur lequel tourne le jeu à chaque tour, la version modifiée leur permet de s'affronter en utilisant chacun son smartphone. Tout comme avec la version originale, un joueur peut jouer à la place de l'autre ; il n'y a pas de contrôle à ce niveau-là, toujours pour ne pas complexifier le code. Mais il est tout à fait possible d'implémenter des garde-fous, comme c'est la cas avec ce jeu : . Il est également possible de créer une version qui permette de gérer plusieurs parties en même temps, comme c'est le cas ici pour ce même jeu (sélectionner `k` (*PigGame*)) : . On le voit, les développeurs en herbe ont tout loisir d'améliorer, à titre d'exercice, les programmes fournis dés lors qu'ils maîtriseront les différents concepts afférents. Les programmes que j'ai modifié jusqu'à présent, ainsi que ceux que je modifierais par la suite, sont (seront) disponibles ici : .

AltStyle によって変換されたページ (->オリジナル) /