En Science informatique, la programmation (ou le codage) désigne toutes les étapes d’un programme informatique. Pour cela, nous utilisons des langages de programmation.
Traduction d’un algorithme dans un langage de programmation afin de le faire exécuter par une machine.
Lexique du PER Éducation numérique
Vidéo
Langage de programmation
Ensemble codé de signes qui permet d’exprimer un algorithme sous forme de programme informatique pour le faire exécuter par un ordinateur. C’est un langage compréhensible à la fois par l’homme et par la machine.
Il existe plusieurs langages de programmation comportant chacun ses règles et conventions. Deux types de langage sont utilisés : les langages textuels permettent de composer des programmes en écrivant des lignes de texte (par exemple Python, Java, etc.); les langages visuels permettent de concevoir des programmes avec un assemblage d’objets graphiques (par exemple Scratch, Blockly, etc.). Les langages visuels permettent d’apprendre les bases de la programmation.
Glossaire Plan d’action numérique
Mais, pas d’inquiétude ! Pour être programmateur, il n’est pas nécessaire de tous les connaitre. 😉
Durant leur parcours scolaire, vos élèves seront initiés au codage avec de la programmation visuelle, appelé aussi VPL (visual programming).
Un VPL est un type de langage qui utilise des icônes, des symboles et des boutons afin d’illustrer visuellement le concept de codage généré par l’ordinateur.
Un des VPL les plus connus est Blockly qui est utilisé pour Scratch.


