[E] Langages et
programmation
[E.1]
Programme en tant que donnée, calculabilité, décidabilité
Contenus :
- Notion de programme en tant que donnée.
- Calculabilité, décidabilité.
Capacités attendues :
- Comprendre que tout programme est aussi une donnée.
- Comprendre que la calculabilité ne dépend pas du langage de programmation utilisé.
- Montrer, sans formalisme théorique, que le problème de l’arrêt est indécidable.
Commentaires :
- L’utilisation d’un interpréteur ou d’un compilateur, le téléchargement de logiciel, le fonctionnement des systèmes d’exploitation permettent de comprendre un programme comme donnée d’un autre programme.
[E.2] Récursivité
Contenus :
- Récursivité.
Capacités attendues :
- Ecrire un programme récursif.
- Analyser le fonctionnement d’un programme récursif.
Commentaires :
- Des exemples relevant de domaines variés sont à privilégier.
[E.3] Modularité
Contenus :
- Modularité.
Capacités attendues :
- Utiliser des API (Application Programming Interface) ou des bibliothèques.
- Exploiter leur documentation.
- Créer des modules simples et les documenter.
[E.4] Paradigmes
de programmation
Contenus :
- Paradigmes de programmation
Capacités attendues :
- Distinguer sur des exemples les paradigmes impératif, fonctionnel et objet.
- Choisir le paradigme de programmation selon le champ d’application d’un programme.
Commentaires :
- Avec un même langage de programmation, on peut utiliser des paradigmes différents. Dans un même programme, on peut utiliser des paradigmes différents.
[E.5]
Mise au point des programmes, gestion des bugs
Contenus :
- Mise au point des programmes
- Gestion des bugs
Capacités attendues :
- Dans la pratique de la programmation, savoir répondre aux causes typiques de bugs : problèmes liés au typage, effets de bord non désirés, débordement dans les tableaux, instruction conditionnelle non exhaustive, choix des inégalités, comparaisons et calculs entre flottants, mauvais nommage des variables, etc.
Commentaires :
- On prolonge le travail entrepris en classe de première sur l’utilisation de la spécification, des assertions, de la documentation des programmes et de la construction de jeux de tests.
- Les élèves apprennent progressivement à anticiper leurs erreurs.