[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 :
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 :
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.