Passer au contenu

Développement créatif

AP Principes de l'informatique · Sujet 1

Entrainer
Leçon vidéo pour ce sujet Ouvrir la page vidéo
6:15

Développement créatif

Voici un programme qui devrait afficher la moyenne de deux nombres. Il s'exécute. Il ne plante pas. Il affiche une réponse — et cette réponse est fausse. Donnez-lui quatre et six…

Narration en anglais · Sous-titres anglais + 中文 incrustés

1.1

Collaboration

Programme

Compréhension durable (CRD-1) : L'intégration de multiples perspectives grâce à la collaboration améliore les innovations informatiques au fur et à mesure de leur développement.

Objectif d'apprentissage CRD-1.A : Expliquer comment les innovations informatiques sont améliorées grâce à la collaboration. [Compétence 1.C]

  • CRD-1.A.1 Une innovation informatique comprend un programme comme partie intégrante de sa fonction.
  • CRD-1.A.2 Une innovation en informatique peut être physique (par ex., une voiture autonome), un logiciel de calcul non physique (par ex., un logiciel de retouche d'images) ou un concept de calcul non physique (par ex., le commerce électronique).
  • CRD-1.A.3 Une collaboration efficace produit une innovation en informatique qui reflète la diversité des talents et des perspectives de ceux qui l'ont conçue.
  • CRD-1.A.4 La collaboration incluant des perspectives diverses aide à éviter les biais dans le développement des innovations informatiques.
  • CRD-1.A.5 La consultation et la communication avec les utilisateurs sont des aspects importants du développement des innovations informatiques.
  • CRD-1.A.6 Les informations recueillies auprès des utilisateurs potentiels peuvent servir à comprendre la finalité d'un programme sous divers angles et à développer un programme intégrant pleinement ces perspectives.

Objectif d'apprentissage CRD-1.B : Expliquer comment les innovations informatiques sont développées par des groupes de personnes. [Compétence 1.C]

  • CRD-1.B.1 Les outils en ligne facilitent la collaboration en permettant aux programmateurs de partager et de fournir des commentaires sur des idées et des documents.
  • CRD-1.B.2 Des modèles courants tels que la programmation en binôme existent pour faciliter la collaboration.

Objectif d'apprentissage CRD-1.C : Démontrer des compétences interpersonnelles efficaces lors d'une collaboration. [Compétence 1.C]

  • CRD-1.C.1 Les équipes collaboratives efficaces pratiquent des compétences interpersonnelles, y compris mais sans s'y limiter :
    • la communication
    • la construction du consensus
    • la résolution de conflits
    • la négociation

Source : Description du cours et de l'examen AP College Board

Un puzzle en cours : collaboration et conception modulaire assemblent la solution
Un puzzle en cours : collaboration et conception modulaire assemblent la solution

L'informatique est une activité collaborative 协作. Travailler en équipe apporte plus de perspectives, repère plus d'erreurs et produit de meilleurs programmes que travailler seul. Une bonne collaboration utilise la construction de consensus, une communication claire et les forces de chaque membre. Pair programming 结对编程 – deux personnes devant un ordinateur, l'une tape et l'autre relit – est une pratique courante. À l'examen, vous devrez pouvoir expliquer comment la collaboration a amélioré un programme (plus d'idées, moins de bugs, tests plus larges).

Vocabulaire Entrainer
Anglais Chinois Pinyin
collaborative/kəˈlæbrətɪv/ 协作 xié zuò
Pair programming/peə ˈprəʊɡræmɪŋ/ 结对编程 jié duì biān chéng
input/ˈɪnpʊt/ 输入 shū rù
output/ˈaʊtpʊt/ 输出 shū chū
iterative/ˈɪtərətɪv/ 迭代 dié dài
decomposition/ˌdiːkɒmpəˈzɪʃn/ 分解 fēn jiě
Comments/ˈkɒments/ 注释 zhù shì
surveys/ˈsɜːveɪz/ 调查问卷 diào chá wèn juǎn
diagrams representing the layout of the user interface 用户界面 yòng hù jiè miàn
event/ɪˈvent/ 事件 shì jiàn
event handler/ɪˈvent ˈhændlə/ 事件处理程序 shì jiàn chǔ lǐ chéng xù
1.2

Fonction et but du programme

Programme

