Contenu | Capacités attendues |
Notion de programme en tant que donnée
Calculabilité, décidabilité | - 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 |
Récursivité | - Écrire un programme récursif - Analyser le fonctionnement d’un programme récursif |
Modularité
Mise au point des programmes
Gestion des bugs | - Utiliser des API ou des bibliothèques - Exploiter leur documentation - Créer des modules simples et les documenter - 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ébordements dans les tableaux, instruction conditionnelle non exhaustive, choix des inégalités, comparaisons et calculs entre flottants, mauvais nommage des variables, etc. |
Paradigmes de programmation | - Distinguer sur des exemples les paradigmes impératif, fonctionnel et objet - Choisir le paradigme de programmation selon le champ d’application d’un programme |