Deuxième trimestre, nouveaux ateliers : épisode 1, la Programmation

Pour les Ingéniaux, cette fin d’année correspond au début du deuxième trimestre: à cette occasion, nous proposons de nouveaux cours, pour enfants, jeunes et adultes.

Nous allons publier une mini-série d’actualités présentant les apprentissages que nous mettons au centre de nos ateliers.

Épisode 1: la programmation – les algorithmes, les bases des langages informatiques, et l’intelligence artificielle.

Nous proposons un cours de niveau 1 (les vendredis après-midi, de 17h à 18h30) et un cours de niveau 2 (les mercredis après-midi, de 14h30 à 16h).

Qu’apprennent nos élèves pendant un cours de programmation? A créer des algorithmes, à écrire des lignes de code, à faire des expériences avec l’intelligence artificielle… cela vous paraît obscur? Alors continuez à lire et on essaiera de vous donner quelques explications de plus!

> les algorithmes

Un algorithme est une séquence d’instructions, décrivant en détail le comportement qu’on attend d’un ordinateur.

Il pourrait être comparé à une recette de cuisine: si on suit les étapes élémentaires de la recette (l’algorithme), on arrivera au résultat désiré. A chaque étape, on n’a besoin de se concentrer que sur l’étape en cours. C’est simple, et c’est qui permet à des novices en cuisine de réussir des plats qu’ils n’ont jamais faits avant.

De la même manière, grâce à un algorithme, un ordinateur (une machine a priori non intelligente) peut effectuer des opérations qu’il n’avait jamais faites avant, juste parce que le programmeur a pris la peine de les décrire précisément.

Vu qu’un algorithme n’est que la description d’une logique, on se rend compte que, pour en concevoir un, il n’est pas nécessaire d’ “écrire du code”.

Au contraire, il vaut mieux le faire juste avec un morceau de papier ou un tableau blanc, afin de pouvoir traduire ses idées en instructions élémentaires, le plus directement possible.

Dans nos cours…

C’est l’approche que nous suivons aux Ingéniaux: pendant les cours de programmation, avant d’écrire le code, on passe du temps à bien réfléchir aux algorithmes que le code devra traduire. On fait des schémas au tableau blanc, on les discute, on les perfectionne… pour trouver le bon algorithme. Autant de temps gagné avant la phase de “codage” !

Apprendre comment fonctionnent les variables en programmation
Concevoir un algorithme au tableau blanc

> le code

Que veut dire “coder”?

Si on a déjà défini l’algorithme que nous voudrions faire exécuter par l’ordinateur, “coder” signifie traduire l’algorithme en un langage que l’ordinateur peut comprendre.

Ce langage est fait d’instructions élémentaires, des commandes très simples que l’ordinateur peut interpréter sans se tromper. C’est à cette étape que se pose la question du “langage”!

les langages de programmation graphiques

On peut choisir un langage de programmation graphique (c’est bien pour les débutants, et pour cela le propose dans notre cours de niveau 1), tel que Scratch ou Blockly. Dans ce cas, on n’a même pas besoin d’écrire les instructions.

Elles sont déjà écrites, et le programmeur n’a besoin que de les assembler, comme il ferait avec des briques de Lego. Plus de risque de commettre des erreurs de syntaxe (se tromper dans l’orthographe des commandes), donc coder ressemble à un jeu d’enfants.

Mais une fois que nos programmes commencent à prendre de l’ampleur et de la profondeur, les langages graphiques montrent leurs limites. Il devient difficile de maitriser et manipuler un code complexe…

Un example du code Scratch créé pendant nos ateliers
Un example du code Scratch créé pendant nos ateliers
les langages de programmation écrits

A cette étape, on est probablement mûr pour se confronter à un langage de programmation écrit, qui nécessite que le programmeur écrive chaque instruction; en échange, on gagne en puissance, en rapidité et en flexibilité.

Ce n’est pas un hasard si les professionnels du code sont aussi rapides avec leur clavier! Lorsqu’on a pris confiance avec la programmation écrite, on devient capable de traduire ses idées directement en langage informatique. C’est comme si on “parlait” avec l’ordinateur!

Chez les Ingéniaux, nous avons choisi de proposer Python comme langage pour le cours de niveau 2. Simple à apprendre, et en même temps l’un des langages les plus utilisés dans le monde professionnel! On prendra le temps dans un article futur d’explorer toutes les caractéristiques principales de ce langage.

Pour l’instant, retenons que l’apprentissage de Python est une compétence précieuse, non seulement pour ses propres loisirs mais aussi pour son avenir professionnel.

Apprendre la programmation informatique - Les logos de Scratch et de Linux se promènent sur celui de Python
Le monde du codage peut être assez sympathique!

> l’intelligence artificielle (IA)

Vous pensez à des robots futuristes, capables de détrôner l’homme et prendre le contrôle de la Terre? Non, l’intelligence artificielle (IA, ou AI pour les anglophones) est désormais une réalité du quotidien, plus discrète que ce qu’on croirait.

Planifier un trajet avec son navigateur? Appeler une voiture Uber? Faire une recherche sur Internet? Jouer aux échecs contre l’ordinateur? Toutes ces opérations déclenchent des algorithmes d’intelligence artificielle.

une définition de l’intelligence artificielle

On pourrait la définir comme “la capacité d’un ordinateur à prendre des décisions sans intervention humaine”.

Cela va des décisions faciles aux plus complexes.

“Parmi tous les chemins possibles de A à B, je vais toujours choisir celui qui est le plus court” est un exemple de décision simple.

“Compléter la phrase de recherche d’un utilisateur, une fois qu’il a saisi le premier mot” est un exemple bien plus complexe, car la décision dépend de l’historique de l’utilisateur, et même de celui des autres internautes!

l’intelligence artificielle dans nos cours

Dans notre cours de programmation niveau 2, nous allons proposer une introduction à l’intelligence artificielle à travers la création d’un jeu de morpion: les élèves vont développer un programme qui jouera contre eux.

Pour ce faire, ils étudieront tous les possibles choix que l’ordinateur pourrait faire, à chaque étape du jeu. Ils expliqueront également à l’ordinateur les critères nécessaires pour faire le choix optimal: celui qui permet de maximiser les chances de gagner la partie.

Qui va gagner à la fin? Difficile de le dire! Ce qui est certain, en revanche, c’est que les élèves auront appris les premières bases d’une discipline qui est devenue fondamentale dans la technologie moderne.

 

A bientôt pour le prochain épisode!

Francesco

 

Francesco

Fondateur des Ingéniaux!