Différents types de programmation
Il existe plusieurs manières de programmer.
Durant les deux premiers cycles de la scolarité, vos élèves verront la programmation séquentielle et la programmation événementielle. Mais il existe aussi beaucoup d’autres types de programmation.
Programmation séquentielle
La programmation séquentielle est un sous-ensemble de la programmation impérative où les instructions sont exécutées une après l’autre dans l’ordre exact où elles sont écrites.
Le comportement du programme est facile à prévoir et à comprendre, car il suit un chemin linéaire.
De plus, il n’y a pas de branches conditionnelles ni de boucles ; chaque instruction suit simplement la précédente.
Analogies
- Recette de cuisine : Pensez à suivre une recette de cuisine. Vous commencez par l’étape 1, puis passez à l’étape 2, et ainsi de suite jusqu’à ce que vous ayez terminé.
- Liste de tâches : Imaginez une liste de choses à faire. Vous faites chaque tâche dans l’ordre de la liste :
1. Préparer le petit-déjeuner
2. Aller au supermarché
3. Faire le ménage
Programmation événementielle
En programmation événementielle, la séquence d’instruction est déterminée ou modifiée en permanence par les événements.
Analogies
- Organiser une fête : Imaginez que vous organisez une fête. Vous avez préparé différentes activités, et chaque activité commence lorsqu’un événement particulier se produit. Par exemple, lorsqu’un invité arrive, vous l’accueillez ; lorsqu’il est l’heure du dîner, vous servez le repas ; lorsqu’un invité souffle sur les bougies d’anniversaire, vous commencez à chanter “Joyeux anniversaire”.
- Réagir à la sonnette de la porte : Pensez à être à la maison et à entendre la sonnette de la porte. Lorsque la sonnette retentit (l’événement), vous allez ouvrir la porte (l’action).
Pour aller plus loin
u003cdivntttntttclass=u0022so-widget-sow-accordion so-widget-sow-accordion-default-d9295f5bfa93u0022ntttnttu003eu003cdivu003entu003cdiv class=u0022sow-accordionu0022u003entttu003cdiv class=u0022sow-accordion-panelu0022nttt data-anchor-id=u0022les-autres-types-de-programmationu0022u003enttttu003cdiv class=u0022sow-accordion-panel-header-containeru0022 role=u0022headingu0022 aria-level=u00222u0022u003entttttu003cdiv class=u0022sow-accordion-panel-headeru0022 tabindex=u00220u0022 role=u0022buttonu0022 id=u0022accordion-label-les-autres-types-de-programmationu0022 aria-controls=u0022accordion-content-les-autres-types-de-programmationu0022 aria-expanded=u0022falseu0022u003enttttttu003cdiv class=u0022sow-accordion-title sow-accordion-title-icon-leftu0022u003enttttttttttttttLes autres types de programmationtttttttttttttu003c/divu003enttttttu003cdiv class=u0022sow-accordion-open-close-buttonu0022u003entttttttu003cdiv class=u0022sow-accordion-open-buttonu0022u003enttttttttu003cspan class=u0022sow-icon-ioniconsu0022 data-sow-icon=u0022u0026#xf218;u0022ntt nttaria-hidden=u0022trueu0022u003eu003c/spanu003etttttttu003c/divu003entttttttu003cdiv class=u0022sow-accordion-close-buttonu0022u003enttttttttu003cspan class=u0022sow-icon-ioniconsu0022 data-sow-icon=u0022u0026#xf209;u0022ntt nttaria-hidden=u0022trueu0022u003eu003c/spanu003etttttttu003c/divu003enttttttu003c/divu003entttttu003c/divu003enttttu003c/divu003enntttu003cdivnttttclass=u0022sow-accordion-panel-contentu0022nttttrole=u0022regionu0022nttttaria-labelledby=u0022accordion-label-les-autres-types-de-programmationu0022nttttid=u0022accordion-content-les-autres-types-de-programmationu0022nttttstyle=u0022display: none;u0022tttu003enttttu003cdiv class=u0022sow-accordion-panel-borderu0022u003entttttu003ch3u003eu003c!u002du002d wp:heading {u0022levelu0022:3} u002du002du003eu003c/h3u003enu003ch3 class=u0022wp-block-headingu0022u003eProgrammation impérativeu003c/h3u003enu003ch3u003eu003c!u002du002d /wp:heading u002du002du003e u003c!u002du002d wp:paragraph u002du002du003eu003c/h3u003enu003cpu003eC’est un style de programmation où les instructions sont données à l’ordinateur sous forme de commandes séquentielles qui changent l’état du programme. Ces instructions indiquent u0022commentu0022 accomplir une tâche, en spécifiant chaque étape nécessaire.u003cbr /u003eLe programmeur contrôle précisément l’ordre d’exécution des instructions.u003c/pu003enu003ch3u003eu003c!u002du002d /wp:paragraph u002du002du003eu003c/h3u003enu003ch3u003eProgrammation Déclarativeu003c/h3u003enu003ch3u003e u003c/h3u003enu003cpu003eC’est un style de programmation où l’on décrit ce que l’on veut obtenir sans spécifier comment y parvenir.u003cbr /u003eEn d’autres termes, au lieu de donner une séquence d’instructions pour réaliser une tâche, on décrit le résultat souhaité, et le programme (ou le système) détermine la meilleure manière d’y arriver.u003c/pu003enu003cpu003eAnalogiesu003c/pu003enu003culu003enu003cliu003eu003cstrongu003eJardinageu003c/strongu003e : Imaginez que vous voulez un jardin fleuri. En programmation impérative, vous planteriez les graines, arroseriez les plantes, et désherberiez régulièrement. En programmation déclarative, vous exprimez simplement votre désir d’avoir un jardin fleuri, et le jardinier (ou un système automatisé) s’occupe de toutes les étapes pour vous.u003c/liu003enu003cliu003eu003cstrongu003eCommander un plat au restaurantu003c/strongu003e : Vous dites au serveur ce que vous voulez manger (le résultat final), sans donner les étapes de la recette au chef.u003c/liu003enu003c/ulu003enu003ch3u003eProgrammation logiqueu003c/h3u003enu003cpu003eLa programmation logique fait partie de la famille de la programmation déclarative. u003c/pu003enu003cpu003eC’est un paradigme de programmation basé sur la logique formelle. Les programmes logiques sont constitués de faits et de règles, et les requêtes sont résolues en utilisant des techniques de raisonnement logique.u003cbr /u003eLa programmation logique est généralement utilisée dans l’intelligence artificielle. u003c/pu003enu003cpu003eAnalogieu003c/pu003enu003culu003enu003cliu003eu003cstrongu003eRésolution de puzzlesu003c/strongu003e : Imaginez que vous résolvez un puzzle en utilisant des indices. Par exemple, dans un puzzle de logique, vous avez des faits (u0022Le bleu est à gauche du rougeu0022) et vous devez déterminer la position des couleurs.u003c/liu003enu003cliu003eu003cstrongu003eJeu de déductionsu003c/strongu003e : Pensez à un jeu où vous devez deviner un objet en posant des questions et en recevant des réponses vraies ou fausses. Vous utilisez les informations pour déduire l’objet correct.u003c/liu003enu003c/ulu003enu003ch3u003eProgrammation Orientée Objet (POO)u003c/h3u003enu003cpu003eC’est un paradigme de programmation basé sur le concept d’objets, qui sont des instances de classes. Une classe est comme un plan ou un modèle pour créer des objets, et chaque objet peut contenir des u003cstrongu003edonnéesu003c/strongu003e et des méthodes.u003c/pu003enu003cpu003eAnalogieu003c/pu003enu003culu003enu003cliu003eu003cstrongu003eConcevoir une voitureu003c/strongu003e : Une classe u0022Voitureu0022 pourrait avoir des attributs comme la couleur, la marque, et la vitesse, et des méthodes comme démarrer, accélérer, et freiner. Chaque voiture spécifique (objet) est une instance de cette classe.u003c/liu003enu003c/ulu003enu003ch3u003eProgrammation Fonctionnelleu003c/h3u003enu003cpu003eC’est un paradigme de programmation où les programmes sont construits en appliquant et en composant des fonctions. Contrairement à la programmation impérative, qui se concentre sur les changements d’état et les instructions séquentielles, la programmation fonctionnelle se concentre sur l’évaluation de fonctions pures et l’évitement des effets de bord.u003c/pu003enu003cpu003eAnalogieu003c/pu003enu003culu003enu003cliu003eu003cstrongu003eRecettes de cuisine sans étatu003c/strongu003e : Imaginez que vous suivez une recette, mais chaque étape prend des ingrédients en entrée et produit une sortie sans modifier les ingrédients originaux. Par exemple, au lieu de mélanger des ingrédients dans un bol (modifiant l’état du bol), chaque étape produit un nouveau bol de mélange.u003c/liu003enu003c/ulu003enu003cpu003eEt il y en a encore d’autres…u003c/pu003enttttu003c/divu003entttu003c/divu003enttu003c/divu003enttu003c/divu003enu003c/divu003enu003c/divu003ettttu003cstyleu003e.so-widget-sow-accordion-default-d9295f5bfa93 .sow-accordion .sow-accordion-panel {n margin-bottom: 10px;n}n.so-widget-sow-accordion-default-d9295f5bfa93 .sow-accordion .sow-accordion-panel .sow-accordion-panel-header {n align-items: center;n background-color: #757575;n n color: #ffffff;n cursor: pointer;n display: flex;n n n n padding: 15px 30px 15px 30px;n position: relative;n n flex-direction: row;n}n.so-widget-sow-accordion-default-d9295f5bfa93 .sow-accordion .sow-accordion-panel .sow-accordion-panel-header:focus,n.so-widget-sow-accordion-default-d9295f5bfa93 .sow-accordion .sow-accordion-panel .sow-accordion-panel-header:hover {n background-color: #616161;n n}n.so-widget-sow-accordion-default-d9295f5bfa93 .sow-accordion .sow-accordion-panel .sow-accordion-panel-header .sow-accordion-title {n display: flex;n align-items: center;n width: 100%;n}n.so-widget-sow-accordion-default-d9295f5bfa93 .sow-accordion .sow-accordion-panel .sow-accordion-panel-header .sow-accordion-open-close-button {n line-height: 0;n}n.so-widget-sow-accordion-default-d9295f5bfa93 .sow-accordion .sow-accordion-panel .sow-accordion-panel-header .sow-accordion-icon-image {n width: auto;n n max-height: 1em;n}n.so-widget-sow-accordion-default-d9295f5bfa93 .sow-accordion .sow-accordion-panel .sow-accordion-panel-header .sow-accordion-title-icon-left u003e .sow-accordion-icon-image,n.so-widget-sow-accordion-default-d9295f5bfa93 .sow-accordion .sow-accordion-panel .sow-accordion-panel-header .sow-accordion-title-icon-left u003e span[data-sow-icon] {n margin-right: 5px;n}n.so-widget-sow-accordion-default-d9295f5bfa93 .sow-accordion .sow-accordion-panel .sow-accordion-panel-header .sow-accordion-title-icon-right u003e .sow-accordion-icon-image,n.so-widget-sow-accordion-default-d9295f5bfa93 .sow-accordion .sow-accordion-panel .sow-accordion-panel-header .sow-accordion-title-icon-right u003e span[data-sow-icon] {n margin-left: 5px;n}n.so-widget-sow-accordion-default-d9295f5bfa93 .sow-accordion .sow-accordion-panel:not(.sow-accordion-panel-open) u003e .sow-accordion-panel-header-container u003e .sow-accordion-panel-header .sow-accordion-close-button {n display: none;n}n.so-widget-sow-accordion-default-d9295f5bfa93 .sow-accordion .sow-accordion-panel.sow-accordion-panel-open u003e .sow-accordion-panel-header-container u003e .sow-accordion-panel-header .sow-accordion-open-button {n display: none;n}n.so-widget-sow-accordion-default-d9295f5bfa93 .sow-accordion .sow-accordion-panel .sow-accordion-panel-content .sow-accordion-panel-border {n background-color: #f9f9f9;n n n n n overflow: auto;n padding: 15px 30px 15px 30px;n}n@media print {n .so-widget-sow-accordion-default-d9295f5bfa93 .sow-accordion .sow-accordion-panel .sow-accordion-open-close-button {n display: none;n }n .so-widget-sow-accordion-default-d9295f5bfa93 .sow-accordion .sow-accordion-panel .sow-accordion-panel-content {n display: block !important;n }n}u003c/styleu003enttttSyntaxe de base et structures de contrôle
Chaque langage de programmation a sa propre syntaxe, mais il existe des éléments communs à presque tous les langages:
- Les variables
Les variables sont comme des boites où l’on peut stocker des informations.