Compréhension durable (CRD-2) : Les développeurs créent et innoveront grâce à un processus de conception itératif axé sur l'utilisateur, qui intègre des cycles d'implémentation/retour d'information, et qui laisse largement de place à l'expérimentation et à la prise de risque.

Objectif d'apprentissage CRD-2.A : Décrire la finalité d'une innovation en informatique. [Compétence 1.A]

  • CRD-2.A.1 La finalité des innovations informatiques est de résoudre des problèmes ou de poursuivre des intérêts par l'expression créative.
  • CRD-2.A.2 Comprendre la finalité d'une innovation en informatique permet aux développeurs de développer cette innovation de manière améliorée.

Objectif d'apprentissage CRD-2.B : Expliquer comment un programme ou un segment de code fonctionne. [Compétence 4.A]

  • CRD-2.B.1 Un programme est un ensemble d'instructions de programme qui effectue une tâche spécifique lorsqu'il est exécuté par un ordinateur. Un programme est souvent appelé logiciel.
  • CRD-2.B.2 Un segment de code est un ensemble d'instructions de programme qui fait partie d'un programme.
  • CRD-2.B.3 Un programme doit fonctionner pour une variété d'entrées et de situations.
  • CRD-2.B.4 Le comportement d'un programme est la façon dont il fonctionne pendant son exécution et est souvent décrit par la manière dont un utilisateur interagit avec lui.
  • CRD-2.B.5 Un programme peut être décrit de manière générale par ce qu'il fait, ou plus précisément à la fois par ce que le programme fait et comment les instructions du programme实现 cette fonction.

Objectif d'apprentissage CRD-2.C : Identifier l(les) entrée(s) d'un programme. [Compétence 3.A]

  • CRD-2.C.1 Les entrées de programme sont des données envoyées à un ordinateur pour traitement par un programme. L'entrée peut prendre diverses formes, telles que tactile, audio, visuelle ou textuelle.
  • CRD-2.C.2 Un événement est associé à une action et fournit des données d'entrée à un programme.
  • CRD-2.C.3 Les événements peuvent être générés lorsqu'une touche est enfoncée, qu'un clic de souris est effectué, qu'un programme est lancé ou qu'une autre action définie se produit affectant le flux d'exécution.
  • CRD-2.C.4 Les entrées affectent généralement la sortie produite par un programme.
  • CRD-2.C.5 En programmation événementielle, les instructions de programme sont exécutées lorsqu'elles sont déclenchées plutôt que par le flux séquentiel de contrôle.
  • CRD-2.C.6 L'entrée peut provenir d'un utilisateur ou d'autres programmes.

Objectif d'apprentissage CRD-2.D : Identifier la(les) sortie(s) produites par un programme. [Compétence 3.A]

  • CRD-2.D.1 Les sorties de programme sont toutes les données envoyées d'un programme vers un périphérique. La sortie de programme peut prendre diverses formes, telles que tactile, audio, visuelle ou textuelle.
  • CRD-2.D.2 La sortie de programme est généralement basée sur l'entrée d'un programme ou son état précédent (par ex., les valeurs internes).

Source : Description du cours et de l'examen AP College Board

Tout programme est écrit pour un but – il résout un problème ou poursuit un intérêt. Un programme prend une entrée 输入, la traite, et produit une sortie 输出. Les entrées peuvent provenir d'un utilisateur, d'un appareil, d'un fichier ou d'un autre programme ; les sorties peuvent être visuelles, auditives, textuelles ou un signal vers un appareil. Savoir énoncer le but d'un programme et décrire clairement ses entrées et sorties est une compétence fondamentale (et fait partie de la tâche de performance Create).

Tout programme se décompose en entrée, traitement et sortie
Tout programme se décompose en entrée, traitement et sortie
Tout programme suit le modèle entrée-traitement-sortie
Tout programme suit le modèle entrée-traitement-sortie
Explorer

Explorer le modèle entrée → traitement → sortie

Parcourez le modèle ETP. Chaque programme prend une entrée, effectue un traitement en suivant ses instructions, puis produit une sortie — suivez un exemple d'application météo à travers la chaîne.

1.3

Conception et développement de programme

Programme

