Algorithmique
L'un des buts fondamentaux de la spécialité NSI au lycée est d'apprendre aux élèves l'algorithmique. L'algorithmique est très importante en informatique, puisqu'elle est à la base des algorithmes, méthodes qui sont très souvent utilisés dans les programmes informatiques. Ceux-ci servent à décrire les solutions d'un problème. Ils sont la description d'une méthode applicable par une machine pour résoudre un problème. Cette description est donnée par une suite d'instructions en pseudo-code traduit dans un langage de programmation, qui ont pour but de traiter les données du problème à résoudre puis d'apporter une solution. Un algorithme est la partie fonctionnelle du programme, c'est lui qui va réaliser les calculs ou les étapes pour aboutir à la solution, mais il ne constitue pas tout le programme. Les élèves apprennent, en cours de mathématiques et de technologie dès le collège, à programmer des algorithmes simples, à l'aide du logiciel Scratch 3 ou de la calculatrice ou d'un logiciel d'algorithmique tel que Algobox. C'est une première approche de l'algorithmique, qui permet aux élèves de bien comprendre ce qu'est un algorithme et à quoi il sert.
Cependant, les algorithmes vus en cours se créent à l'aide de pseudo-code puis par un langage présent dans la machine. La machine (processeurs) va traduire en binaire afin de les exécuter, mais l'élève ne code pas directement l'algorithme, souvent écrit à la main.
En NSI, les élèves apprennent à coder des algorithmes de base, sans devoir les créer avec un logiciel qui fait la traduction entre le langage humain et le langage de l'ordinateur ( le binaire). Le langage de programmation que nous utiliserons au lycée est le langage Python3. Des capacités dans ce domaine sont exigées lors de l'épreuve du bac en NSI. Il faut que l'élève soit capable de comprendre et d'expliquer ce que fait un algorithme, de modifier un algorithme pour obtenir un résultat voulu, de concevoir lui-même un algorithme et de le programmer et de voir si l'algorithme est le plus efficace possible. Pour cela, les élèves apprennent des algorithmes simples, tels que chercher des éléments dans un tableau de façon naïve ou par dichotomie ou trier un tableau par sélection, par insertion. On s'intéressera à des algorithmes plus avancés en terminale, tels que pour le tri fusion, la récursivité, la recherche d'un chemin dans un graphe par un parcours en largeur et en profondeur, le parcours d'arbres, etc...