La valeur de la variable est l’information stockée. Cette valeur peut changer au cours de l’exécution d’un programme.
- Les données
Un code peut contenir différents types de données pour différentes sortes d’information (nombres, texte, etc.). - Les opérateurs
- Les opérateurs sont utilisés pour effectuer des opérations sur les variables. ( +, -, x, ÷, …)
- Les commentaires
On retrouve aussi les commentaires qui sont des notes dans le code. Les commentaires sont ignorés par le compilateur, mais sont utiles pour expliciter le code.
Les structures de contrôle en programmation sont des constructions qui permettent de contrôler le flux d’exécution des instructions d’un programme. Elles déterminent dans quel ordre les instructions sont exécutées et sous quelles conditions certaines instructions sont exécutées ou non. Voici les principaux types de structures de contrôle :
- Les conditions
Les conditions permettent de prendre des décisions dans le code. (If… Else… / Si…Alors…)
Exemple: Si le C est placé devant les voyelles E, I, et Y alors il fait le son [s]. - Les boucles
Les boucles permettent de répéter des actions plusieurs fois. - Les instructions
Les instructions permettent de sortir d’une boucle ou de sauter une itération.
En résumé
La programmation est l’ensemble des étapes nécessaires pour créer un programme informatique, en utilisant des langages de programmation pour traduire des algorithmes en instructions compréhensibles par un ordinateur.
Les langages de programmation permettent d’exprimer des algorithmes sous forme de programmes exécutables par un ordinateur. Ils peuvent être textuels (comme Python, Java) ou visuels (comme Scratch, Blockly), les langages visuels étant particulièrement adaptés pour l’apprentissage des bases de la programmation.
Il y a de multiples types de programmation.
La programmation impérative donne des instructions séquentielles pour accomplir des tâches, contrôlant précisément l’ordre d’exécution.
La programmation séquentielle est un sous-ensemble de la programmation impérative où les instructions sont exécutées une après l’autre dans un ordre linéaire.
La programmation événementielle est une manière intuitive et interactive de créer des programmes, où les actions sont déclenchées par des événements spécifiques.
Les éléments de base communs à presque tous les langages de programmation incluent :
- Variables : Boîtes de stockage pour des informations.
- Données : Différents types pour différentes sortes d’informations (nombres, texte, etc.).
- Opérateurs : Pour effectuer des opérations sur les variables.
- Commentaires : Notes dans le code pour expliciter les instructions, ignorées par le compilateur.
Les structures de contrôle, qui déterminent le flux d’exécution des instructions, comprennent :
- Conditions : Pour prendre des décisions dans le code (ex.If… Else… / Si…Alors…).
- Boucles : Pour répéter des actions plusieurs fois.
- Instructions : Pour sortir d’une boucle ou sauter une itération.