Compréhension durable (CRD-2) : Les développeurs créent et innoveront grâce à un processus de conception itératif axé sur l'utilisateur, qui intègre des cycles d'implémentation/retour d'information, et qui laisse largement de place à l'expérimentation et à la prise de risque.

Objectif d'apprentissage CRD-2.E : Développer un programme en utilisant un processus de développement. [Compétence 1.B]

  • CRD-2.E.1 Un processus de développement peut être ordonné et intentionnel, ou exploratoire par nature.
  • CRD-2.E.2 Il existe plusieurs processus de développement. Les phases suivantes sont couramment utilisées lors du développement d'un programme :
    • l'enquête et la réflexion
    • la conception
    • la prototypage
    • le test
  • CRD-2.E.3 Un processus de développement itératif nécessite des raffinements et des révisions basés sur les retours d'information, les tests ou la réflexion tout au long du processus. Cela peut nécessiter de revenir aux phases antérieures du processus.
  • CRD-2.E.4 Un processus de développement incrémental est celui qui divise le problème en petits morceaux et s'assure que chaque morceau fonctionne avant de l'ajouter à l'ensemble.

Objectif d'apprentissage CRD-2.F : Concevoir un programme et son interface utilisateur. [Compétence 1.B]

  • CRD-2.F.1 La conception d'un programme intègre une enquête pour déterminer ses exigences.
  • CRD-2.F.2 L'enquête dans un processus de développement est utile pour comprendre et identifier les contraintes du programme, ainsi que les préoccupations et intérêts des personnes qui utiliseront le programme.
  • CRD-2.F.3 Certaines façons dont l'enquête peut être réalisée sont les suivantes :
    • la collecte de données par sondages
    • les tests utilisateurs
    • les entretiens
    • les observations directes
  • CRD-2.F.4 Les exigences du programme décrivent comment un programme fonctionne et peuvent inclure une description des interactions utilisateur qu'un programme doit fournir.
  • CRD-2.F.5 La spécification d'un programme définit les exigences du programme.
  • CRD-2.F.6 Dans un processus de développement, la phase de conception énonce comment réaliser une spécification de programme donnée.
  • CRD-2.F.7 La phase de conception d'un programme peut inclure :
    • le brainstorming
    • la planification et le storyboarding
    • l'organisation du programme en modules et composants fonctionnels
    • la création de diagrammes représentant les mises en page de l'interface utilisateur
    • le développement d'une stratégie de test pour le programme

Objectif d'apprentissage CRD-2.G : Décrire la finalité d'un segment de code ou d'un programme en rédigeant de la documentation. [Compétence 4.A]

  • CRD-2.G.1 La documentation de programme est une description écrite de la fonction d'un segment de code, d'un événement, d'une procédure ou d'un programme et de la façon dont il a été développé.
  • CRD-2.G.2 Les commentaires sont une forme de documentation de programme écrite directement dans le programme pour être lue par des humains et n'affectent pas le fonctionnement d'un programme.
  • CRD-2.G.3 Les programmateurs doivent documenter un programme tout au long de son développement.
  • CRD-2.G.4 La documentation de programme facilite le développement et le maintien de programmes corrects lors du travail individuel ou dans des environnements de programmation collaboratifs.
  • CRD-2.G.5 Tous les environnements de programmation ne prennent pas en charge les commentaires, donc d'autres méthodes de documentation peuvent être nécessaires.

Objectif d'apprentissage CRD-2.H : Reconnaître les segments de code utilisés provenant d'autres sources. [Compétence 1.C]

  • CRD-2.H.1 Il est important de reconnaître tout segment de code qui a été développé collaborativement ou par une autre source.
  • CRD-2.H.2 La reconnaissance d'un ou de segments de code écrits par quelqu'un d'autre et utilisés dans un programme peut figurer dans la documentation du programme. La reconnaissance doit inclure l'origine ou le nom de l'auteur original.

Source : Description du cours et de l'examen AP College Board

Un programmeur en train de déboguer sur un poste de travail multi-écrans — conception et test itératifs
Un programmeur en train de déboguer sur un poste de travail multi-écrans — conception et test itératifs

Les programmes sont construits via un processus itératif 迭代, pas en une seule ligne droite : examiner le problème et les utilisateurs, concevoir (souvent avec un diagramme ou un plan écrit), implémenter en code, et tester – puis répéter. Un gros problème est découpé en petites pièces (décomposition 分解). Les commentaires 注释 et les noms clairs documentent la conception pour que les autres (et votre futur moi) puissent la comprendre. Le développement est incrémental – construisez et testez une petite pièce, puis ajoutez la suivante.

