Identifier, analyser le besoin d’un client et spécifier un logiciel permettant d’y répondre
Utiliser des notations formelles pour produire des spécifications non-ambiguës
Intégrer les problématiques de tests, de robustesse, de qualité et de sécurité dans l’architecture d’un logiciel
Lire et analyser une spécification, en tirer une réalisation
Concevoir un algorithme itératif ou récursif adapté à une structure de données
Dérouler un algorithme
Assurer la pertinence, la fiabilité et la qualité d’une solution algorithmique / logicielle
Démontrer la terminaison et la correction d’un algorithme
Analyser et décomposer un problème pour identifier les méthodes informatiques à appliquer pour le résoudre
Se servir des bases de la logique pour organiser un raisonnement, construire et rédiger de manière synthétique et rigoureuse
Manipuler les fonctions booléennes (tables de vérité, de Karnaugh, expressions booléennes et calcul booléen...)
Utiliser les concepts de base des langages de programmation
Interpréter (à la main et via un programme) un code écrit dans un langage