cours1 min de lecture

Langages et programmation

Mise au point des programmes, modularité, récursivité, paradigmes et grand vertige final — un programme est aussi une donnée, et tout n'est pas calculable.
programme

Au programme

Le chapitre TD prolonge ce que vous savez déjà programmer et l'élève au rang d'ingénierie : on n'écrit plus seulement du code qui marche, on écrit du code qui se relit, se documente, se teste, se réutilise — et on prend enfin le recul théorique nécessaire pour comprendre ce qu'un programme est et ce qu'aucun programme ne pourra jamais faire.

Vous y apprenez à :

  • anticiper les bugs (TD01) : typage, effets de bord, débordements de tableaux, conditionnelles non-exhaustives, comparaisons de flottants — et à durcir vos programmes par des assert, des doctests et un jeu de tests pytest ;
  • moduler votre code (TD02) : utiliser des bibliothèques, exploiter leur documentation, créer vos propres modules documentés ;
  • penser récursivement (TD05) : écrire et analyser des programmes récursifs, comprendre la pile d'appels, dompter l'explosion exponentielle par mémoïsation ;
  • distinguer trois paradigmes (TD04) : impératif, fonctionnel, objet — et voir le même problème résolu trois fois ;
  • prendre du recul (TD03) : un programme est une donnée pour un autre programme (interpréteur, compilateur), la calculabilité ne dépend pas du langage, et le problème de l'arrêt est indécidable.

Pré-requis

Le chapitre PG (Langages et programmation de Première) est un appui direct, notamment pour les spécifications, les assertions et la première rencontre avec les fonctions. La récursivité est nouvelle en Terminale.

Plan

  1. Mise au point des programmes — TD01 — typage, effets de bord, pièges classiques, assertions, doctests, jeux de tests avec pytest.
  2. Modularité — TD02 — import, modules, packages, bibliothèques, exploitation de doc, création d'un module documenté.
  3. Récursivité — TD05 — programmes récursifs, pile d'appels, factorielle, Fibonacci naïf vs mémoïsé, terminaison et relations de récurrence.
  4. Paradigmes de programmation — TD04 — impératif, fonctionnel, objet : un même problème résolu dans les trois.
  5. Programme comme donnée — TD03 — interpréteur, compilateur, calculabilité, problème de l'arrêt et argument d'auto-référence.

À la fin du chapitre, une fiche mémo de synthèse consolide les notions et propose une auto-évaluation. La source MDC d'évaluation notée (chapitre.eval.md) prépare le DS de fin de séquence.