Les étapes du développement de programme, avec le test qui fournit des retours pour corriger et affiner
Les étapes du développement de programme, avec le test qui fournit des retours pour corriger et affiner
Le logiciel est construit par un processus de développement itératif et incrémental
Le logiciel est construit par un processus de développement itératif et incrémental

Enquêter sur ce dont les utilisateurs ont réellement besoin

Avant tout code écrit, le développeur enquête sur le problème et les personnes qui utiliseront le programme. Trois façons de le faire :

  • sondages 调查问卷 envoyés aux utilisateurs potentiels, collectant des données auprès de nombreuses personnes rapidement;
  • entretiens et observation directe des utilisateurs effectuant la tâche manuellement;
  • l'étude de solutions existantes pour voir ce qui fonctionne déjà et ce qui frustre les gens.

Les résultats sont transformés en une conception. Deux artefacts font cela : une liste de spécifications du programme disant exactement ce que le programme doit faire, et des diagrammes représentant la mise en page de l'interface utilisateur 用户界面 — des esquisses montrant quels contrôles apparaissent où, et ce que chacun fait lorsqu'il est utilisé. Concevoir l'interface sur papier d'abord est moins cher que de découvrir après codage que les boutons sont au mauvais endroit.

Événements, et programmes qui attendent

Tous les programmes ne s'exécutent pas directement de haut en bas. Un événement 事件 est généré lorsqu'une touche est pressée, une souris cliquée, un programme démarré, ou toute autre action définie se produit – et un événement change le flux d'exécution : le programme pause ce qu'il faisait et exécute le code attaché à cet événement, appelé gesteur d'événement 事件处理程序.

C'est pourquoi un programme avec interface graphique peut sembler ne rien faire : il attend le prochain événement. L'ordre d'arrivée de ces événements est décidé par l'utilisateur, pas par le programmeur, donc le même programme peut exécuter ses blocs dans un ordre différent à chaque utilisation.

Explorer

Parcourez le processus de développement itératif

Le développement est itératif : vous répétez les étapes, améliorant le programme un peu à chaque tour. Parcourez la boucle et remarquez qu'elle revient au début plutôt que de s'arrêter après un seul passage.

1.4

Identifier et corriger les erreurs

Programme

Compréhension durable (CRD-2) : Les développeurs créent et innoveront grâce à un processus de conception itératif axé sur l'utilisateur, qui intègre des cycles d'implémentation/retour d'information, et qui laisse largement de place à l'expérimentation et à la prise de risque.

Objectif d'apprentissage CRD-2.I : Pour les erreurs dans un algorithme ou un programme : a. Identifier l'erreur. [Compétence 4.C] b. Corriger l'erreur. [Compétence 4.C]

  • CRD-2.I.1 Une erreur logique est une erreur dans l'algorithme ou le programme qui le fait se comporter incorrectement ou inattendu.
  • CRD-2.I.2 Une erreur de syntaxe est une erreur dans le programme où les règles du langage de programmation ne sont pas respectées.
  • CRD-2.I.3 Une erreur d'exécution est une erreur dans le programme qui survient pendant l'exécution d'un programme. Les langages de programmation définissent leurs propres erreurs d'exécution.
  • CRD-2.I.4 Une erreur de dépassement est une erreur qui survient lorsqu'un ordinateur tente de traiter un nombre qui est en dehors de la plage de valeurs définie.
  • CRD-2.I.5 Les moyens suivants sont efficaces pour trouver et corriger les erreurs :
    • les cas de test
    • le traçage manuel
    • les visualisations
    • les débogueurs
    • l'ajout de statement(s) de sortie supplémentaires

Objectif d'apprentissage CRD-2.J : Identifier les entrées et les sorties attendues ou comportements correspondants pouvant être utilisés pour vérifier la correction d'un algorithme ou d'un programme. [Compétence 4.C]

  • CRD-2.J.1 Dans le processus de développement, le test utilise des entrées définies pour s'assurer qu'un algorithme ou un programme produit les résultats attendus. Les programmateurs utilisent les résultats des tests pour réviser leurs algorithmes ou leurs programmes.
  • CRD-2.J.2 Les entrées définies utilisées pour tester un programme doivent démontrer les différents résultats attendus qui sont à ou juste au-delà des extrêmes (minimum et maximum) des données d'entrée.
  • CRD-2.J.3 Les exigences du programme sont nécessaires pour identifier les entrées définies appropriées pour les tests.

