Ceci est une ancienne révision du document !
Table des matières
Présentation du cours de première NSI
NSI = Numérique et Sciences Informatique
Ce que dit le bulletin officiel
L'enseignement de spécialité de numérique et sciences informatiques du cycle terminal de la voie générale vise l'appropriation des fondements de l'informatique pour préparer les élèves à une poursuite d'études dans l'enseignement supérieur, en les formant à la pratique d'une démarche scientifique et en développant leur appétence pour des activités de recherche.
L'objectif de cet enseignement […] est l'appropriation des concepts et des méthodes qui fondent l'informatique, dans ses dimensions scientifiques et techniques . Cet enseignement s'appuie sur l'universalité de quatre concepts fondamentaux et la variété de leurs interactions.
Les quatre concepts sont (je cite toujours) :
- Les données, qui représentent sous une forme numérique unifiée des informations très diverses : textes, images, sons, mesures physiques, sommes d'argent, etc.
- Les algorithmes, qui spécifient de façon abstraite et précise des traitements à effectuer sur les données à partir d'opérations élémentaires.
- Les langages, qui permettent de traduire les algorithmes abstraits en programmes textuels ou graphiques de façon à ce qu'ils soient exécutables par les machines.
- Les machines, et leurs systèmes d'exploitation , qui permettent d'exécuter des programmes en enchaînant un grand nombre d'instructions simples, assurant la persistance des données par leur stockage, et de gérer les communications. On y inclut les objets connectés et les réseaux.
Le mot “Sciences” dans le nom de la spécialité a été ajouté exprès. Il permet de souligner le fait que l'informatique, ce n'est pas que de la technologie, c'est aussi de la théorie. À l'université, les départements informatiques sont souvent liés aux départements de mathématiques.
Ce que le cours de NSI n'est pas
- Pas un cours sur le matériel. Nous parlerons de ce qui constitue un ordinateur mais nous parlons surtout de ce qui se passe à bas niveau (circuit logique) et du réseau. Nous pouvons bien sûr discuter un peu de la technologie, actuelle (disques durs, SSD, processeurs…) mais cela reste très marginal.
- Pas un cours de codage. Nous allons programmer (coder) beaucoup. Si vous aimez cela, tant mieux ! Ce sera très utile. Mais notre but n'est pas juste de produire un code qui fonctionne (pisser du code selon une expression). On veut être capable de comprendre le problème donné, de voir quelles solutions sont disponibles, de faire des choix, de proposer une ou plusieurs solutions de programmation en faisant toujours attention de produire un code clair, lisible et réutilisable.
- Pas un cours fun de programmation de jeux ou de sites web. Ce qui permet à la spécialité NSI de vous ouvrir beaucoup de débouchés, c'est justement la solidité de ce qu'on y apprend. Il arrivera que l'on fasse un projet un peu plus fun, pourquoi pas un jeu, mais ce genre de travail suppose déjà de bonnes bases en programmation et en général, il ne faudra pas trop s'attendre à un résultat graphique époustouflant car cela prendrait beaucoup de temps pour un apprentissage limité (dans le cas des jeux commerciaux, ce sont des graphistes qui s'occupent de cela et la filière NSI s'intéresse à l'aspect programme, pas tellement à l'aspect graphique)
- Pas un cours de théorie pure. Rassurez-vous, malgré ce qui a été indiqué au-dessus, il ne s'agit pas non plus de faire de l'informatique de façon trop théorique. Vous aurez l'occasion de beaucoup coder et nous sommes pour ainsi dire toujours en TP.
- Pas un cours de Python. Voir ci-dessous.
Utilisation de Python
Le bulletin officiel indique que c'est Python qui a été retenu comme langage de programmation principal. De ce fait, nous programmerons beaucoup en Python.
Python a été créé en 1991 par Guido Von Rossum. Il a choisi ce nom en hommage aux Monty Python, groupe d'humoristes britanniques. Python a donc 30 ans. Sera-t-il encore utilisé dans 20 ans ? Personne ne sait. Vous apprenez à programmer avec Python mais gardez à l'esprit que ce que vous appris avec Python, vous pourrez toujours l'utiliser avec les langages qui apparaîtront demain.
Alors pourquoi avoir choisi Python parmi les dizaines de langages existants ?
Les qualités de Python
- Python est un langage de haut niveau, c'est à dire proche de l'humain. Les expressions que l'on y trouve sont très proches d'un énoncé humain très rigoureux.
- Python est soutenu par une communauté très vaste de programmeurs. Donc on dispose d'une très grande quantité d'outils et de modules, tous gratuits.
- Python fait partie des langages les plus utilisés avec C, Java et Javascript.
- Python est très apprécié car il permet un développement très simple et rapide. Les langages comme C et Java sont beaucoup plus difficile à prendre en main et serait de ce fait peu adaptés pour une première phase d'apprentissage. Ils sont par contre étudiés dans les cursus de programmation à l'université.
- Python a une syntaxe propre et rigoureuse qui donne de bonnes habitudes de programmation.
Les défauts de Python
- Python n'est pas très performant en termes de vitesse d'exécution ou d'utilisation de ressource machine. C'est d'ailleurs la raison pour laquelle on utilise Javascript dans les pages web et pas Python.
- Python est faiblement typé. Cela signifie que l'on n'est pas obligé de dire clairement le types de données que l'on utilise. Les amateurs de langages plus contraignants (C, Java…) n'aiment pas cela. Mais c'est justement ce genre de chose qui rend plus facile l'utilisation de Python.
