Dans cette première leçon d’une série de quatorze vidéos, le conférencier introduit l’algorithmique en définissant ce qu’est un algorithme : une suite finie d’instructions élémentaires qui, exécutées correctement, produisent un résultat donné. Il montre que les algorithmes sont présents dans la vie quotidienne (exemple de la recette de spaghettis) puis explique que, en informatique, on traduit ces algorithmes en programmes à l’aide de langages de programmation, qui ne sont que des syntaxes différentes pour exprimer la même logique algorithmique. L’indépendance d’un algorithme vis‑à‑vis du langage est soulignée. Deux notations standard sont présentées – l’organigramme et le pseudo‑code – avec une préférence pour le pseudo‑code, jugé plus proche d’un vrai langage et plus facile à convertir en programme. Un exemple concret d’algorithme (division de deux nombres avec contrôle de la division par zéro) est détaillé sous forme d’organigramme puis de pseudo‑code. Enfin, le programme annonce le plan des leçons suivantes : variables et types, opérateurs, structures conditionnelles et itératives, chaînes de caractères, tableaux, fonctions et procédures, ainsi que la rédaction d’algorithmes fonctionnels et optimisés.
Chapters
Bonjour à tous et bienvenue dans cette première vidéo d'une série de leçons d'algorithmique. L'algorithmique est la discipline qui s'intéresse aux algorithmes. Un algorithme, c'est une suite d'opérations élémentaires connues sous le nom d'instructions qui, une fois exécutées correctement, conduit à un résultat donné. Avant de se lancer dans les détails techniques, prenons l'exemple suivant. Imaginez qu'un soir votre ami vous a appelé et il vous a demandé la recette pour préparer les spaghettis. Et comme vous êtes tellement sympa, Vous l'avez carrément assisté par téléphone jusqu'à ce qu'il prépare sa recette. Alors vous lui demandez de prendre une casserole, de la remplir avec de l'eau, la mettre sur le feu, et quand l'eau devient bouillante, vous lui demandez de mettre ses spaghettis, attendre 5 minutes et puis les retirer. Sans le savoir, vous venez de créer un algorithme et votre ami vient de l'exécuter. Alors, vous en êtes peut-être pas conscient, mais vous exécutez toujours des algorithmes dans votre vie quotidienne. Quand vous faites vos courses au marché, quand vous montrez un chemin à un touriste ou quand vous exécutez une recette de cuisine, vous créez et vous exécutez toujours des algorithmes sans le savoir. Techniquement parlant maintenant, quand un problème informatique se présente, la solution consiste souvent à créer un programme pour le résoudre. Et pour créer ce programme-là, on a recours à un ou des langages de programmation. Il existe des dizaines et des dizaines de langages de programmation. Et rien que le fait d'apprendre par cœur tous leurs noms est considéré comme un exploit en soi. En tant que programmeur, vous pouvez choisir un tel ou tel langage de programmation comme le langage C, C++, Java, Python, Ruby, JavaScript ou autre. Le choix du langage dépend souvent du domaine auquel appartient le problème à traiter comme le domaine du web, du mobile, des réseaux, de la sécurité, etc. Et la thématique peut aussi avoir de l'influence sur le langage à adopter comme par exemple les statistiques, l'intelligence artificielle, les jeux 3D et j'en passe. Bien entendu, chaque langage de programmation a ses propres particularités, mais le plus important c'est qu'il a sa propre syntaxe. Alors on peut dire qu'il y a autant de syntaxes que de langages, bien qu'il existe des langages qui sont inspirés les uns des autres et dont la syntaxe reste relativement proche. Cependant, le point commun entre les langages de programmation est la logique de la programmation elle-même. Cette logique s'appelle l'algorithme. Par conséquent, la première discipline qu'un futur programmeur doit apprendre est l'algorithmique. Autrement dit, il doit comprendre comment diviser un grand problème problème en une suite d'opérations moins grandes, elles-mêmes divisées en instructions. Un algorithme est indépendant de tout langage de programmation. Il ne s'agit pas d'un code que l'on soumettra à l'ordinateur pour l'exécuter, mais il s'agit plutôt d'une esquisse ou un schéma détaillé des opérations qu'il faut entamer afin de mener à bien la solution du problème posé. Et quand l'algorithme sera fini et jugé adéquat, alors à ce moment-là, on peut le traduire en un vrai programme à l'aide d'un langage de programmation pour qu'il soit exécuté par la machine. Donc un algorithme ne s'écrit pas forcément sur un ordinateur, mais on peut l'écrire sur du papier comme une ébauche d'un futur programme. Il n'existe pas de méthode ou de syntaxe rigoureuse pour représenter un algorithme, on peut donc l'écrire comme bon nous semble, néanmoins, 2 méthodes sont standardisées, à savoir l'écriture sous forme d'organigramme et de pseudo-code. Imaginons que nous voulons écrire un algorithme qui permet de calculer le résultat de la division des 2 nombres A et B. On peut proposer l'organigramme suivant. Bon, tout organigramme a un début et une fin. À la fin, un algorithme n'est rien d'autre qu'un ensemble d'instructions fini. Aussi long soit-il, aussi complexe soit-il, le nombre d'opérations reste toujours fini. Alors, première opération qu'il faut faire, c'est que l'ordinateur demande à l'utilisateur d'entrer la valeur de A, et ensuite on récupère cette valeur. Après, l'ordinateur demande à l'utilisateur d'entrer la valeur de B, qu'on récupère à son tour. L'opération n'est faisable que si B est différent de 0, alors on doit faire un test. Si B est égal à 0, ça veut dire si la réponse est oui, dans ce cas l'opération est invalide et l'ordinateur nous affiche par exemple un message sur l'écran pour nous dire que l'opération ne peut pas être faite. Sinon, ça veut dire si B n'est pas nul, dans ce cas on va prévoir C qui va accueillir le résultat de la division de A par B, et enfin on va afficher ce résultat sur l'écran. Et dans tous les cas, le programme prendra fin. Soit on emprunte le chemin de droite, ou bien le chemin de gauche, mais ce qui est sûr c'est qu'on ne peut jamais prendre les deux chemins simultanément. Avec un pseudo-code, l'algorithme ressemblera à ceci. Il s'agit d'un ensemble de lignes qui décrivent la solution au problème posé, qui s'enchaînent de haut en bas. Mais je ne vais pas expliquer ces lignes pour le moment car il faut commencer doucement. Cependant, le pseudo-code est préféré à l'organigramme car il représente mieux la solution quelle que soit sa complexité, et en plus, vu sa structure, il ressemble à un vrai langage de programmation, ce qui veut dire qu'il est plus facile à traduire en programme. Alors, pour la suite de ces leçons, nous allons découvrir les bases de l'algorithmique, à savoir les variables et leurs types, les opérateurs, les structures conditionnelles et itératives, les chaînes de caractères, les tableaux, les fonctions et procédures, etc. Et le plus important, c'est qu'on va apprendre à écrire des algorithmes fonctionnels et optimisés. Merci pour votre attention et à la vidéo prochaine.