Source : Description du cours et de l'examen AP College Board

Un bug est une erreur dans un programme ; le debugging 调试 (débogage) consiste à le trouver et à le corriger. Trois types :

Une table de traçage enregistre la valeur de chaque variable au fur et à mesure que le programme s'exécute, afin de détecter les bogues
Une table de traçage enregistre la valeur de chaque variable au fur et à mesure que le programme s'exécute, afin de détecter les bogues
  • une erreur de syntaxe 语法错误 viole les règles du langage, donc le programme ne peut pas s'exécuter;
  • une erreur d'exécution 运行时错误 fait planter le programme pendant son exécution (ex. : division par zéro);
  • une erreur logique 逻辑错误 permet l'exécution mais produit un résultat incorrect.

Détectez les bogues par des tests avec différentes entrées, en ajoutant des instructions d'affichage pour voir les valeurs, et en effectuant un traçage manuel du code. Choisissez délibérément les entrées de test : elles doivent démontrer les différents résultats attendus au niveau ou juste au-delà des extrêmes — les valeurs minimale et maximale que le programme doit accepter, ainsi qu'une valeur juste hors de chacun d'eux. Un programme fonctionnant correctement sur des données ordinaires échoue souvent sur une liste vide, un zéro, ou une valeur un cran après la fin d'une plage, ce sont donc les premières entrées à tester. Corriger un bug à la fois puis retester est la méthode fiable.

Compétence d'examen : savoir nommer le type d'erreur et décrire une stratégie de test capable de la détecter — thème récurrent en QCM et en tâche Create.

Trois types d'erreurs de programmation : syntaxe, logique et exécution
Trois types d'erreurs de programmation : syntaxe, logique et exécution

Exemple résolu. Un programme censé afficher la moyenne de deux nombres exécute au lieu de cela avg = a + b / 2. En traçant l'ordre des opérations, / s'exécute avant +, il calcule donc $a+\tfrac{b}{2}$ au lieu de la moyenne. Ajoutez des parenthèses pour corriger : avg = (a + b) / 2. Le test avec $a=4,\ b=6$ confirme la correction — la ligne erronée donne $4+3=7$, la ligne corrigée donne $\tfrac{10}{2}=5$. Tester avec des entrées connues est exactement la manière de trouver et confirmer une erreur logique.

Explorer

Suivez la logique du jeu de devinette et repérez une erreur de logique

Faites glisser la réponse et observez quelle branche s'exécute. Une erreur de logique enverrait la même réponse sur la mauvaise branche — le programme s'exécute toujours, mais affiche le mauvais message. Le numéro secret ici est 50.

Vocabulaire Entrainer
Anglais Chinois Pinyin
debugging/ˈdiːbʌɡɪŋ/ 调试 tiáo shì
syntax error/ˈsɪntæks ˈerə/ 语法错误 yǔ fǎ cuò wù
runtime error/ˈrʌntaɪm ˈerə/ 运行时错误 yùn xíng shí cuò wù
logic error/ˈlɒdʒɪk ˈerə/ 逻辑错误 luó jí cuò wù
1.4

Conseils d'examen

  • Une grande partie de CSP est évaluée par les tâches Create et écrites — expliquez clairement votre raisonnement, pas seulement votre résultat.
  • Connaissez les avantages de la collaboration et la façon dont des perspectives diverses réduisent les biais dans un programme.
  • Utilisez un vocabulaire précis (développement itératif, exigences du programme) lorsque vous décrivez un processus de conception.
  • Donnez et recevez des retours constructifs ; créditez les collaborateurs et les sources.
  • Décomposez un grand problème en modules plus petits qu'une équipe peut construire en parallèle.

Leçons interactives sur ce sujet

Traversez-le étape par étape, avec des exercices à vérification instantanée.

Épreuves Passées

Plus de sujets dans AP Principes de l'informatique

Se connecter ou créer un compte

IGCSE, A-Level & AP