Apprendre les algorithmes – Jour 1
Un guide pour comprendre les fondamentaux de l'informatique et de la programmation. Avant d'écrire du code, il faut comprendre comment pense une machine.
À qui s'adresse ce guide ?
Ce guide s'adresse à toute personne ayant pour vocation de débuter clairement en informatique, notamment la programmation informatique. Que vous soyez étudiant, reconverti professionnel, ou simple curieux, ce cours est fait pour vous.
Aucun prérequis technique n'est nécessaire. Nous allons construire les bases ensemble, pas à pas.
Préambule – Avant de commencer
Vous êtes ici pour apprendre les algorithmes. Mais avant l'algo pur et dur, on va poser les bases : architecture des ordinateurs, binaire, logique booléenne. Oui, ce n'est pas de l'algo, mais c'est indispensable pour comprendre comment pense une machine.
Structure du cours :
- CONTEXTE (Chapitres 1 à 4) : Les bases de l'informatique
- L'ALGORITHME (Chapitres 5 à 7) : Le vrai contenu algorithmique
Si vous savez déjà ce qu'est un ordinateur, le binaire, la logique booléenne... vous pouvez sauter directement au Chapitre 5 !
Messages clés
Pourquoi pas juste demander à ChatGPT ?
En décembre 2025, les humains restent les mieux placés pour enseigner. J'ai testé ChatGPT o1 en mode learning actif : en 2h, on avait couvert 80% du contenu. Mais deux jours après, je devais relire toute la documentation. J'avais rien retenu.
Le copier/coller ne fonctionne pas. Ici, on va faire les choses bien : comprendre avant de coder.
Le monde a besoin de cerveaux structurés, pas de copieurs de code.
Allez, c'est parti !
CONTEXTE – Les bases de l'informatique
Oui, je sais, ce n'est pas encore de l'algo. Mais c'est nécessaire pour comprendre comment fonctionne une machine. Si vous connaissez déjà ces notions (binaire, ordinateur, logique), sautez directement au Chapitre 5.
Dans les universités, ces notions sont généralement enseignées dans des cours comme Architecture des Ordinateurs ou Systèmes d'Exploitation. Mais comme tout le monde ne vient pas d'une fac d'informatique, on va revoir ça ensemble, rapidement.
Chapitre 1 – L'ordinateur : une machine obéissante
Commençons par le commencement : qu'est-ce qu'un ordinateur ? En résumé, c'est simple : processeur (le cerveau), RAM (mémoire temporaire), disque dur (mémoire permanente), et des entrées/sorties (clavier, écran).
L'ordinateur ne comprend que des nombres. Il ne réfléchit pas, il obéit bêtement à vos instructions.
Pourquoi c'est important pour l'algo ? Parce que vos algorithmes vont donner des ordres à cette machine. Si vous n'êtes pas précis, elle va faire n'importe quoi. Imaginez donner une recette de cuisine floue à un robot : catastrophe garantie.
Chapitre 2 – Le binaire (0 et 1)
Maintenant que vous savez ce qu'est un ordinateur, parlons de son langage : le binaire. Contrairement à nous qui utilisons 10 chiffres (0 à 9), l'ordinateur n'en comprend que deux : 0 (éteint/faux) et 1 (allumé/vrai).
| Décimal | Binaire |
|---|---|
| 2 | 10 |
| 5 | 101 |
| 10 | 1010 |
Dans vos algorithmes, vous allez utiliser des conditions (vrai/faux). Cette logique binaire est la base de toutes les décisions que prendra votre code. Exemple : "Si l'âge est supérieur à 18, alors..." → le résultat est soit vrai, soit faux.
Mais attendez... pourquoi vraiment le binaire ?
Vous vous demandez peut-être : "Pourquoi insister sur le binaire si je vais écrire du code en C# ou Python ?"
Excellente question ! Voici le secret : tout finit en binaire. Laissez-moi vous montrer le chemin complet.
Le voyage d'un algorithme jusqu'à l'ordinateur :
- Vous écrivez un algorithme (sur papier, en français)
- Vous le traduisez en code (C#, Python, Java...)
- Le code est transformé en binaire (0 et 1)
- L'ordinateur exécute le binaire (il comprend enfin !)
Deux façons de transformer le code en binaire :
Compilé vs Interprété : quelle différence concrète ?
Langage compilé (C#, Java, C++) :
- Vous écrivez le code → Le compilateur le transforme en un fichier binaire (
.exe,.dll) - Ce fichier contient déjà tout en binaire, prêt à être exécuté
- Avantage : Plus rapide à l'exécution (pas de traduction en temps réel)
- Exemple : Quand vous compilez un projet C#, Visual Studio crée un
.exeque Windows peut lancer directement
Langage interprété (Python, JavaScript) :
- Vous écrivez le code → Il reste tel quel (fichier
.py,.js) - Quand vous lancez, l'interpréteur lit chaque ligne et la traduit en binaire à la volée
- Avantage : Plus flexible, pas besoin de recompiler à chaque modification
- Exemple : Vous tapez
python script.py, l'interpréteur Python lit et exécute ligne par ligne
Peu importe le langage (C#, Python, Java...), tout finit en binaire.
C'est pour ça que je vous ai parlé du binaire au Chapitre 2. Maintenant vous comprenez le chemin complet : votre algorithme → votre code → le binaire → l'ordinateur qui exécute.
Quand vous écrivez Console.WriteLine("Bonjour"); en C#, l'ordinateur ne voit pas du texte. Il voit des milliards de 0 et de 1. Et c'est pour ça qu'il faut être précis dans nos algorithmes : l'ordinateur ne comprend que des instructions exactes, transformées en binaire.
Chapitre 3 – L'hexadécimal (bonus rapide)
Dans la continuité du binaire, je vais vous parler rapidement d'un autre système : l'hexadécimal (base 16). Ça utilise 0-9 puis A-F. Vous le croisez partout : couleurs web (#FF5733), adresses mémoire, etc.
En algorithmie, vous ne calculerez jamais en hexa. Mais quand vous manipulerez des couleurs, des identifiants ou que vous lirez du code bas niveau, vous verrez ce format. Maintenant vous savez ce que c'est.
Chapitre 4 – La logique booléenne (ET, OU)
Dernier élément du contexte avant de passer aux algorithmes : la logique booléenne. Vous savez déjà que l'ordinateur fonctionne en 0 et 1 (Faux et Vrai). Maintenant, voyons comment il combine ces valeurs pour prendre des décisions :
| Opération | Exemple | Résultat |
|---|---|---|
| Vrai ET Vrai | Il fait beau ET J'ai du temps | Vrai |
| Vrai ET Faux | Il fait beau ET Je n'ai pas de temps | Faux |
| Vrai OU Faux | Il fait beau OU J'ai du temps | Vrai |
Pourquoi Vrai ET Faux = Faux ? Pensez à une porte qui nécessite deux clés pour s'ouvrir. Si vous avez seulement une clé (une condition vraie), la porte reste fermée. Il faut que les deux conditions soient vraies pour que le résultat soit vrai.
Vos algorithmes vont prendre des décisions : "Si cette condition est vraie, alors faire ça, sinon faire autre chose". C'est exactement cette logique ET/OU/NON que vous allez utiliser en permanence.
Interlude – Programme vs Processus : quand votre algo prend vie
Avant de plonger dans les algorithmes, je veux vous parler d'une notion qui va tout relier : la différence entre un programme et un processus. C'est crucial pour comprendre comment vos futurs algorithmes prendront vie.
Qu'est-ce qu'un programme ?
Un programme, c'est un fichier qui contient des instructions.
Pensez à vos applications :
- WhatsApp sur votre téléphone → c'est un programme
- Google Chrome sur votre ordinateur → c'est un programme
- Netflix → c'est un programme
Tant que vous ne les lancez pas, ce sont juste des fichiers qui dorment tranquillement dans la mémoire de votre appareil. Rien ne se passe.
Mais c'est quoi une instruction ?
Une instruction, c'est une action simple que l'ordinateur peut exécuter.
Pensez-y comme une ligne d'ordre que vous donnez à la machine :
- "Affiche 'Bonjour' à l'écran" → Instruction d'affichage
- "Calcule 5 + 3" → Instruction de calcul
- "Mémorise ce nombre dans la variable 'âge'" → Instruction d'affectation
- "Si l'utilisateur a plus de 18 ans, alors..." → Instruction de condition
- "Répète cette action 10 fois" → Instruction de boucle
Un programme, c'est juste une liste d'instructions rangées dans un fichier. Comme une to-do list pour l'ordinateur :
Instruction 1 : Demande l'âge de l'utilisateur
Instruction 2 : Mémorise la réponse
Instruction 3 : Si âge > 18, affiche "Accès autorisé"
Instruction 4 : Sinon, affiche "Accès refusé"
Vous vous souvenez du Chapitre 5 ? Un algorithme, c'est une suite d'instructions claires et ordonnées.
Quand vous transformez cet algorithme en code, chaque ligne devient une instruction que la machine va exécuter.
Algorithme → Instructions → Programme → Processus
C'est la chaîne complète !
Qu'est-ce qu'un processus ?
Un processus, c'est un programme en cours d'exécution.
Quand vous cliquez sur l'icône WhatsApp, le programme se réveille et devient un processus. L'ordinateur lui alloue de la mémoire (RAM), le processeur commence à exécuter les instructions, et l'application s'affiche à l'écran.
Analogie simple :
- Programme = Une recette de cuisine dans un livre (elle existe, mais elle ne fait rien)
- Processus = Vous qui suivez la recette en train de cuisiner (action en cours)
| Programme | Processus |
|---|---|
| Fichier statique (inactif) | Programme en action (actif) |
| Stocké sur le disque dur | Chargé en RAM |
| Netflix.exe | Netflix qui tourne et diffuse une série |
| Instagram.apk | Instagram ouvert en train de charger vos stories |
Lien avec les algorithmes
Pourquoi je vous parle de ça maintenant ?
Parce que vos algorithmes vont devenir des programmes, qui deviendront des processus quand on les exécutera.
Imaginez :
- Vous écrivez un algorithme sur papier → Logique pure
- Vous le traduisez en C# → Programme (un fichier .exe ou .dll)
- Vous lancez le programme → Processus (il s'exécute, utilise la RAM, fait des calculs)
Exemples concrets :
Application mobile (Instagram)
- Les développeurs écrivent des algorithmes (afficher les photos, gérer les likes, filtrer les contenus)
- Ils les traduisent en code (Java/Kotlin pour Android, Swift pour iOS) → Programme
- Vous ouvrez Instagram → Processus (l'application charge vos données, affiche votre feed)
Application web (Gmail)
- Les ingénieurs de Google écrivent des algorithmes (trier les emails, détecter les spams, organiser les conversations)
- Ils les traduisent en code (JavaScript, Python, Go) → Programme
- Vous ouvrez Gmail dans votre navigateur → Processus (le serveur exécute le code, votre navigateur affiche les résultats)
Logiciel de bureau (Photoshop)
- Les développeurs d'Adobe écrivent des algorithmes (appliquer des filtres, gérer les calques, compresser les images)
- Ils les traduisent en code (C++, C#) → Programme
- Vous ouvrez Photoshop → Processus (le logiciel charge, vous pouvez retoucher vos photos)
Vous voyez le lien ?
Toutes ces applications que vous utilisez au quotidien (Instagram, WhatsApp, Netflix, Gmail, TikTok, Spotify...) sont des processus qui exécutent des programmes écrits à partir d'algorithmes que des développeurs ont imaginés.
Et bientôt, ce sera vous.
Les algorithmes que vous allez apprendre dans ce cours sont les mêmes briques de base que celles utilisées dans les plus grandes applications du monde. La seule différence ? L'échelle et la complexité.
Pourquoi c'est motivant ?
Parce que vous êtes en train de poser les bases pour créer n'importe quelle application :
- Un site web ? Vous aurez besoin d'algorithmes pour gérer les utilisateurs, afficher les données, traiter les formulaires
- Une application mobile ? Algorithmes pour synchroniser les données, gérer la navigation, optimiser les performances
- Un jeu vidéo ? Algorithmes pour les déplacements, les collisions, l'intelligence artificielle des ennemis
- Une IA ? Algorithmes d'apprentissage automatique, de traitement de données, de prédiction
Tout commence par la logique algorithmique. Le reste n'est que de la mise en forme.
En tant que développeur, votre valeur ne vient pas de connaître par cœur la syntaxe d'un langage. Elle vient de votre capacité à décomposer un problème en étapes logiques et à construire des solutions efficaces.
C'est exactement ce qu'on va apprendre maintenant.
L'ALGORITHME – On rentre dans le vif du sujet
Voilà ! Vous avez survécu à la partie contexte. Bravo ! Vous comprenez maintenant comment fonctionne une machine, comment elle représente les données, et comment vos futurs algorithmes deviendront des programmes vivants.
Maintenant, attaquons le vrai contenu : les algorithmes. C'est parti !
Chapitre 5 – Qu'est-ce qu'un algorithme ?
Enfin ! On y est ! Les algorithmes, le vrai sujet de ce cours. Vous vous rappelez dans l'interlude, je vous ai parlé d'instructions ? Eh bien, un algorithme, c'est exactement ça : une suite d'instructions organisées.
Définition simple (sans blabla)
Un algorithme est une suite d'instructions finies, claires, ordonnées.
C'est comme une recette de cuisine :
- Prendre les ingrédients
- Mélanger dans l'ordre
- Cuire à 180°C
- Servir
Sauf que là, au lieu de faire un gâteau, on résout un problème.
Des exemples sans ordinateur (pour bien comprendre)
Exemple 1 : Faire du riz
- Début
- Mesurer 1 tasse de riz
- Rincer le riz
- Mettre 2 tasses d'eau
- Faire bouillir
- Couvrir et laisser cuire 15 minutes
- Fin
Exemple 2 : Retirer de l'argent au distributeur
- Début
- Insérer la carte
- Entrer le code PIN
- Sélectionner "Retrait"
- Choisir le montant
- Prendre l'argent
- Prendre la carte
- Fin
Exemple 3 : Traverser la route en sécurité
- Début
- Regarder à gauche
- Regarder à droite
- Si aucune voiture → traverser
- Sinon → attendre
- Fin
Vous voyez ? C'est simple ! Un algorithme, c'est juste une suite d'étapes logiques pour arriver à un résultat.
Les 3 règles d'or d'un bon algorithme
Un bon algorithme doit avoir :
- Un début clair (on sait où on commence)
- Des étapes précises (pas d'ambiguïté, pas de "débrouille-toi")
- Une fin (pas de boucle infinie, on finit par arriver quelque part)
Un algorithme n'est PAS du code.
C'est de la logique pure. Vous pouvez écrire un algorithme sur papier, en français, avant même de toucher un ordinateur. Le code, c'est juste la traduction de votre algorithme dans un langage que la machine comprend.
Chapitre 6 – Les variables : la mémoire de l'algorithme
Vous savez maintenant ce qu'est un algorithme : une suite d'instructions. Mais pour être utile, un algorithme doit pouvoir mémoriser des choses. C'est là qu'interviennent les variables.
Une variable, c'est une boîte qui contient une valeur.
Imaginez des boîtes en carton avec des étiquettes :
- Une boîte étiquetée "âge" contient
25 - Une boîte étiquetée "nom" contient
"Alice" - Une boîte étiquetée "prix" contient
19.99
Quand votre algorithme a besoin de l'âge, il va chercher dans la boîte "âge" et trouve 25. Simple, non ?
âge = 30
prix = 15.50
nombre_d_etudiants = 45
nom = "Marie"
est_inscrit = Vrai
Voilà, c'est tout. Une variable, c'est juste un nom + une valeur.
Comment bien nommer ses variables ? Un bon nom de variable doit être :
- Lisible :
âgeplutôt quea - Explicite :
prix_totalplutôt quept - En lien avec la réalité :
nombre_de_pommesplutôt quex
❌ À éviter absolument
a = 25 // C'est quoi "a" ?
x = "Hawa" // "x", ça veut rien dire
truc = 100 // Sérieux ?
À faire
âge = 25 // Ah oui, c'est l'âge de quelqu'un
nom = "Hawa" // Le nom d'une personne
prix_total = 100 // Le prix total d'un achat
Quand vous relisez votre code dans 6 mois, vous allez me remercier d'avoir insisté sur les noms de variables. Faites-vous ce cadeau : nommez bien vos variables dès le début.
Chapitre 7 – Les types : l'informatique n'invente rien
On a parlé de variables (les boîtes qui stockent des valeurs). Mais toutes les boîtes ne contiennent pas la même chose. Une boîte pour un âge, ce n'est pas pareil qu'une boîte pour un nom. C'est là qu'interviennent les types de données.
Et bonne nouvelle : les types viennent du monde réel. L'informatique ne fait que modéliser ce qui existe déjà dans notre quotidien. Rien de magique là-dedans.
Petit rappel :
- Nombre entier : Un nombre sans virgule (1, 2, 100, -5). En algo, vous les utilisez pour compter des éléments (nombre d'utilisateurs, itérations dans une boucle, index d'un tableau).
- Nombre décimal : Un nombre avec virgule (3.14, 19.99, -0.5). En algo, vous les utilisez pour des calculs précis (prix TTC, moyennes, pourcentages, coordonnées GPS).
Dans le quotidien du développeur, choisir entre entier et décimal est crucial : si vous stockez un prix en entier, vous perdez les centimes. Si vous utilisez un décimal pour un compteur de boucle, vous compliquez votre code inutilement.
Les types de base :
| Type | Exemple réel | Exemple en code | Usage |
|---|---|---|---|
| Nombre entier | Votre âge, une quantité | âge = 30 | Compter, numéroter |
| Nombre décimal | Un prix, une moyenne | prix = 19.99 | Mesures précises |
| Texte (chaîne) | Votre nom, un message | nom = "Alice" | Communication |
| Vrai / Faux (booléen) | Présent ou absent | est_présent = Vrai | Décisions |
J'ai fait des maths au collège, lycée et un peu à l'université. Les types de données, c'est juste les systèmes de numération qu'on a tous vus en cours (base 10, base 2...). Si vous savez compter, vous avez le niveau.
Exemple concret :
// Liste de courses
nom_produit = "Pommes" // Texte
quantité = 5 // Nombre entier
prix_unitaire = 2.50 // Nombre décimal
en_promotion = Vrai // Vrai ou Faux
Vous voyez ? Ces types existent déjà dans votre tête ! L'informatique ne fait que les formaliser.
Lien avec le binaire : Au final, tous ces types sont représentés en binaire dans la mémoire de l'ordinateur :
30→ devient une série de 0 et 1"Alice"→ chaque lettre devient un nombre (code ASCII), puis du binaireVrai→ devient1Faux→ devient0
Maintenant que vous avez compris que lorsque je tape 30 sur mon clavier, l'ordinateur voit 00011110, on va pouvoir avancer.
Hum, je sens que vous n'êtes pas encore rassurés. OK, décomposons 30 en binaire :
30 = 16 + 8 + 4 + 2
= 2⁴ + 2³ + 2² + 2¹
= 1×16 + 1×8 + 1×4 + 1×2 + 0×1
En binaire : 11110 (ou 00011110 sur 8 bits)
On compte les puissances de 2, et boom : on a 30 !
Donc si par miracle je vous demande de convertir 30 en binaire, la question que vous posez c'est : "Quelles puissances de 2 additionnées donnent 30 ?" (1, 2, 4, 8, 16, 32...). C'est pour ça que j'ai fait 16 + 8 + 4 + 2.
Ce ne sont que des représentations.
Vous manipulez des noms, des prix, des âges... mais l'ordinateur, lui, ne voit que du binaire. C'est pour ça que je vous ai parlé du binaire au Chapitre 2 : pour que vous compreniez ce qui se passe dans les coulisses.
Chapitre 8 – Comment écrire un algorithme ?
On a vu ce qu'est un algorithme, les variables, les types. Maintenant, passons à la pratique : comment écrire un algorithme de manière structurée ? Parce que oui, il existe des conventions pour écrire proprement.
Deux notations courantes :
- Lexique / Réalisation (qu'on va utiliser ici)
- Algorithme : Début / Fin (dans d'autres écoles)
Les deux sont identiques, juste une question de préférence.
Structure Lexique / Réalisation :
LEXIQUE
// Déclaration des variables
REALISATION
// Instructions de l'algorithme
Premier exemple : Calculer la somme de deux nombres
Voici comment on écrirait l'algorithme :
LEXIQUE
nombre1 : entier
nombre2 : entier
somme : entier
REALISATION
Afficher "Entrez le premier nombre :"
Lire nombre1
Afficher "Entrez le deuxième nombre :"
Lire nombre2
somme ← nombre1 + nombre2
Afficher "La somme est :", somme
Explications :
- LEXIQUE : On déclare toutes nos variables avec leur type (entier, décimal, texte, booléen)
- REALISATION : On écrit les instructions dans l'ordre
←: C'est le symbole d'affectation (on met la valeur dans la variable)Afficher: On communique avec l'utilisateurLire: On récupère une valeur de l'utilisateur
C'est comme une recette de cuisine : d'abord la liste des ingrédients (LEXIQUE), puis les étapes de préparation (REALISATION). Ça force à réfléchir avant d'écrire !
Autre notation (Algorithme : Début / Fin) :
Si vous voyez cette notation ailleurs, sachez que c'est pareil :
ALGORITHME Somme_Deux_Nombres
VARIABLE
nombre1 : entier
nombre2 : entier
somme : entier
DEBUT
Afficher "Entrez le premier nombre :"
Lire nombre1
Afficher "Entrez le deuxième nombre :"
Lire nombre2
somme ← nombre1 + nombre2
Afficher "La somme est :", somme
FIN
C'est exactement la même chose, juste les mots-clés qui changent. L'important, c'est la logique !
L'élève trop pressé : "Comment je teste mon algorithme dans un logiciel ?"
Ah, je vous vois venir ! Vous voulez déjà taper du code, lancer un programme, voir ça tourner sur l'ordinateur...
Stop. Un peu de patience.
On ne va pas encore utiliser un langage de programmation. C'est encore trop tôt. Pourquoi ? Parce que la meilleure manière d'apprendre les algorithmes, c'est de fermer l'ordinateur et d'ouvrir un cahier et un stylo.
Oui, vous avez bien lu. Un cahier. Un stylo. Comme à l'école primaire.
Si vous sautez directement dans le code sans maîtriser la logique, vous allez galérer. Vous allez copier-coller des solutions sans comprendre. Et dans 6 mois, vous serez toujours au même niveau.
La vraie compétence, c'est la logique, pas la syntaxe.
Mais rassurez-vous ! Je vais vous montrer comment vérifier vous-même, sans ordinateur, si votre algorithme est correct. La technique s'appelle : la trace à la main.
La trace à la main (ou comment jouer à l'ordinateur)
L'idée est simple : vous jouez le rôle de l'ordinateur. Vous exécutez l'algorithme étape par étape, en notant les valeurs des variables à chaque instant.
Reprenons notre algorithme de somme :
LEXIQUE
nombre1 : entier
nombre2 : entier
somme : entier
REALISATION
Afficher "Entrez le premier nombre :"
Lire nombre1
Afficher "Entrez le deuxième nombre :"
Lire nombre2
somme ← nombre1 + nombre2
Afficher "La somme est :", somme
Maintenant, traçons à la main avec des valeurs concrètes :
Imaginons que l'utilisateur entre 7 puis 5.
| Étape | Instruction | nombre1 | nombre2 | somme | Affichage |
|---|---|---|---|---|---|
| 1 | Afficher "Entrez le premier nombre :" | ? | ? | ? | "Entrez le premier nombre :" |
| 2 | Lire nombre1 (utilisateur tape 7) | 7 | ? | ? | - |
| 3 | Afficher "Entrez le deuxième nombre :" | 7 | ? | ? | "Entrez le deuxième nombre :" |
| 4 | Lire nombre2 (utilisateur tape 5) | 7 | 5 | ? | - |
| 5 | somme ← nombre1 + nombre2 | 7 | 5 | 12 | - |
| 6 | Afficher "La somme est :", somme | 7 | 5 | 12 | "La somme est : 12" |
Résultat : La somme est 12 ✓
Vous voyez ? On a exécuté l'algorithme dans notre tête, en suivant chaque instruction. Si le résultat est correct (7 + 5 = 12), alors l'algorithme fonctionne !
- Vous comprenez chaque étape : Vous savez exactement ce qui se passe
- Vous repérez les erreurs facilement : Si le résultat est faux, vous voyez où ça coince
- Pas besoin d'ordinateur : Vous pouvez travailler n'importe où (bus, café, lit...)
- Vous développez votre logique : C'est un muscle, ça se travaille
Quand vous maîtriserez cette technique, écrire du code sera facile. Ce ne sera qu'une traduction.
Chapitre 9 – Les langages de programmation : lequel choisir ?
Vous savez maintenant écrire un algorithme sur papier et le vérifier avec une trace à la main. Mais à un moment, il faudra le transformer en vrai code que l'ordinateur peut exécuter. Parlons donc des langages de programmation.
Si vous êtes à l'université, vous faites certainement du C, ou bien du Python, ou du Java. Les plus anciens ont peut-être fait du Pascal. Chaque université choisit son langage en fonction de ses goûts et des tendances du marché pour former les meilleurs développeurs.
Mais attendez, vous remarquez quelque chose ?
Si le choix du langage dépend de chaque université... pourquoi tout le monde réussit à comprendre les algorithmes ?
Exactement ! C'est ce que je viens de vous montrer : un algorithme, c'est d'abord dans un cahier, puis plus tard dans un ordinateur.
Il existe des centaines de langages
Les langages de programmation, il en existe des centaines :
- Python
- JavaScript
- Java
- C
- C++
- C#
- PHP
- Ruby
- Go
- Rust
- Swift
- Kotlin
- ...et j'en passe !
Tout est une question de goût et d'objectif. Vous voulez faire du web ? Du jeu vidéo ? De l'intelligence artificielle ? Des applications mobiles ? Chaque domaine a ses langages préférés.
Bas niveau vs Haut niveau
Pour vraiment comprendre, il faut connaître les différents niveaux :
Langage bas niveau :
- Plus proche de la machine (binaire, assembleur)
- Vous contrôlez la mémoire directement
- Plus rapide, plus puissant, mais plus difficile
- Exemple : C, Assembleur
Langage haut niveau :
- Plus proche de l'humain (syntaxe lisible)
- La machine gère la mémoire pour vous
- Plus facile à apprendre, mais parfois moins rapide
- Exemple : Python, JavaScript, Java
Un langage bas niveau, c'est comme conduire une voiture manuelle : vous contrôlez tout, mais c'est plus technique.
Un langage haut niveau, c'est comme une voiture automatique : plus simple, mais vous avez moins de contrôle.
Quel langage pour apprendre l'algorithmique ?
La vérité ? N'importe lequel.
Sérieusement. Si vous maîtrisez la logique (ce qu'on fait dans ce cours), vous pouvez apprendre n'importe quel langage en quelques semaines.
Mais si je devais conseiller pour débuter :
- Python : Syntaxe simple, idéal pour se concentrer sur la logique
- C : Un peu plus dur, mais vous force à comprendre ce qui se passe dans la machine
- JavaScript : Parfait si vous voulez faire du web rapidement
Pourquoi on va utiliser C# dans ce cours ?
Dans les prochains jours, on va utiliser C#. Pourquoi ?
D'abord, une confession : ça fait 10 ans que je suis développeur. J'utilise des langages adaptés à mes besoins selon les projets. Mais ça fait seulement 1 mois que j'apprends C#. Vu la force et l'énergie que Microsoft a investies dans ce langage, je le trouve vraiment excellent et tellement actuel pour faire pas mal de choses. J'ai toujours eu envie d'écrire ce cours d'algorithmique, donc c'était la parfaite occasion de combiner les deux : apprendre C# et transmettre l'algo.
Le problème avec le C : Si vous êtes à l'université et que vous apprenez le C, vous allez faire de l'algo pendant 1 ou 2 semestres... puis ranger ce langage dans l'oubli. Pourquoi ? Parce qu'en 2025, le C a très peu de débouchés professionnels. Sauf si vous voulez créer des systèmes d'exploitation, et même là, il vaut mieux apprendre Rust.
L'informatique évolue tous les jours. Les programmes scolaires doivent suivre.
Pourquoi C# alors ?
Vous voyez le nom ? C# = C++++ (quatre + qui forment un #). C'est l'évolution moderne du C.
Avec C#, vous avez :
- La force du langage C (puissance, typage strict, performance)
- La simplicité de Python (syntaxe claire, gestion automatique de la mémoire)
- Des débouchés réels (applications web, jeux vidéo avec Unity, applications desktop, cloud avec Azure)
- Un langage complet qui ne finira pas au placard après l'université
Notre approche : On va d'abord écrire les algorithmes sur cahier, puis on les traduira en C# (qui se lit "Csharp"). Les mêmes algorithmes auraient exactement la même structure dans Python, Java ou JavaScript. Seuls quelques noms de variables changent.
Le langage n'est qu'un outil. La vraie compétence, c'est la logique algorithmique. Une fois que vous l'avez, passer d'un langage à l'autre est juste une question de syntaxe.
C'est comme parler français, anglais ou espagnol : la logique de la conversation reste la même, seuls les mots changent.
Conclusion – Où en sommes-nous ?
Voilà, on arrive à la fin de ce Jour 1 ! Si vous êtes arrivé jusqu'ici, félicitations ! Vous venez de poser des fondations solides.
Ce qu'on a appris :
- Contexte : Comment fonctionne un ordinateur, le binaire, la logique
- Algorithme : C'est une suite d'instructions claires et ordonnées
- Variables : Des boîtes qui contiennent des valeurs
- Types : Entiers, décimaux, texte, vrai/faux
- Structure d'un algo : LEXIQUE / REALISATION
- Trace à la main : Comment vérifier un algo sans ordinateur
- Langages : Il y en a des centaines, le choix dépend de l'objectif
Les 3 messages à retenir :
- Un ordinateur est simple mais strict : Il fait exactement ce qu'on lui dit, rien de plus
- L'algorithme est indépendant du langage : La logique existe avant le code
- La logique est plus importante que le code : Comprendre comment résoudre un problème > savoir écrire la syntaxe
Au programme du Jour 2 :
- Instructions : Comment donner des ordres précis
- Conditions (SI / SINON) : Comment prendre des décisions
- Boucles : Comment répéter des actions
- Premiers vrais algorithmes : On va écrire des algorithmes complets
- Lien avec C# : On va commencer à traduire nos algorithmes en vrai code
On comprend avant d'écrire. On raisonne avant de coder. On vise la maîtrise, pas la magie.
Le monde a besoin de cerveaux structurés, pas de copieurs de code. Si vous avez compris les concepts d'aujourd'hui, vous avez déjà fait 50% du chemin vers la maîtrise de la programmation. Le reste n'est que de la pratique et de la répétition.
Rendez-vous au Jour 2 pour mettre tout ça en pratique !
N'hésitez pas à relire les chapitres qui vous ont posé problème. Prenez votre temps, il n'y a pas d'urgence. L'important, c'est de comprendre, pas de foncer tête baissée.