Passer au contenu
Sujets

AP Principes de l'informatique

Conseils

Principes d'informatique AP est le cours d'informatique large : données et leur représentation, algorithmes et abstraction, programmation, Internet, et l'impact de l'informatique sur la société. Le code est écrit dans n'importe quel langage, et l'examen utilise un pseudocode neutre linguistique, donc les idées comptent plus que la syntaxe.

L'évaluation a deux parties. La Tâche de performance Create est un programme que vous construisez et documentez pendant le temps de classe ; l'examen de fin de cours est à choix multiples.

Les réponses écrites sur votre propre programme sont là que les points sont perdus — elles vous demandent d'expliquer un algorithme que vous avez écrit et de justifier une abstraction que vous avez choisie, précisément, de vos propres mots.

Les notes couvrent les grandes idées des données jusqu'à l'impact, avec des exemples de code que vous pouvez exécuter ici. La bibliothèque contient les questions d'examen d'échantillon, et il y a des notes sur la Tâche de performance Create, qui est évaluée sur votre propre programme et vos réponses écrites plutôt que sur l'examen seul.

  • 1

    Développement créatif

    Regarder la leçon
    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.
  • 2

    Données

    Regarder la leçon
    2.1

    Nombres binaires

    Programme

    Compréhension durable (DAT-1) : La façon dont un ordinateur représente les données internement est différente de la façon dont les données sont interprétées et affichées à l'utilisateur. Les programmes sont utilisés pour traduire les données en une représentation plus facile à comprendre pour les êtres humains.

    Objectif d'apprentissage DAT-1.A : Expliquer comment les données peuvent être représentées à l'aide de bits. [Compétence 3.C]

    • DAT-1.A.1 Les valeurs de données peuvent être stockées dans des variables, des listes d'éléments ou des constantes autonomes et peuvent être transmises en tant qu'entrée (ou sortie) à (ou depuis) des procédures.
    • DAT-1.A.2 Les dispositifs informatiques représentent les données numériquement, ce qui signifie que les composants de niveau le plus bas de toute valeur sont des bits.
    • DAT-1.A.3 Bit est une abréviation de chiffre binaire et vaut soit 0, soit 1.
    • DAT-1.A.4 Un octet est composé de 8 bits.
    • DAT-1.A.5 L'abstraction est le processus consistant à réduire la complexité en se concentrant sur l'idée principale. En masquant les détails sans rapport avec la question posée et en regroupant les détails pertinents et utiles, l'abstraction réduit la complexité et permet de se concentrer sur l'idée.
    • DAT-1.A.6 Les bits sont groupés pour représenter des abstractions. Ces abstractions incluent, mais ne se limitent pas à, les nombres, les caractères et les couleurs.
    • DAT-1.A.7 La même séquence de bits peut représenter différents types de données dans divers contextes.
    • DAT-1.A.8 Les données analogiques ont des valeurs qui évoluent de manière continue plutôt qu'en intervalles discrets au fil du temps. Certains exemples de données analogiques incluent le pitch et le volume d'une musique, les couleurs d'un tableau ou la position d'un sprinteur lors d'une course.
    • DAT-1.A.9 L'utilisation de données numériques pour approximer des données analogiques du monde réel constitue un exemple d'abstraction.
    • DAT-1.A.10 Les données analogiques peuvent être approximées numériquement à l'aide d'une technique d'échantillonnage, qui consiste à mesurer les valeurs du signal analogique à des intervalles réguliers appelés échantillons. Les échantillons sont mesurés pour déterminer les bits exacts nécessaires pour stocker chaque échantillon.

    Objectif d'apprentissage DAT-1.B : Expliquer les conséquences de l'utilisation de bits pour représenter les données. [Compétence 1.D]

    • DAT-1.B.1 Dans de nombreux langages de programmation, les entiers sont représentés par un nombre fixe de bits, ce qui limite la plage de valeurs entières et les opérations mathématiques sur ces valeurs. Cette limitation peut entraîner des débordements ou d'autres erreurs.
    • DAT-1.B.2 D'autres langages de programmation offrent une abstraction selon laquelle la taille des entiers représentables est limitée uniquement par la taille de la mémoire de l'ordinateur ; c'est le cas pour le langage défini dans la feuille de référence de l'examen.
    • DAT-1.B.3 Dans les langages de programmation, le nombre fixe de bits utilisé pour représenter les nombres réels limite la plage et les opérations mathématiques sur ces valeurs ; cette limitation peut entraîner des erreurs d'arrondi ou d'autres erreurs. Certains nombres réels sont représentés comme des approximations dans le stockage informatique.
      • Énoncé d'exclusion : Les limitations de plage spécifiques pour les nombres réels sortent du champ de cette formation et de l'examen AP.

    Objectif d'apprentissage DAT-1.C : Pour les nombres binaires : a. Calculer l'équivalent binaire (base 2) d'un entier positif (base 10) et vice versa. [Compétence 2.B] b. Comparer et ordonner des nombres binaires. [Compétence 2.B]

    • DAT-1.C.1 Les bases numériques, y compris le binaire et le décimal, sont utilisées pour représenter les données.
    • DAT-1.C.2 Le binaire (base 2) n'utilise que des combinaisons des chiffres zéro et un.
    • DAT-1.C.3 Le décimal (base 10) n'utilise que des combinaisons des chiffres $0 - 9$.
    • DAT-1.C.4 Comme pour le décimal, la position d'un chiffre dans la séquence binaire détermine sa valeur numérique. La valeur numérique est égale à la valeur du bit (0 ou 1) multipliée par la valeur de position de sa place.
    • DAT-1.C.5 La valeur de position de chaque emplacement est déterminée par la base élevée à la puissance de l'emplacement. Les emplacements sont numérotés en commençant par l'emplacement le plus à droite avec 0 et augmentent de 1 pour chaque emplacement suivant vers la gauche.

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

    Des chiffres binaires sur un écran — toutes les données numériques sont finalement stockées sous forme de 0 et de 1
    Chiffres binaires sur un écran — toutes les données numériques sont finalement stockées sous forme de 0 et de 1

    Les ordinateurs tout stocker sous forme de bits 位 — chacun étant un 0 ou un 1. Un groupe de 8 bits constitue un octet 字节. Les nombres sont stockés en binaire 二进制 (base 2), où chaque position représente une puissance de deux ($1, 2, 4, 8, 16, \dots$) au lieu des puissances de dix dans le décimal 十进制. Par exemple, le binaire 1011 correspond à $8+2+1=11$.

    Un tableau de valeur positionnelle 8 bits : les 1s sont placés sous les valeurs qui s'additionnent pour former le nombre
    Tableau des positions sur 8 bits : les 1 se situent sous les valeurs qui s'additionnent pour former le nombre

    Exemple résolu. Pour convertir le binaire 1101 en décimal, écrivez les positions 8 4 2 1 sous les bits 1 1 0 1 et additionnez ceux ayant un 1 : $8+4+0+1=13$. Dans l'autre sens, convertissez 19 en binaire en soustrayant la plus grande puissance de deux qui s'y adapte : $19-16=3$, puis $3-2=1$, puis $1-1=0$, donc les bits occupent les positions 16, 2 et 1 $\rightarrow$ 10011 (vérification : $16+2+1=19$).

    Parce qu'un ordinateur dispose d'un nombre fini de bits, il ne peut représenter qu'une plage limitée de valeurs. Cela provoque deux effets testés à l'examen :

    • Erreur de dépassement 溢出错误 : un nombre trop grand pour les bits disponibles ne peut pas être stocké correctement.
    • Erreur d'arrondi (de troncature) 舍入错误 : les nombres comportant des décimales (nombres réels) ne peuvent être que approximés, car une infinité de valeurs réelles doivent mappier vers un nombre fini de motifs de bits.

    Toutes les données — texte, images, son — sont finalement codées en binaire. Une image est une grille de pixels 像素, chacun stocké comme des nombres représentant ses couleurs ; le son est stocké comme des nombres échantillonnés plusieurs fois par seconde.

    Explorer

    Convertir entre binaire et décimal

    Les ordinateurs stockent les nombres en binaire (base 2). Chaque bit est une puissance de deux ; additionnez les valeurs de position des bits à 1 pour lire le nombre décimal.

    Vocabulaire Entrainer
    Anglais Chinois Pinyin
    bits/bɪts/ 位 wèi
    byte/baɪt/ 字节 zì jié
    binary/ˈbaɪnəri/ 二进制 èr jìn zhì
    decimal/ˈdesɪml/ 十进制 shí jìn zhì
    Overflow error/ˌəʊvəˈfləʊ ˈerə/ 溢出错误 yì chū cuò wù
    Round-off (rounding) error/raʊnd ɒf ˈerə/ 舍入错误 shě rù cuò wù
    pixels/ˈpɪkslz/ 像素 xiàng sù
    2.2

    Compression de données

    Programme

    Compréhension durable (DAT-1) : La façon dont un ordinateur représente les données internement est différente de la façon dont les données sont interprétées et affichées à l'utilisateur. Les programmes sont utilisés pour traduire les données en une représentation plus facile à comprendre pour les êtres humains.

    Objectif d'apprentissage DAT-1.D : Comparer les algorithmes de compression de données pour déterminer lequel est le meilleur dans un contexte particulier. [Compétence 1.D]

    • DAT-1.D.1 La compression de données peut réduire la taille (nombre de bits) des données transmises ou stockées.
    • DAT-1.D.2 Moins de bits ne signifie pas nécessairement moins d'informations.
    • DAT-1.D.3 Le taux de réduction de taille obtenu par la compression dépend à la fois de la quantité de redondance dans la représentation originale des données et de l'algorithme de compression appliqué.
    • DAT-1.D.4 Les algorithmes de compression de données sans perte peuvent généralement réduire le nombre de bits stockés ou transmis tout en garantissant une reconstruction complète des données originales.
    • DAT-1.D.5 Les algorithmes de compression de données avec perte peuvent réduire considérablement le nombre de bits stockés ou transmis, mais ne permettent que la reconstruction d'une approximation des données originales.
    • DAT-1.D.6 Les algorithmes de compression de données avec perte peuvent généralement réduire le nombre de bits stockés ou transmis davantage que les algorithmes de compression sans perte.
    • DAT-1.D.7 Dans les situations où la qualité ou la capacité de reconstruction des données originales est primordiale, les algorithmes de compression sans perte sont généralement choisis.
    • DAT-1.D.8 Dans les situations où la minimisation de la taille des données ou du temps de transmission est primordiale, les algorithmes de compression avec perte sont généralement choisis.

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

    Plateaux et tête de disque dur : les données compressées et stockées sous forme de motifs magnétiques
    Plateaux de disque dur et tête de lecture : données compressées et stockées sous forme de motifs magnétiques

    La compression 压缩 réduit le nombre de bits nécessaires pour stocker ou transmettre des données. Deux types :

    Méthodes de compression : sans perte contre avec perte, avec des exemples courants
    Compression methods: lossless versus lossy, with common examples
    • La compression sans perte 无损 compression permet de restaurer les données exactes d'origine (utilisée pour le texte et les programmes, où chaque bit compte).
    • La compression avec perte 有损 compression élimine certaines données pour réduire davantage la taille (utilisée pour les photos, la musique, la vidéo, où une légère perte de qualité est acceptable).

    Le choix entre les deux implique un compromis entre taille et fidélité : la sans perte conserve tout mais économise moins ; la avec perte économise plus mais perd définitivement des détails. Privilégiez la sans perte lorsque les données doivent être exactes.

    Explorer

    Compresser une série de répétitions

    L'encodage par longueur de course est une compression sans perte : une longue suite du même symbole est remplacée par le symbole et un compteur, réduisant les données sans perdre d'information.

    Vocabulaire Entrainer
    Anglais Chinois Pinyin
    Compression/kəmˈpreʃn/ 压缩 yā suō
    Lossless compression/ˈlɒsləs kəmˈpreʃn/ 无损压缩 wú sǔn yā suō
    Lossy compression/ˈlɒsi kəmˈpreʃn/ 有损压缩 yǒu sǔn yā suō
    Data/ˈdeɪtə/ 数据 shù jù
    2.3

    Extraction d'informations à partir de données

    Programme

    Compréhension durable (DAT-2) : Les programmes peuvent être utilisés pour traiter des données, ce qui permet aux utilisateurs de découvrir des informations et de créer de nouvelles connaissances.

    Objectif d'apprentissage DAT-2.A : Décrire quelles informations peuvent être extraites des données. [Compétence 5.B]

    • DAT-2.A.1 L'information est l'ensemble des faits et des modèles extraits des données.
    • DAT-2.A.2 Les données offrent des opportunités d'identification de tendances, d'établissement de connexions et de résolution de problèmes.
    • DAT-2.A.3 Les données traitées numériquement peuvent montrer une corrélation entre des variables. Une corrélation trouvée dans les données n'indique pas nécessairement qu'une relation de causalité existe. Des recherches supplémentaires sont nécessaires pour comprendre la nature exacte de la relation.
    • DAT-2.A.4 Souvent, une seule source ne contient pas les données nécessaires pour tirer une conclusion. Il peut être nécessaire de combiner des données provenant de diverses sources pour formuler une conclusion.

    Objectif d'apprentissage DAT-2.B : Décrire quelles informations peuvent être extraites des métadonnées. [Compétence 5.B]

    • DAT-2.B.1 Les métadonnées sont des données sur des données. Par exemple, la pièce de donnée peut être une image, tandis que les métadonnées peuvent incluire la date de création ou la taille de fichier de l'image.
    • DAT-2.B.2 Les modifications et suppressions apportées aux métadonnées ne changent pas les données principales.
    • DAT-2.B.3 Les métadonnées sont utilisées pour trouver, organiser et gérer des informations.
    • DAT-2.B.4 Les métadonnées peuvent augmenter l'utilisation efficace des données ou des ensembles de données en fournissant des informations supplémentaires.
    • DAT-2.B.5 Les métadonnées permettent de structurer et d'organiser les données.

    Objectif d'apprentissage DAT-2.C : Identifier les défis associés au traitement des données. [Compétence 5.D]

    • DAT-2.C.1 La capacité à traiter des données dépend des capacités des utilisateurs et de leurs outils.
    • DAT-2.C.2 Les ensembles de données posent des défis indépendamment de leur taille, tels que :
      • le besoin de nettoyer les données
      • les données incomplètes
      • les données invalides
      • le besoin de combiner des sources de données
    • DAT-2.C.3 Selon la façon dont les données ont été collectées, elles peuvent ne pas être uniformes. Par exemple, si les utilisateurs saisissent des données dans un champ ouvert, la manière dont ils choisissent d'abréger, d'épeler ou de mettre en majuscules quelque chose peut varier d'un utilisateur à l'autre.
    • DAT-2.C.4 Le nettoyage des données est un processus qui rend les données uniformes sans en modifier le sens (par ex., remplacer toutes les abréviations, orthographes et mises en majuscule équivalentes par le même mot).
    • DAT-2.C.5 Les problèmes de biais sont souvent créés par le type ou la source des données collectées. Le biais n'est pas éliminé simplement en collectant plus de données.
    • DAT-2.C.6 La taille d'un ensemble de données affecte la quantité d'informations qui peuvent en être extraites.
    • DAT-2.C.7 Les grands ensembles de données sont difficiles à traiter avec un seul ordinateur et peuvent nécessiter des systèmes parallèles.
    • DAT-2.C.8 L'évolutivité des systèmes est une considération importante lors du travail avec des ensembles de données, car la capacité de calcul d'un système affecte la manière dont les ensembles de données peuvent être traités et stockés.

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

    Les données 数据 deviennent utiles lorsque nous en extraions des informations 信息 — motifs, tendances et réponses aux questions. De grands jeux de données peuvent révéler des corrélations qu'un petit jeu ne peut pas, mais les données doivent être nettoyées (correction des erreurs et incohérences) et souvent transformées ou filtrées au préalable. Une corrélation 相关性 entre deux éléments ne prouve pas que l'un cause l'autre — mise en garde importante. Les météadonnées 元数据 (données sur des données, comme la date et l'emplacement d'une photo) aident à organiser et rechercher de grandes collections.

    Vocabulaire Entrainer
    Anglais Chinois Pinyin
    information/ˌɪnfəˈmeɪʃn/ 信息 xìn xī
    correlation/ˌkɒrɪˈleɪʃn/ 相关性 xiāng guān xìng
    Metadata/ˌmetəˈdeɪtə/ 元数据 yuán shù jù
    filtering/ˈfɪltərɪŋ/ 过滤 guò lǜ
    visualizing/ˈvɪʒuːəlaɪzɪŋ/ 可视化 kě shì huà
    privacy/ˈprɪvəsi/ 隐私 yǐn sī
    2.4

    Utilisation de programmes avec des données

    Programme

    Compréhension durable (DAT-2) : Les programmes peuvent être utilisés pour traiter des données, ce qui permet aux utilisateurs de découvrir des informations et de créer de nouvelles connaissances.

    Objectif d'apprentissage DAT-2.D : Extraire des informations à partir de données à l'aide d'un programme. [Compétence 2.B]

    • DAT-2.D.1 Les programmes peuvent être utilisés pour traiter des données afin d'acquérir des informations.
    • DAT-2.D.2 Les tableaux, diagrammes, textes et autres outils visuels peuvent être utilisés pour communiquer des aperçus et des connaissances tirés des données.
    • DAT-2.D.3 Les outils de recherche sont utiles pour trouver efficacement des informations.
    • DAT-2.D.4 Les systèmes de filtrage de données sont des outils importants pour trouver des informations et reconnaître des motifs dans les données.
    • DAT-2.D.5 Les programmes tels que les tableurs aident à organiser efficacement et à repérer des tendances dans les informations.
    • DAT-2.D.6 Certains processus qui peuvent être utilisés pour extraire ou modifier des informations à partir de données incluent les suivants :
      • transformer chaque élément d'un ensemble de données, tel que doubler chaque élément dans une liste, ou ajouter l'e-mail d'un parent à chaque fiche étudiant
      • filtrer un ensemble de données, tel que conserver uniquement les nombres positifs à partir d'une liste, ou conserver uniquement les étudiants qui se sont inscrits à la bande à partir d'un registre de tous les étudiants
      • combiner ou comparer des données de某种方式, tel que additionner une liste de nombres, ou trouver l'étudiant qui a la moyenne la plus élevée
      • visualiser un ensemble de données via un graphique, un diagramme ou autre représentation visuelle

    Objectif d'apprentissage DAT-2.E : Expliquer comment les programmes peuvent être utilisés pour obtenir des aperçus et des connaissances à partir de données. [Compétence 5.B]

    • DAT-2.E.1 Les programmes sont utilisés de manière itérative et interactive lors du traitement des informations pour permettre aux utilisateurs de gagner des aperçus et des connaissances sur les données.
    • DAT-2.E.2 Les programmeurs peuvent utiliser des programmes pour filtrer et nettoyer des données numériques, acquérant ainsi des aperçus et des connaissances.
    • DAT-2.E.3 La combinaison de sources de données, le regroupement de données et la classification de données font partie du processus d'utilisation de programmes pour obtenir des aperçus et des connaissances à partir de données.
    • DAT-2.E.4 Des aperçus et des connaissances peuvent être obtenus à partir de la traduction et de la transformation d'informations représentées numériquement.
    • DAT-2.E.5 Des motifs peuvent émerger lorsque des données sont transformées à l'aide de programmes.

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

    Les programmes traitent des données à des échelles inaccessibles aux humains. Les opérations courantes incluent le filtrage 过滤 (conserver uniquement les lignes répondant à une condition), le nettoyage (suppression des erreurs) et la visualisation 可视化 (graphiques et diagrammes rendant les motifs visibles). Combiner des données provenant de multiples sources peut révéler davantage, mais soulève des préoccupations de confidentialité 隐私. Les outils interactifs et les visualisations permettent aux personnes d'explorer les données et de tirer leurs propres conclusions.

    Compétence d'examen : savoir expliquer comment un programme aide à trouver des informations dans un grand jeu de données, et pourquoi la corrélation montrée dans les données n'établit pas la causalité.

    2.4

    Conseils d'examen

    • Convertir aisément entre binaire, décimal et (lorsque demandé) hexadécimal — pratiquer jusqu'à obtenir rapidité.
    • Rappeler qu'un bit est un chiffre binaire et qu'un octet contient 8 bits ; $n$ bits représentent $2^n$ valeurs.
    • Expliquer que toutes les données — nombres, texte, images, son — sont stockées en binaire, et que les bits finis provoquent un dépassement et une erreur d'arrondi.
    • Distuer la compression sans perte de la compression avec perte et identifier quand chacune est appropriée.
    • Montrer l'idée analogique-numérique : l'échantillonnage transforme un signal continu en valeurs discrètes.
  • 3

    Algorithmes et programmation

    Regarder la leçon

    Le code ci-dessous utilise la pseudocode AP CSP — la référence neutre linguistique de l'examen. L'affectation s'écrit a ← expression, et les indices de liste commencent à 1.

    3.1

    Variables et affectations

    Programme

    Compréhension durable (AAP-1) : Pour trouver des solutions spécifiques à des problèmes généralisables, les programmeurs représentent et organisent les données de multiples façons.

    Objectif d'apprentissage AAP-1.A : Représenter une valeur avec une variable. [Compétence 3.A]

    • AAP-1.A.1 Une variable est une abstraction à l'intérieur d'un programme qui peut contenir une valeur. Chaque variable possède un espace de stockage associé représentant une seule valeur à la fois, mais cette valeur peut être une liste ou une autre collection contenant elle-même plusieurs valeurs.
    • AAP-1.A.2 L'utilisation de noms de variables significatifs facilite la lisibilité du code du programme et la compréhension des valeurs représentées par les variables.
    • AAP-1.A.3 Certains langages de programmation fournissent des types pour représenter les données, auxquels on accède via des variables. Ces types incluent les nombres, les booléens, les listes et les chaînes de caractères.
    • AAP-1.A.4 Certaines valeurs sont mieux adaptées à la représentation avec un type de donnée particulier plutôt qu'avec un autre.

    Objectif d'apprentissage AAP-1.B : Déterminer la valeur d'une variable en résultat d'une affectation. [Compétence 4.B]

    • AAP-1.B.1 L'opérateur d'affectation permet à un programme de modifier la valeur représentée par une variable.

    • AAP-1.B.2 La feuille de référence de l'examen fournit l'opérateur "$\leftarrow$" à utiliser pour l'affectation. Par exemple,

      Texte :

      a ← expression

      Bloc :

      a ← expression

      évalue expression puis attribue une copie du résultat à la variable a.

    • AAP-1.B.3 La valeur stockée dans une variable sera la dernière valeur assignée. Par exemple :

      a ← 1 b ← a a ← 2 display(b)

      affiche toujours 1.

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

    Une variable 变量 est un emplacement nommé contenant une valeur. L'opérateur d'affectation 赋值 stocke la valeur de droite dans la variable de gauche :

    Une variable est un emplacement nommé dont la valeur peut changer
    Une variable est un espace nommé dont la valeur peut changer
    a ← 5
    b ← a + 3      // b is now 8
    

    Une variable contient une seule valeur à la fois ; une nouvelle affectation la remplace. Les variables permettent à un programme de stocker une entrée, de mémoriser des résultats et de les réutiliser.

    Explorer

    Observer une variable conserver et changer sa valeur

    Une variable est une boîte nommée qui stocke une valeur à la fois. Une affectation copie une valeur dans la boîte ; affecter à nouveau écrase ce qui s'y trouvait.

    Vocabulaire Entrainer
    Anglais Chinois Pinyin
    variable/ˈveərɪəbl/ 变量 biàn liàng
    assignment/əˈsaɪnmənt/ 赋值 fù zhí
    Data abstraction/ˈdeɪtə əbˈstrækʃn/ 数据抽象 shù jù chōu xiàng
    remainder/rɪˈmeɪndə/ 余数 yú shù
    string/strɪŋ/ 字符串 zì fú chuàn
    concatenation/kənˌkætəˈneɪʃn/ 拼接 pīn jiē
    Boolean expression/ˈbuːlɪən ekˈspreʃn/ 布尔表达式 bù ěr biǎo dá shì
    conditional (selection)/kənˈdɪʃənl/ 条件语句 tiáo jiàn yǔ jù
    nested conditional/ˈnestɪd kənˈdɪʃənl/ 嵌套条件 qiàn tào tiáo jiàn
    Iteration (a loop)/ˌɪtəˈreɪʃn/ 迭代 dié dài
    infinite loop/ˈɪnfɪnət luːp/ 无限循环 wú xiàn xún huán
    3.2

    Abstraction de données

    Programme

    Compréhension durable (AAP-1) : Pour trouver des solutions spécifiques à des problèmes généralisables, les programmeurs représentent et organisent les données de multiples façons.

    Objectif d'apprentissage AAP-1.C : Représenter une liste ou une chaîne de caractères à l'aide d'une variable. [Compétence 3.A]

    • AAP-1.C.1 Une liste est une séquence ordonnée d'éléments. Par exemple,

      [value1, value2, value3, ...]

      décrit une liste où value1 est le premier élément, value2 est le deuxième élément, value3 est le troisième élément, et ainsi de suite.

    • AAP-1.C.2 Un élément est une valeur individuelle dans une liste qui se voit attribuer un index unique.

    • AAP-1.C.3 Un index est une méthode courante pour référencer les éléments d'une liste ou d'une chaîne de caractères à l'aide de nombres naturels.

    • AAP-1.C.4 Une chaîne de caractères est une séquence ordonnée de caractères.

    Objectif d'apprentissage AAP-1.D : Pour l'abstraction de données : a. Développer une abstraction de données en utilisant des listes pour stocker plusieurs éléments. [Compétence 3.B] b. Expliquer comment l'utilisation de l'abstraction de données gère la complexité dans le code du programme. [Compétence 3.C]

    • AAP-1.D.1 L'abstraction de données fournit une séparation entre les propriétés abstraites d'un type de données et les détails concrets de sa représentation.

    • AAP-1.D.2 Les abstractions de données gèrent la complexité des programmes en donnant un nom à un ensemble de données sans faire référence aux détails spécifiques de la représentation.

    • AAP-1.D.3 Les abstractions de données peuvent être créées à l'aide de listes.

    • AAP-1.D.4 Le développement d'une abstraction de données à implémenter dans un programme peut entraîner un programme plus facile à développer et à maintenir.

    • AAP-1.D.5 Les abstractions de données contiennent souvent différents types d'éléments.

    • AAP-1.D.6 L'utilisation de listes permet de traiter plusieurs éléments apparents comme une seule valeur. Les listes sont désignées par différents noms, tels que tableau, selon le langage de programmation.

      • Énoncé d'exclusion (EK AAP-1.D.6) : L'utilisation de listes chaînées est hors du champ de ce cours et de l'examen AP.
    • AAP-1.D.7 La feuille de référence de l'examen fournit la notation

      [value1, value2, value3, ...]

      pour créer une liste avec ces valeurs comme premier, deuxième, troisième, etc. éléments. Par exemple,

      • Texte :

        aList ← [value1, value2, value3, ...]

        Bloc :

        aList ← value1, value2, value3

        crée une nouvelle liste contenant les valeurs value1, value2, value3 et ... aux indices 1, 2, 3 et ... respectivement et l'attribue à aList.

      • Texte :

        aList ← []

        Bloc :

        aList ← (vide)

        crée une nouvelle liste vide et l'attribue à aList.

      • Texte :

        aList ← bList

        Bloc :

        aList ← bList

        attribue une copie de la liste bList à la liste aList. Par exemple, si bList contient [20, 40, 60], alors aList contiendra également [20, 40, 60] après l'attribution.

    • AAP-1.D.8 La feuille de référence de l'examen décrit une structure de liste dont les valeurs d'index vont de 1 au nombre d'éléments de la liste, inclus. Pour toutes les opérations de liste, si un index de liste est inférieur à 1 ou supérieur à la longueur de la liste, un message d'erreur est produit et le programme se termine.

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

    L'abstraction de données 数据抽象 permet de gérer la complexité en donnant un seul nom à un ensemble de données — par exemple, une liste plutôt que des dizaines de variables séparées. Elle cache les détails : vous utilisez la collection nommée sans vous soucier de son stockage. Les listes (ci-dessous) constituent l'abstraction de données principale du cours.

    3.3

    Expressions mathématiques

    Programme

    Compréhension durable (AAP-2) : La manière dont les instructions sont séquencées et combinées dans un programme détermine le résultat calculé. Les programmes intègrent des structures d'itération et de sélection pour représenter la répétition et prendre des décisions afin de gérer des valeurs d'entrée variées.

    Objectif d'apprentissage AAP-2.A : Exprimer un algorithme utilisant la séquence sans utiliser un langage de programmation. [Compétence 2.A]

    • AAP-2.A.1 Un algorithme est un ensemble fini d'instructions accomplissant une tâche spécifique.
    • AAP-2.A.2 Au-delà des langages de programmation visuels et textuels, les algorithmes peuvent être exprimés de diverses manières, telles que le langage naturel, les diagrammes et le pseudocode.
    • AAP-2.A.3 Les algorithmes exécutés par des programmes sont implémentés à l'aide de langages de programmation.
    • AAP-2.A.4 Tout algorithme peut être construit à l'aide de combinaisons de séquence, de sélection et d'itération.

    Objectif d'apprentissage AAP-2.B : Représenter un processus algorithmique étape par étape à l'aide d'instructions de code séquentielles. [Compétence 2.B]

    • AAP-2.B.1 La séquence est l'application de chaque étape d'un algorithme dans l'ordre dans lequel les instructions de code sont données.
    • AAP-2.B.2 Une instruction de code est une partie du code d'un programme qui exprime une action à effectuer.
    • AAP-2.B.3 Une expression peut consister en une valeur, une variable, un opérateur ou un appel de procédure retournant une valeur.
    • AAP-2.B.4 Les expressions sont évaluées pour produire une seule valeur.
    • AAP-2.B.5 L'évaluation des expressions suit un ordre d'opérations défini par le langage de programmation.
    • AAP-2.B.6 Les instructions séquentielles s'exécutent dans l'ordre dans lequel elles apparaissent dans le segment de code.
    • AAP-2.B.7 La clarté et la lisibilité sont des considérations importantes lors de l'expression d'un algorithme dans un langage de programmation.

    Objectif d'apprentissage AAP-2.C : Évaluer des expressions utilisant des opérateurs arithmétiques. [Compétence 4.B]

    • AAP-2.C.1 Les opérateurs arithmétiques font partie de la plupart des langages de programmation et comprennent les opérateurs d'addition, de soustraction, de multiplication, de division et de module.

    • AAP-2.C.2 La feuille de référence de l'examen fournit a MOD b, qui évalue au reste de la division de a par b. On suppose que a est un entier supérieur ou égal à 0 et que b est un entier supérieur à 0. Par exemple, 17 MOD 5 évalue à 2.

    • AAP-2.C.3 La feuille de référence de l'examen fournit les opérateurs arithmétiques +, -, *, / et MOD.

      Texte et Bloc :

      • a + b
      • a - b
      • a * b
      • a / b
      • a MOD b

      Ceux-ci sont utilisés pour effectuer des opérations arithmétiques sur a et b. Par exemple, 17 / 5 évalue à 3.4.

    • AAP-2.C.4 L'ordre des opérations utilisé en mathématiques s'applique lors de l'évaluation des expressions. L'opérateur MOD a la même priorité que les opérateurs * et /.

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

    Les programmes calculent avec les opérateurs +, -, *, /, et MOD (le reste d'une division, par ex. 17 MOD 5 est 2). Les expressions suivent l'ordre habituel des opérations. MOD est particulièrement utile pour tester la divisibilité (n MOD 2 = 0 signifie que n est pair) et pour faire boucler les valeurs autour d'une plage.

    Explorer

    Évaluer une expression étape par étape

    Une expression est évaluée selon l'ordre des opérations : la multiplication et la division se font avant l'addition et la soustraction, de gauche à droite.

    3.4

    Chaînes (Strings)

    Programme

    Compréhension durable (AAP-2) : La manière dont les instructions sont séquencées et combinées dans un programme détermine le résultat calculé. Les programmes intègrent des structures d'itération et de sélection pour représenter la répétition et prendre des décisions afin de gérer des valeurs d'entrée variées.

    Objectif d'apprentissage AAP-2.D : Évaluer des expressions manipulant des chaînes de caractères. [Compétence 4.B]

    • AAP-2.D.1 La concaténation de chaînes joint deux chaînes ou plus bout à bout pour former une nouvelle chaîne.
    • AAP-2.D.2 Un sous-chaine (substring) est une partie d'une chaîne existante.

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

    Une chaîne de caractères 字符串 est une séquence ordonnée de caractères, comme "hello". Les programmes joignent des chaînes (concaténation 拼接) et trouvent leur longueur. Les chaînes représentent du texte — noms, messages, séquences — et constituent une entrée/sortie courante des programmes.

    3.5

    Expressions booléennes

    Programme

    Compréhension durable (AAP-2) : La manière dont les instructions sont séquencées et combinées dans un programme détermine le résultat calculé. Les programmes intègrent des structures d'itération et de sélection pour représenter la répétition et prendre des décisions afin de gérer des valeurs d'entrée variées.

    Objectif d'apprentissage AAP-2.E : Pour les relations entre deux variables, expressions ou valeurs : a. Écrire des expressions utilisant des opérateurs relationnels. [Compétence 2.B] b. Évaluer des expressions utilisant des opérateurs relationnels. [Compétence 4.B]

    • AAP-2.E.1 Une valeur booléenne est soit vraie, soit fausse.

    • AAP-2.E.2 La feuille de référence de l'examen fournit les opérateurs relationnels suivants : =, ≠, >, <, ≥ et ≤.

      Texte et Bloc :

      • a = b
      • a ≠ b
      • a > b
      • a < b
      • a ≥ b
      • a ≤ b

      Ceux-ci sont utilisés pour tester la relation entre deux variables, expressions ou valeurs. Une comparaison utilisant un opérateur relationnel évalue à une valeur booléenne. Par exemple, a = b évalue à true si a et b sont égaux ; sinon, il évalue à false.

    Objectif d'apprentissage AAP-2.F : Pour les relations entre des valeurs booléennes : a. Écrire des expressions utilisant des opérateurs logiques. [Compétence 2.B] b. Évaluer des expressions utilisant des opérateurs logiques. [Compétence 4.B]

    • AAP-2.F.1 La feuille de référence de l'examen fournit les opérateurs logiques NOT, AND et OR, qui évaluent à une valeur booléenne.

    • AAP-2.F.2 La feuille de référence de l'examen fournit

      Texte :

      NOT condition

      Bloc :

      NOT condition

      qui évalue à true si condition est false ; sinon il évalue à false.

    • AAP-2.F.3 La feuille de référence de l'examen fournit

      Texte :

      condition1 AND condition2

      Bloc :

      condition1 AND condition2

      qui évalue à true si tant condition1 que condition2 sont true ; sinon, elle évalue à false.

    • AAP-2.F.4 La feuille de référence de l'examen fournit

      Texte :

      condition1 OR condition2

      Bloc :

      condition1 OR condition2

      qui évalue à true si condition1 est true ou si condition2 est true ou si tant condition1 que condition2 sont true ; sinon, elle évalue à false.

    • AAP-2.F.5 L'opérande d'un opérateur logique est soit une expression booléenne, soit une valeur booléenne unique.

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

    Une expression booléenne évalue à true ou false. Elle utilise des opérateurs relationnels (=, ≠, <, >, ≤, ≥) et des opérateurs logiques NOT, AND, OR :

    Les trois familles d'opérateurs : arithmétiques, relationnels et logiques
    Les trois familles d'opérateurs : arithmétiques, relationnels et logiques
    • NOT inverse une valeur,
    • AND est vrai uniquement lorsque les deux côtés sont vrais,
    • OR est vrai quand au moins un côté est vrai.

    Ces conditions guident chaque décision et boucle.

    Explorer

    Essayer la table de vérité OU

    Une expression booléenne est soit vraie (1) soit fausse (0). OU est vrai lorsque au moins une entrée est vraie ; inversez les entrées pour voir tous les cas.

    3.6

    Conditionnelles

    Programme

    Compréhension durable (AAP-2) : La manière dont les instructions sont séquencées et combinées dans un programme détermine le résultat calculé. Les programmes intègrent des structures d'itération et de sélection pour représenter la répétition et prendre des décisions afin de gérer des valeurs d'entrée variées.

    Objectif d'apprentissage AAP-2.G : Exprimer un algorithme utilisant la sélection sans utiliser de langage de programmation. [Compétence 2.A]

    • AAP-2.G.1 La sélection détermine quelles parties d'un algorithme sont exécutées selon qu'une condition est true ou false.

    Objectif d'apprentissage AAP-2.H : Pour la sélection : a. Écrire des instructions conditionnelles. [Compétence 2.B] b. Déterminer le résultat des instructions conditionnelles. [Compétence 4.B]

    • AAP-2.H.1 Les instructions conditionnelles, ou « instructions if », modifient le flux séquentiel du contrôle en exécutant différentes instructions selon la valeur d'une expression booléenne.

    • AAP-2.H.2 La feuille de référence de l'examen fournit

      Texte :

      IF(condition) { <block of statements> }

      Bloc :

      IF condition block of statements

      dans lequel le code dans block of statements est exécuté si l'expression booléenne condition évalue à true ; aucune action n'est prise si condition évalue à false.

    • AAP-2.H.3 La feuille de référence de l'examen fournit

      Texte :

      IF(condition) { <first block of statements> } ELSE { <second block of statements> }

      Bloc :

      IF condition first block of statements ELSE second block of statements

      dans lequel le code dans first block of statements est exécuté si l'expression booléenne condition évalue à true ; sinon, le code dans second block of statements est exécuté.

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

    Une conditionnelle (sélection) 条件语句 choisit quel code exécuter. IF exécute un bloc uniquement si sa condition est vraie ; ELSE fournit une alternative :

    La sélection choisit entre des chemins en fonction d'une condition
    La sélection choisit entre des chemins selon une condition
    IF (score ≥ 60)
    {
        DISPLAY("Pass")
    }
    ELSE
    {
        DISPLAY("Fail")
    }
    
    Explorer

    Suivre une décision si / sinon

    Une conditionnelle exécute une branche ou l'autre selon que sa condition est vraie. Faites glisser la valeur au-delà du seuil et observez quelle branche est prise.

    3.7

    Conditionnelles imbriquées

    Programme

    Compréhension durable (AAP-2) : La manière dont les instructions sont séquencées et combinées dans un programme détermine le résultat calculé. Les programmes intègrent des structures d'itération et de sélection pour représenter la répétition et prendre des décisions afin de gérer des valeurs d'entrée variées.

    Objectif d'apprentissage AAP-2.I : Pour la sélection imbriquée : a. Écrire des instructions conditionnelles imbriquées. [Compétence 2.B] b. Déterminer le résultat des instructions conditionnelles imbriquées. [Compétence 4.B]

    • AAP-2.I.1 Les instructions conditionnelles imbriquées consistent en des instructions conditionnelles situées à l'intérieur d'autres instructions conditionnelles.

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

    Une condition imbriquée place une IF à l'intérieur d'une autre (ou enchaîne ELSE IF) pour choisir parmi plus de deux chemins. Seul le premier branchement correspondant s'exécute :

    IF (g ≥ 90)      { grade ← "A" }
    ELSE IF (g ≥ 80) { grade ← "B" }
    ELSE             { grade ← "C" }
    
    3.8

    Itération

    Programme

    Compréhension durable (AAP-2) : La manière dont les instructions sont séquencées et combinées dans un programme détermine le résultat calculé. Les programmes intègrent des structures d'itération et de sélection pour représenter la répétition et prendre des décisions afin de gérer des valeurs d'entrée variées.

    Objectif d'apprentissage AAP-2.J : Exprimer un algorithme utilisant l'itération sans utiliser de langage de programmation. [Compétence 2.A]

    • AAP-2.J.1 L'itération est une portion répétitive d'un algorithme. L'itération répète un nombre spécifié de fois ou jusqu'à ce qu'une condition donnée soit remplie.

    Objectif d'apprentissage AAP-2.K : Pour l'itération : a. Écrire des instructions d'itération. [Compétence 2.B] b. Déterminer le résultat ou l'effet secondaire des instructions d'itération. [Compétence 4.B]

    • AAP-2.K.1 Les instructions d'itération modifient le flux séquentiel du contrôle en répétant un ensemble d'instructions zéro ou plusieurs fois, jusqu'à ce qu'une condition d'arrêt soit rencontrée.

    • AAP-2.K.2 La feuille de référence de l'examen fournit

      Texte :

      REPEAT n TIMES { <block of statements> }

      Bloc :

      REPEAT n TIMES block of statements

      dans lequel la block of statements est exécutée n fois.

    • AAP-2.K.3 La feuille de référence de l'examen fournit

      Texte :

      REPEAT UNTIL(condition) { <block of statements> }

      Bloc :

      REPEAT UNTIL condition block of statements

      dans lequel le code dans block of statements est répété jusqu'à ce que l'expression booléenne condition évalue à true.

    • AAP-2.K.4 Dans l'itération REPEAT UNTIL(condition), une boucle infinie se produit lorsque la condition de fin n'évaluera jamais à true.

    • AAP-2.K.5 Dans l'itération REPEAT UNTIL(condition), si la condition évalue initialement à true, le corps de la boucle n'est pas exécuté du tout, car la condition est vérifiée avant la boucle.

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

    Itération (boucle) 迭代 répète des instructions. La pseudocode AP possède deux formes :

    Une boucle pré-conditionnelle (WHILE) teste avant le corps, donc elle peut s'exécuter zéro fois
    Une boucle à pré-condition (WHILE) teste avant le corps, elle peut donc s'exécuter zéro fois
    REPEAT 5 TIMES        // a fixed count
    {
        DISPLAY("hi")
    }
    
    REPEAT UNTIL (found)  // until a condition becomes true
    {
        ...
    }
    

    Une boucle qui ne rencontre jamais sa condition d'arrêt est une boucle infinie 无限循环.

    Explorer

    Parcourir une boucle un passage à la fois

    Une boucle répète un bloc tant que son compteur parcourt une plage. Passez étape par étape pour voir le compteur et le total cumulé se mettre à jour à chaque passage.

    3.9

    Développement d'algorithmes

    Programme

    Compréhension durable (AAP-2) : La manière dont les instructions sont séquencées et combinées dans un programme détermine le résultat calculé. Les programmes intègrent des structures d'itération et de sélection pour représenter la répétition et prendre des décisions afin de gérer des valeurs d'entrée variées.

    Objectif d'apprentissage AAP-2.L : Comparer plusieurs algorithmes pour déterminer s'ils produisent le même effet secondaire ou le même résultat. [Compétence 1.D]

    • AAP-2.L.1 Les algorithmes peuvent être écrits de différentes manières tout en accomplissant les mêmes tâches.
    • AAP-2.L.2 Des algorithmes qui semblent similaires peuvent produire des effets secondaires ou des résultats différents.
    • AAP-2.L.3 Certaines instructions conditionnelles peuvent être écrites sous forme d'expressions booléennes équivalentes.
    • AAP-2.L.4 Certaines expressions booléennes peuvent être écrites sous forme d'instructions conditionnelles équivalentes.
    • AAP-2.L.5 Différents algorithmes peuvent être développés ou utilisés pour résoudre le même problème.

    Objectif d'apprentissage AAP-2.M : Pour les algorithmes : a. Créer des algorithmes. [Compétence 2.A] b. Combiner et modifier des algorithmes existants. [Compétence 2.B]

    • AAP-2.M.1 Les algorithmes peuvent être créés à partir d'une idée, en combinant des algorithmes existants, ou en modifiant des algorithmes existants.
    • AAP-2.M.2 La connaissance d'algorithmes existants peut aider à en construire de nouveaux. Certains algorithmes existants incluent :
      • déterminer la valeur maximale ou minimale de deux nombres ou plus
      • calculer la somme ou la moyenne de deux nombres ou plus
      • identifier si un entier est ou n'est pas divisible par un autre entier
      • déterminer le parcours d'un robot à travers un labyrinthe
    • AAP-2.M.3 L'utilisation d'algorithmes existants corrects comme briques de construction pour en créer un autre présente des avantages tels que la réduction du temps de développement, la réduction des tests et la simplification de l'identification des erreurs.

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

    Code source Python sur un écran — les algorithmes sont des instructions précises et ordonnées
    Code source Python sur un écran — les algorithmes sont des instructions précises et ordonnées

    Un algorithme n'est pas la même chose qu'un code. Au-delà des langages de programmation visuels et textuels, un algorithme peut s'exprimer de nombreuses façons : en langage naturel (phrases courantes), sous forme de diagramme tel qu'un organigramme, ou en pseudocode. Ces formes sont destinées aux humains — elles permettent de vérifier la logique et de s'y accorder avant tout choix de langage, et le même algorithme peut ensuite être écrit dans n'importe quelle langue.

    Lorsque vous l'écrivez en langage de programmation, la clarté et la lisibilité sont des considérations importantes, pas une décoration : des noms de variables significatifs, un retrait cohérent et des commentaires expliquant le pourquoi plutôt que le quoi. Le programme devra être lu et modifié plus tard par quelqu'un — souvent vous-même — et un algorithme que personne ne peut suivre ne peut être maintenu ni débogué.

    Un algorithme 算法 est une séquence finie d'étapes qui résout un problème, construite à partir de séquencement, sélection et itération. Différents algorithmes peuvent résoudre le même problème, et vous devriez pouvoir combiner et modifier des algorithmes existants (par exemple, compter les valeurs dans une liste qui répondent à une condition, ou trouver la plus grande). Tracez un algorithme à la main pour vérifier qu'il est correct.

    Un organigramme présente un algorithme en utilisant les symboles standard
    Un organigramme présente un algorithme en utilisant les symboles standard
    Vocabulaire Entrainer
    Anglais Chinois Pinyin
    algorithm/ˈælɡərɪθəm/ 算法 suàn fǎ
    3.10

    Listes

    Programme

    Compréhension durable (AAP-2) : La manière dont les instructions sont séquencées et combinées dans un programme détermine le résultat calculé. Les programmes intègrent des structures d'itération et de sélection pour représenter la répétition et prendre des décisions afin de gérer des valeurs d'entrée variées.

    Objectif d'apprentissage AAP-2.N : Pour les opérations sur les listes : a. Écrire des expressions utilisant l'indexation de liste et les procédures de liste. [Compétence 2.B] b. Évaluer des expressions utilisant l'indexation de liste et les procédures de liste. [Compétence 4.B]

    • AAP-2.N.1 La feuille de référence de l'examen fournit les opérations de base sur les listes, y compris :
      • accéder à un élément par son index

        Texte :

        aList[i]

        Bloc :

        aList i

        accède à l'élément de aList à l'index i. Le premier élément de aList est à l'index 1 et est accèsé à l'aide de la notation aList[1].

      • attribuer la valeur d'un élément de liste à une variable

        Texte :

        x ← aList[i]

        Bloc :

        x ← aList i

        attribue la valeur de aList[i] à la variable x.

      • attribuer une valeur à un élément de liste

        Texte :

        aList[i] ← x

        Bloc :

        aList i ← x

        attribue la valeur de x à aList[i].

        Texte :

        aList[i] ← aList[j]

        Bloc :

        aList i ← aList j

        attribue la valeur de aList[j] à aList[i].

      • insérer des éléments à un index donné

        Texte :

        INSERT(aList, i, value)

        Bloc :

        INSERT aList, i, value

        décale vers la droite toutes les valeurs dans aList aux indices supérieurs ou égaux à i. La longueur de la liste augmente de 1, et value est placé à l'index i dans aList.

      • ajouter des éléments à la fin de la liste

        Texte :

        APPEND(aList, value)

        Bloc :

        APPEND aList, value

        augmente la longueur de aList de 1, et value est placé à la fin de aList.

      • supprimer des éléments

        Texte :

        REMOVE(aList, i)

        Bloc :

        REMOVE aList, i

        supprime l'élément à l'index i dans aList et décale vers la gauche toute valeur aux indices supérieurs à i. La longueur de aList diminue de 1.

      • déterminer la longueur d'une liste

        Texte :

        LENGTH(aList)

        Bloc :

        LENGTH aList

        évalue au nombre d'éléments actuellement présents dans aList.

    • AAP-2.N.2 Les procédures de liste sont implémentées conformément aux règles de syntaxe du langage de programmation.

    Objectif d'apprentissage AAP-2.O : Pour les algorithmes impliquant des éléments d'une liste : a. Écrire des instructions d'itération pour parcourir une liste. [Compétence 2.B] b. Déterminer le résultat d'un algorithme incluant des traversées de liste. [Compétence 4.B]

    • AAP-2.O.1 Parcourir une liste peut être une traversée complète, où tous les éléments de la liste sont accédés, ou une traversée partielle, où seule une portion des éléments est accédée.

      • Énoncé d'exclusion (EK AAP-2.O.1) : Parcourir plusieurs listes simultanément en utilisant le même index pour les deux (traversées parallèles) est hors du champ de ce cours et de l'examen AP.
    • AAP-2.O.2 Les instructions d'itération peuvent être utilisées pour parcourir une liste.

    • AAP-2.O.3 La feuille de référence de l'examen fournit

      Texte :

      FOR EACH item IN aList { <block of statements> }

      Bloc :

      FOR EACH item IN aList block of statements

      La variable item se voit attribuer la valeur de chaque élément de aList séquentiellement, dans l'ordre, du premier élément au dernier. Le code dans block of statements s'exécute une fois pour chaque attribution de item.

    • AAP-2.O.4 La connaissance d'algorithmes existants utilisant l'itération peut aider à construire de nouveaux algorithmes. Certains exemples d'algorithmes existants souvent utilisés avec les listes incluent :

      • déterminer une valeur minimale ou maximale dans une liste
      • calculer une somme ou une moyenne d'une liste de nombres
    • AAP-2.O.5 Les algorithmes de recherche linéaire ou séquentielle vérifient chaque élément d'une liste, dans l'ordre, jusqu'à ce que la valeur souhaitée soit trouvée ou que tous les éléments aient été vérifiés.

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

    Une liste 列表 est une collection ordonnée de valeurs sous un seul nom, l'abstraction de données clé du cours. La pseudo-code AP utilise des indices commençant à 1 :

    Une liste contient plusieurs valeurs dans une seule variable, chacune étant trouvée par son index
    Une liste contient plusieurs valeurs dans une seule variable, chacune étant trouvée par son index
    scores ← [88, 74, 95]
    DISPLAY(scores[1])          // 88
    scores[2] ← 80              // replace the 2nd value
    APPEND(scores, 60)          // add to the end
    INSERT(scores, 1, 100)      // insert at index 1
    REMOVE(scores, 3)           // delete the 3rd element
    LENGTH(scores)              // how many elements
    

    Parcourez une liste avec une boucle pour additionner, compter, chercher ou trouver un maximum :

    FOR EACH x IN scores
    {
        total ← total + x
    }
    
    Vocabulaire Entrainer
    Anglais Chinois Pinyin
    list/lɪst/ 列表 liè biǎo
    3.11

    Recherche Binaire

    Programme

    Compréhension durable (AAP-2) : La manière dont les instructions sont séquencées et combinées dans un programme détermine le résultat calculé. Les programmes intègrent des structures d'itération et de sélection pour représenter la répétition et prendre des décisions afin de gérer des valeurs d'entrée variées.

    Objectif d'apprentissage AAP-2.P : Pour les algorithmes de recherche binaire : a. Déterminer le nombre d'itérations nécessaires pour trouver une valeur dans un jeu de données. [Compétence 1.D] b. Expliquer les conditions nécessaires pour effectuer une recherche binaire. [Compétence 1.A]

    • AAP-2.P.1 L'algorithme de recherche binaire commence au milieu d'un ensemble de données numérotées trié et élimine la moitié des données ; ce processus se répète jusqu'à ce que la valeur souhaitée soit trouvée ou que tous les éléments aient été éliminés.
      • Énoncé d'exclusion (EK AAP-2.P.1) : Des implémentations spécifiques de la recherche binaire sont hors du champ du cours et de l'examen AP.
    • AAP-2.P.2 Les données doivent être triées pour utiliser l'algorithme de recherche binaire.
    • AAP-2.P.3 La recherche binaire est souvent plus efficace que la recherche séquentielle/linéaire lorsqu'elle est appliquée à des données triées.

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

    Un annuaire téléphonique : la recherche binaire divise par deux les pages restantes à chaque étape
    Un annuaire téléphonique : la recherche binaire divise par deux les pages restantes à chaque étape

    La recherche binaire trouve une valeur dans une liste triée beaucoup plus vite que vérifier chaque élément. Elle examine l'élément central, puis rejette la moitié qui ne peut pas contenir la cible, répétant jusqu'à ce qu'elle soit trouvée. Chaque étape divise par deux l'espace de recherche, donc une liste de $n$ éléments prend environ $\log_2 n$ étapes. Elle nécessite que les données soient triées au préalable.

    La recherche binaire divise la plage à chaque étape (la liste doit être triée)
    La recherche binaire divise la plage à chaque étape (la liste doit être triée)

    Exemple résolu. La recherche d'une valeur dans une liste triée de $8$ éléments, la recherche binaire divise la plage à chaque étape : $8\rightarrow4\rightarrow2\rightarrow1$, au plus $3$ comparaisons ($\log_2 8=3$), alors qu'une recherche linéaire pourrait prendre jusqu'à $8$. L'avantage croît exponentiellement : environ $1{,}000$ éléments n'ont besoin que de $\approx10$ étapes de recherche binaire (mais jusqu'à $1{,}000$ pour une recherche linéaire), et $1{,}000{,}000$ éléments n'ont besoin que de $\approx20$. Diviser par deux est ce qui en fait un algorithme de temps raisonnable.

    Vocabulaire Entrainer
    Anglais Chinois Pinyin
    Binary search/ˈbaɪnəri sɜːtʃ/ 二分搜索 èr fēn sōu suǒ
    3.12

    Appels de Procédures

    Programme

    Compréhension durable (AAP-3) : Les programmeurs décomposent les problèmes en pièces plus petites et plus gérables. En créant des procédures et en exploitant les paramètres, les programmeurs généralisent des processus réutilisables. Les procédures permettent aux programmeurs de s'appuyer sur du code existant déjà testé, leur permettant d'écrire des programmes plus rapidement et avec plus de confiance.

    Objectif d'apprentissage AAP-3.A : Pour les appels de procédures : a. Écrire des instructions pour appeler des procédures. [Compétence 3.B] b. Déterminer le résultat ou l'effet d'un appel de procédure. [Compétence 4.B]

    • AAP-3.A.1 Une procédure est un groupe nommé d'instructions de programmation pouvant avoir des paramètres et des valeurs de retour.

    • AAP-3.A.2 Les procédures sont désignées par différents noms, comme méthode ou fonction, selon le langage de programmation.

    • AAP-3.A.3 Les paramètres sont les variables d'entrée d'une procédure. Les arguments spécifient les valeurs des paramètres lors de l'appel d'une procédure.

    • AAP-3.A.4 Un appel de procédure interrompt l'exécution séquentielle des instructions, amenant le programme à exécuter les instructions contenues dans la procédure avant de continuer. Une fois la dernière instruction de la procédure (ou une instruction de retour) exécutée, le flux de contrôle revient au point immédiatement après celui où la procédure a été appelée.

    • AAP-3.A.5 La feuille de référence de l'examen fournit

      procName(arg1, arg2, ...)

      comme moyen d'appeler

      Texte :

      PROCEDURE procName(parameter1, parameter2, ...) { <block of statements> }

      Bloc :

      PROCEDURE procName parameter1, parameter2,... block of statements

      qui prend zéro ou plus d'arguments ; arg1 est attribué à parameter1, arg2 est attribué à parameter2, et ainsi de suite.

    • AAP-3.A.6 La feuille de référence de l'examen fournit la procédure

      Texte :

      DISPLAY(expression)

      Bloc :

      DISPLAY expression

      pour afficher la valeur de expression, suivie d'un espace.

    • AAP-3.A.7 La feuille de référence de l'examen fournit la

      Texte :

      RETURN(expression)

      Bloc :

      RETURN expression

      instruction, utilisée pour retourner le flux de contrôle au point où la procédure a été appelée et pour retourner la valeur de expression.

    • AAP-3.A.8 La feuille de référence de l'examen fournit

      result ← procName(arg1, arg2, ...)

      pour attribuer à result la "valeur de la procédure" retournée en appelant

      Texte :

      PROCEDURE procName(parameter1, parameter2, ...) { <block of statements> RETURN(expression) }

      Bloc :

      PROCEDURE procName parameter1, parameter2,... block of statements RETURN expression

    • AAP-3.A.9 La feuille de référence de l'examen fournit la procédure

      Texte :

      INPUT()

      Bloc :

      INPUT

      qui accepte une valeur de l'utilisateur et retourne la valeur saisie.

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

    Une procédure (fonction) 过程 est un bloc de code nommé et réutilisable. L'appeler exécute son code avec les arguments que vous fournissez, et elle peut retourner une valeur :

    sum ← Add(3, 4)      // call, passing 3 and 4
    

    Les procédures vous permettent d'utiliser du code sans connaître son fonctionnement interne – l'abstraction procédurale 过程抽象.

    3.13

    Développement de Procédures

    Programme

    Compréhension durable (AAP-3) : Les programmeurs décomposent les problèmes en pièces plus petites et plus gérables. En créant des procédures et en exploitant les paramètres, les programmeurs généralisent des processus réutilisables. Les procédures permettent aux programmeurs de s'appuyer sur du code existant déjà testé, leur permettant d'écrire des programmes plus rapidement et avec plus de confiance.

    Objectif d'apprentissage AAP-3.B : Expliquer comment l'utilisation de l'abstraction procédurale gère la complexité dans un programme. [Compétence 3.C]

    • AAP-3.B.1 Un type courant d'abstraction est l'abstraction procédurale, qui fournit un nom à un processus et permet d'utiliser une procédure sans connaître que ce qu'elle fait, pas comment elle le fait.
    • AAP-3.B.2 L'abstraction procédurale permet de baser la solution d'un grand problème sur les solutions de sous-problèmes plus petits. Cela s'accomplit en créant des procédures pour résoudre chacun des sous-problèmes.
    • AAP-3.B.3 La subdivision d'un programme informatique en sous-programmes distincts est appelée modularité.
    • AAP-3.B.4 Une abstraction procédurale peut extraire des fonctionnalités partagées pour généraliser la fonctionnalité au lieu de dupliquer le code. Cela permet la réutilisation du code du programme, ce qui aide à gérer la complexité.
    • AAP-3.B.5 L'utilisation de paramètres permet de généraliser les procédures, rendant les procédures réutilisables avec une gamme de valeurs d'entrée ou d'arguments.
    • AAP-3.B.6 L'utilisation de l'abstraction procédurale aide à améliorer la lisibilité du code.
    • AAP-3.B.7 L'utilisation de l'abstraction procédurale dans un programme permet aux programmeurs de modifier les détails internes de la procédure (pour la rendre plus rapide, plus efficace, utilisant moins de mémoire, etc.) sans avoir besoin d'avertir les utilisateurs du changement tant que ce que la procédure fait est préservé.

    Objectif d'apprentissage AAP-3.C : Développer des abstractions procédurales pour gérer la complexité dans un programme en écrivant des procédures. [Compétence 3.B]

    • AAP-3.C.1 La feuille de référence de l'examen fournit

      Texte :

      PROCEDURE procName(parameter1, parameter2, ...) { <block of statements> }

      Bloc :

      PROCEDURE procName parameter1, parameter2,... block of statements

      qui est utilisé pour définir une procédure prenant zéro ou plus d'arguments. La procédure contient block of statements.

    • AAP-3.C.2 La feuille de référence de l'examen fournit

      Texte :

      PROCEDURE procName(parameter1, parameter2, ...) { <block of statements> RETURN(expression) }

      Bloc :

      PROCEDURE procName parameter1, parameter2,... block of statements RETURN expression

      qui est utilisé pour définir une procédure prenant zéro ou plus d'arguments. La procédure contient block of statements et retourne la valeur de expression. L'instruction RETURN peut apparaître à n'importe quel endroit à l'intérieur de la procédure et provoque un retour immédiat de la procédure vers l'instruction qui l'a appelée.

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

    Vous définissez une procédure avec un nom, des paramètres (entrées), et un corps, et optionnellement RETURN un résultat :

    Décomposer un programme en procédures et sous-procédures
    Décomposer un programme en procédures et sous-procédures
    PROCEDURE Add(a, b)
    {
        RETURN(a + b)
    }
    

    Écrire vos propres procédures réduit la répétition, divise un grand problème en pièces nommées, et rend les programmes lisibles et plus faciles à tester – l'essence de l'abstraction 抽象.

    Vocabulaire Entrainer
    Anglais Chinois Pinyin
    procedure (function)/prəˈsiːdʒə/ 过程 guò chéng
    procedural abstraction/prəˈsiːdʒərəl əbˈstrækʃn/ 过程抽象 guò chéng chōu xiàng
    abstraction/əbˈstrækʃn/ 抽象 chōu xiàng
    library/ˈlaɪbrəri/ 库 kù
    3.14

    Bibliothèques

    Programme

    Compréhension durable (AAP-3) : Les programmeurs décomposent les problèmes en pièces plus petites et plus gérables. En créant des procédures et en exploitant les paramètres, les programmeurs généralisent des processus réutilisables. Les procédures permettent aux programmeurs de s'appuyer sur du code existant déjà testé, leur permettant d'écrire des programmes plus rapidement et avec plus de confiance.

    Objectif d'apprentissage AAP-3.D : Sélectionner des bibliothèques appropriées ou des segments de code existants à utiliser dans la création de nouveaux programmes. [Compétence 2.B]

    • AAP-3.D.1 Une bibliothèque logicielle contient des procédures qui peuvent être utilisées dans la création de nouveaux programmes.
    • AAP-3.D.2 Les segments de code existants peuvent provenir de sources internes ou externes, telles que des bibliothèques ou du code écrit précédemment.
    • AAP-3.D.3 L'utilisation de bibliothèques simplifie la tâche de création de programmes complexes.
    • AAP-3.D.4 Les interfaces de programmation d'application (API) sont des spécifications définissant le comportement et l'utilisation des procédures dans une bibliothèque.
    • AAP-3.D.5 La documentation d'une API/bibliothèque est nécessaire pour comprendre les comportements qu'elle fournit et la manière de les utiliser.

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

    Une bibliothèque 库 est un ensemble de procédures prêtes à l'emploi que d'autres peuvent réutiliser. Une API (Interface de Programmation d'Application) 应用程序接口 documente ce que fait chaque procédure, ses paramètres et son résultat – afin que vous puissiez l'utiliser sans voir son code. Les bibliothèques font gagner du temps et permettent de s'appuyer sur du travail existant et testé.

    La documentation fait partie de la bibliothèque. La documentation d'une API ou d'une bibliothèque est nécessaire pour comprendre les comportements qu'elle fournit et comment les utiliser — ce que chaque procédure attend comme paramètres, ce qu'elle retourne et ce qu'elle fait aux limites. Sans elle, vous devriez lire le code source, ce qui contredit l'objectif de l'abstraction ; avec elle, vous pouvez utiliser une procédure correctement sans savoir comment elle fonctionne à l'intérieur.

    Vocabulaire Entrainer
    Anglais Chinois Pinyin
    Interface/ˈɪntəfeɪs/ 应用程序接口 yìng yòng chéng xù jiē kǒu
    3.15

    Valeurs Aléatoires

    Programme

    Compréhension durable (AAP-3) : Les programmeurs décomposent les problèmes en pièces plus petites et plus gérables. En créant des procédures et en exploitant les paramètres, les programmeurs généralisent des processus réutilisables. Les procédures permettent aux programmeurs de s'appuyer sur du code existant déjà testé, leur permettant d'écrire des programmes plus rapidement et avec plus de confiance.

    Objectif d'apprentissage AAP-3.E : Pour la génération de valeurs aléatoires : a. Écrire des expressions pour générer des valeurs possibles. [Compétence 2.B] b. Évaluer des expressions pour déterminer les résultats possibles. [Compétence 4.B]

    • AAP-3.E.1 La feuille de référence de l'examen fournit

      Texte :

      RANDOM(a, b)

      Bloc :

      RANDOM a, b

      qui génère et retourne un entier aléatoire compris entre a et b, inclus. Chaque résultat a une probabilité égale de survenir. Par exemple, RANDOM(1, 3) pourrait retourner 1, 2 ou 3.

    • AAP-3.E.2 L'utilisation de la génération de nombres aléatoires dans un programme signifie que chaque exécution peut produire un résultat différent.

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

    RANDOM(a, b) retourne un entier aléatoire de a à b (inclus), permettant à un programme de produire des résultats imprévisibles – pour les jeux, l'échantillonnage ou les simulations. Chaque appel peut donner une valeur différente, donc un programme utilisant l'aléatoire se comportera différemment à chaque exécution.

    3.16

    Simulations

    Programme

    Compréhension durable (AAP-3) : Les programmeurs décomposent les problèmes en pièces plus petites et plus gérables. En créant des procédures et en exploitant les paramètres, les programmeurs généralisent des processus réutilisables. Les procédures permettent aux programmeurs de s'appuyer sur du code existant déjà testé, leur permettant d'écrire des programmes plus rapidement et avec plus de confiance.

    Objectif d'apprentissage AAP-3.F : Pour les simulations : a. Expliquer comment les ordinateurs peuvent être utilisés pour représenter des phénomènes ou des événements du monde réel. [Compétence 1.A] b. Comparer les simulations avec des contextes du monde réel. [Compétence 1.D]

    • AAP-3.F.1 Les simulations sont des abstractions d'objets ou de phénomènes plus complexes à des fins spécifiques.
    • AAP-3.F.2 Une simulation est une représentation qui utilise des ensembles de valeurs variables pour refléter l'état changeant d'un phénomène.
    • AAP-3.F.3 Les simulations imitent souvent des événements du monde réel afin de tirer des conclusions, permettant d'investiguer un phénomène sans les contraintes du monde réel.
    • AAP-3.F.4 Le processus de développement d'une simulation abstraite implique la suppression de détails spécifiques ou la simplification de fonctionnalités.
    • AAP-3.F.5 Les simulations peuvent contenir un biais découlant des choix d'éléments du monde réel inclus ou exclus.
    • AAP-3.F.6 Les simulations sont les plus utiles lorsque les événements du monde réel sont irréalisables pour des expériences (trop grands, trop petits, trop rapides, trop lents, trop coûteux ou trop dangereux).
    • AAP-3.F.7 Les simulations facilitent la formulation et l'affinement d'hypothèses relatives aux objets ou phénomènes considérés.
    • AAP-3.F.8 Les générateurs de nombres aléatoires peuvent être utilisés pour simuler la variabilité existant dans le monde réel.

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

    Une simulation 模拟 est un programme qui modélise un processus réel pour l'étudier en toute sécurité et à faible coût. Les simulations simplifient la réalité (elles omettent des détails) et utilisent souvent des aléas pour imiter des événements hasardeux. Elles permettent de tester des scénarios qui seraient trop coûteux, longs ou dangereux dans la vie réelle – mais leurs résultats ne valent que tant que leurs hypothèses sont valides.

    Une simulation est une façon de faire de la science, pas seulement une image. Parce qu'elle peut être exécutée de nombreuses fois, à bas coût et en changeant une variable à la fois, une simulation facilite la formulation et le raffinement d'hypothèses sur l'objet ou le phénomène considéré : vous proposez une explication, exécutez le modèle, comparez le résultat avec la réalité, et ajustez soit l'hypothèse soit le modèle. C'est pourquoi les simplifications d'une simulation comptent — un résultat ne soutient une hypothèse sur le monde réel que dans la mesure où ce qui a été omis n'a pas d'importance.

    Vocabulaire Entrainer
    Anglais Chinois Pinyin
    simulation/ˌsɪmjʊˈleɪʃn/ 模拟 mó nǐ
    Efficiency/ɪˈfɪʃənsi/ 效率 xiào lǜ
    heuristic/hjuːˈrɪstɪk/ 启发式 qǐ fā shì
    undecidable/ˌʌndɪˈsaɪdəbl/ 不可判定 bù kě pàn dìng
    3.17

    Efficacité Algorithmique

    Programme

    Compréhension durable (AAP-4) : Il existe des problèmes que les ordinateurs ne peuvent pas résoudre, et même lorsqu'un ordinateur peut résoudre un problème, il peut ne pas pouvoir le faire en un temps raisonnable.

    Objectif d'apprentissage AAP-4.A : Pour déterminer l'efficacité d'un algorithme : a. Expliquer la différence entre les algorithmes s'exécutant en un temps raisonnable et ceux qui ne le font pas. [Compétence 1.D] b. Identifier les situations où une solution heuristique peut être plus appropriée. [Compétence 1.D]

    • AAP-4.A.1 Un problème est une description générale d'une tâche qui peut (ou ne peut pas) être résolue algorithmiquement. Une instance d'un problème inclut également une entrée spécifique. Par exemple, le tri est un problème ; trier la liste (2,3,1,7) est une instance du problème.
    • AAP-4.A.2 Un problème de décision est un problème ayant une réponse oui/non (par ex., y a-t-il un chemin de A vers B ?). Un problème d'optimisation est un problème dont l'objectif est de trouver la solution "meilleure" parmi plusieurs (par ex., quel est le chemin le plus court de A vers B ?).
    • AAP-4.A.3 L'efficacité est une estimation de la quantité de ressources informatiques utilisées par un algorithme. L'efficacité est généralement exprimée sous forme de fonction de la taille de l'entrée.
      • Énoncé d'exclusion (EK AAP-4.A.3) : L'analyse formelle des algorithmes (Big-O) et le raisonnement formel utilisant des formules mathématiques sont hors du champ de ce cours et de l'examen AP.
    • AAP-4.A.4 L'efficacité d'un algorithme est déterminée par un raisonnement formel ou mathématique.
    • AAP-4.A.5 L'efficacité d'un algorithme peut être mesurée informellement en déterminant le nombre de fois qu'une instruction ou un groupe d'instructions s'exécute.
    • AAP-4.A.6 Différents algorithmes corrects pour le même problème peuvent avoir des efficacités différentes.
    • AAP-4.A.7 Les algorithmes ayant une efficacité polynomiale ou plus lente (constante, linéaire, quadratique, cubique, etc.) sont dits s'exécuter en un temps raisonnable. Les algorithmes ayant des efficacités exponentielles ou factorielles sont des exemples d'algorithmes s'exécutant en un temps irraisonnable.
    • AAP-4.A.8 Certains problèmes ne peuvent pas être résolus en un temps raisonnable car il n'existe aucun algorithme efficace pour les résoudre. Dans ces cas, des solutions approximatives sont recherchées.
    • AAP-4.A.9 Une heuristique est une approche à un problème qui produit une solution qui n'est pas garantie comme étant optimale, mais qui peut être utilisée lorsque les techniques garantissant toujours de trouver une solution optimale sont irréalisables.
      • Énoncé d'exclusion (AAP-4.A.9) : Les solutions heuristiques spécifiques sont hors du champ de ce cours et de l'examen AP.

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

    L'efficacité 效率 est la quantité de temps (ou de mémoire) dont un algorithme a besoin lorsque sa taille d'entrée augmente. Un algorithme de temps raisonnable voit son travail augmenter selon un polynôme de la taille d'entrée (ex. : linéaire ou quadratique) ; un algorithme de temps déraisonnable augmente bien plus vite (ex. : double avec chaque élément ajouté), devenant irréaliste pour de grandes entrées. Un algorithme plus rapide peut rendre un problème auparavant insoluble possible. Parfois, une réponse exacte prend trop de temps, donc une heuristique 启发式 – une approche qui trouve une réponse suffisante rapidement – est utilisée à la place.

    Comment le temps d'exécution d'un algorithme augmente avec la taille de l'entrée n
    Comment le temps d'exécution d'un algorithme augmente avec la taille de l'entrée n
    3.18

    Problèmes Indécidables

    Programme

    Compréhension durable (AAP-4) : Il existe des problèmes que les ordinateurs ne peuvent pas résoudre, et même lorsqu'un ordinateur peut résoudre un problème, il peut ne pas pouvoir le faire en un temps raisonnable.

    Objectif d'apprentissage AAP-4.B : Expliquer l'existence de problèmes indécidables en informatique. [Compétence 1.A]

    • AAP-4.B.1 Un problème décidable est un problème de décision pour lequel un algorithme peut être écrit pour produire une sortie correcte pour toutes les entrées (par ex., "Le nombre est-il pair ?").
    • AAP-4.B.2 Un problème indécidable est un problème pour lequel aucun algorithme ne peut être construit capable de fournir toujours une réponse correcte oui ou non.
      • Énoncé d'exclusion (EK AAP-4.B.2) : Déterminer si un problème donné est indécidable est hors du champ de ce cours et de l'examen AP.
    • AAP-4.B.3 Un problème indécidable peut avoir certaines instances avec une solution algorithmique, mais il n'existe pas de solution algorithmique pouvant résoudre toutes les instances du problème.

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

    Certains problèmes sont indécidables 不可判定 : aucun algorithme ne peut résoudre tous les cas d'entre eux avec une réponse oui/non correcte. C'est une limite fondamentale de l'informatique – non pas une question de disposer d'un ordinateur plus rapide, mais une preuve qu'un tel algorithme ne peut exister.

    Compétence d'examen : soyez capable de déterminer le résultat d'un segment de code en le traçant, de comparer l'efficacité de deux algorithmes (temps raisonnable vs déraisonnable), et de reconnaître l'abstraction procédurale et de données dans un programme.

    3.18

    Conseils d'examen

    • Sachez qu'une variable est un espace nommé pour une valeur et tracez comment l'affectation la met à jour étape par étape.
    • Lisez attentivement la pseudo-code AP – a <- expression affecte, et les listes sont à indice 1 sur la feuille de référence de l'examen.
    • Distinguez une variable d'une liste (une collection accessible par index) et utilisez correctement les opérations de liste.
    • Évaluez les expressions avec la bonne priorité logique et booléenne (AND, OR, NOT).
    • Choisissez des noms de variables clairs et significatifs – les tâches écrites récompensent le code lisible.
  • 4

    Systèmes informatiques et réseaux

    Regarder la leçon
    4.1

    Internet

    Programme

    Compréhension fondamentale (CSN-1) : Les ordinateurs et les réseaux facilitent le transfert de données.

    Objectif d'apprentissage CSN-1.A : Expliquer comment les dispositifs informatiques fonctionnent ensemble dans un réseau. [Compétence 5.A]

    • CSN-1.A.1 Un dispositif informatique est un objet physique capable d'exécuter un programme. Certains exemples incluent les ordinateurs, tablettes, serveurs, routeurs et capteurs intelligents.
    • CSN-1.A.2 Un système informatique est un groupe de dispositifs informatiques et de programmes travaillant ensemble pour un objectif commun.
    • CSN-1.A.3 Un réseau informatique est un groupe de dispositifs informatiques interconnectés capables d'envoyer ou de recevoir des données.
    • CSN-1.A.4 Un réseau informatique est un type de système informatique.
    • CSN-1.A.5 Un chemin entre deux dispositifs informatiques sur un réseau informatique (un expéditeur et un récepteur) est une séquence de dispositifs directement connectés commençant à l'expéditeur et se terminant au récepteur.
    • CSN-1.A.6 Le routage est le processus de recherche d'un chemin de l'expéditeur au récepteur.
    • CSN-1.A.7 La bande passante d'un réseau informatique est la quantité maximale de données pouvant être envoyées dans un laps de temps fixe.
    • CSN-1.A.8 La bande passante est généralement mesurée en bits par seconde.

    Objectif d'apprentissage CSN-1.B : Expliquer comment fonctionne Internet. [Compétence 5.A]

    • CSN-1.B.1 Internet est un réseau informatique composé de réseaux interconnectés utilisant des protocoles de communication standardisés et ouverts (non propriétaires).
    • CSN-1.B.2 L'accès à Internet dépend de la capacité de connecter un dispositif informatique à un dispositif connecté à Internet.
    • CSN-1.B.3 Un protocole est un ensemble de règles convenu spécifiant le comportement d'un système.
    • CSN-1.B.4 Les protocoles utilisés sur Internet sont ouverts, ce qui permet aux utilisateurs de connecter facilement davantage de dispositifs informatiques à Internet.
    • CSN-1.B.5 Le routage sur Internet est généralement dynamique ; il n'est pas spécifié à l'avance.
    • CSN-1.B.6 La évolutivité d'un système est sa capacité à changer de taille et d'échelle pour répondre à de nouvelles demandes.
    • CSN-1.B.7 Internet a été conçu pour être évolutif.

    Objectif d'apprentissage CSN-1.C : Expliquer comment les données sont transmises via Internet par paquets. [Compétence 5.A]

    • CSN-1.C.1 L'information est transmise sur Internet sous forme de flux de données. Les flux de données contiennent des blocs de données, qui sont encapsulés dans des paquets.
    • CSN-1.C.2 Les paquets contiennent un fragment de données et des métadonnées utilisés pour acheminer le paquet entre l'origine et la destination sur Internet, ainsi que pour la réassemblage des données.
    • CSN-1.C.3 Les paquets peuvent arriver à la destination dans l'ordre, hors ordre, ou pas du tout.
    • CSN-1.C.4 IP, TCP et UDP sont des protocoles couramment utilisés sur Internet.

    Objectif d'apprentissage CSN-1.D : Décrire les différences entre Internet et le World Wide Web. [Compétence 5.A]

    • CSN-1.D.1 Le World Wide Web est un système de pages, de programmes et de fichiers liés entre eux.
    • CSN-1.D.2 HTTP est un protocole utilisé par le World Wide Web.
    • CSN-1.D.3 Le World Wide Web utilise Internet.

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

    Connecteur Ethernet RJ45 – les liens physiques transportent les paquets sur Internet
    Connecteur Ethernet RJ45 – les liens physiques transportent les paquets sur Internet

    L'Internet 互联网 est un réseau mondial de réseaux. Les données voyagent sous forme de paquets 数据包 – de petits morceaux envoyés séparément et réassemblés à destination. Deux concepts le rendent opérationnel à grande échelle :

    Internet est le réseau mondial ; le Web est un service fonctionnant dessus
    Internet est le réseau mondial ; le Web est un service fonctionnant dessus
    • Protocoles 协议 sont des règles convenues pour la communication. Les adresses IP (Internet Protocol) adressent et routent les paquets ; TCP les réassemble dans l'ordre et réclame ceux perdus ; HTTP transporte les pages web ; DNS traduit un nom comme example.com en une adresse IP.
    • Redondance 冗余 et routage : il existe beaucoup de chemins possibles entre deux points, donc si un chemin échoue, les paquets en prennent un autre. Cela rend Internet tolérant aux pannes 容错.

    Internet est conçu pour être ouvert et évolutif – basé sur des normes que tout le monde peut utiliser, afin qu'il continue de fonctionner alors que des milliards d'appareils se connectent. La bande passante 带宽 est la quantité de données qu'une connexion peut transporter par seconde.

    Explorer

    Comment les données traversent Internet en paquets

    Internet divise un message en paquets numérotés, chacun adressé et routé indépendamment (souvent par des chemins différents), puis réassemblé à destination. Cette conception le rend tolérant aux pannes : si un route échoue, les paquets en prennent un autre.

    Vocabulaire Entrainer
    Anglais Chinois Pinyin
    Internet/ˈɪntənet/ 互联网 hù lián wǎng
    packets/ˈpækɪts/ 数据包 shù jù bāo
    Protocols/ˈprəʊtəkɒlz/ 协议 xié yì
    Redundancy/rɪˈdʌndənsi/ 冗余 rǒng yú
    fault-tolerant/fɒlt ˈtɒlərənt/ 容错 róng cuò
    Bandwidth/ˈbændwɪdθ/ 带宽 dài kuān
    reliability/rɪˌlaɪəˈbɪlɪti/ 可靠性 kě kào xìng
    Sequential computing/siːˈkwenʃl kəmˈpjuːtɪŋ/ 顺序计算 shùn xù jì suàn
    Parallel computing/ˈpærəlel kəmˈpjuːtɪŋ/ 并行计算 bìng xíng jì suàn
    Distributed computing/ˈdɪstrɪbjuːtɪd kəmˈpjuːtɪŋ/ 分布式计算 fēn bù shì jì suàn
    speedup/ˈspiːdʌp/ 加速比 jiā sù bǐ
    4.2

    Tolérance aux Pannes

    Programme

    Compréhension fondamentale (CSN-1) : Les ordinateurs et les réseaux facilitent le transfert de données.

    Objectif d'apprentissage CSN-1.E : Pour les systèmes tolérants aux pannes, comme Internet : a. Décrire les avantages de la tolérance aux pannes. [Compétence 1.D] b. Expliquer comment un système donné est tolérant aux pannes. [Compétence 5.A] c. Identifier les vulnérabilités aux défaillances dans un système. [Compétence 1.D]

    • CSN-1.E.1 Internet a été conçu pour être tolérant aux pannes, avec des abstractions pour l'acheminement et la transmission des données.
    • CSN-1.E.2 La redondance est l'inclusion de composants supplémentaires qui peuvent être utilisés pour atténuer la défaillance d'un système si d'autres composants échouent.
    • CSN-1.E.3 Un moyen d'obtenir une redondance réseau consiste à avoir plus d'un chemin entre deux appareils connectés.
    • CSN-1.E.4 Si un appareil ou une connexion particulière sur Internet tombe en panne, les données suivantes seront envoyées via un autre itinéraire, si possible.
    • CSN-1.E.5 Lorsqu'un système peut supporter des défaillances tout en continuant à fonctionner, on dit qu'il est tolérant aux pannes. C'est important car les éléments de systèmes complexes tombent en panne à des moments inattendus, souvent par groupes, et la tolérance aux pannes permet aux utilisateurs de continuer à utiliser le réseau.
    • CSN-1.E.6 La redondance au sein d'un système nécessite souvent des ressources supplémentaires, mais peut offrir l'avantage de la tolérance aux pannes.
    • CSN-1.E.7 La redondance des options d'acheminement entre deux points augmente la fiabilité d'Internet et aide à sa mise à l'échelle vers plus d'appareils et plus de personnes.

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

    Un routeur Wi-Fi : la passerelle locale qui achemine les paquets vers Internet plus large
    Un routeur Wi-Fi : la passerelle locale qui achemine les paquets vers Internet plus large

    Un système est tolérant aux pannes s'il continue de fonctionner même lorsqu'une partie de lui échoue. Internet y parvient grâce à des connexions redondantes : car les paquets peuvent être routés par plusieurs chemins, la panne d'un routeur ou d'un câble n'arrête pas la communication – le trafic se redirige simplement. La tolérance aux paires coûte des ressources supplémentaires (les chemins redondants) mais améliore considérablement la fiabilité 可靠性. Un seul chemin sans sauvegarde n'est pas tolérant aux pannes.

    Le commutation de paquets envoie les paquets par des routes indépendantes, permettant au réseau de tolérer un lien défaillant
    Le commutation de paquets envoie les paquets par des routes indépendantes, permettant au réseau de tolérer un lien défaillant
    4.3

    Calcul Parallèle et Distribué

    Programme

    Compréhension durable (CSN-2) : Le calcul parallèle et distribué exploite plusieurs ordinateurs pour résoudre plus rapidement des problèmes complexes ou traiter de grands ensembles de données.

    Objectif d'apprentissage CSN-2.A : Pour le calcul séquentiel, parallèle et distribué : a. Comparer les solutions de problème. [Compétence 1.D] b. Déterminer l'efficacité des solutions. [Compétence 1.D]

    • CSN-2.A.1 Le calcul séquentiel est un modèle de calcul où les opérations sont exécutées dans l'ordre, une à la fois.
    • CSN-2.A.2 Le calcul parallèle est un modèle de calcul où le programme est divisé en plusieurs petites opérations de calcul séquentiel, dont certaines sont exécutées simultanément.
    • CSN-2.A.3 Le calcul distribué est un modèle de calcul où plusieurs appareils sont utilisés pour exécuter un programme.
    • CSN-2.A.4 La comparaison de l'efficacité des solutions peut se faire en comparant le temps nécessaire pour effectuer la même tâche.
    • CSN-2.A.5 Une solution séquentielle prend autant de temps que la somme de toutes ses étapes.
    • CSN-2.A.6 Une solution de calcul parallèle prend autant de temps que ses tâches séquentielles plus la durée de la plus longue de ses tâches parallèles.
    • CSN-2.A.7 L'accélération d'une solution parallèle est mesurée par le temps mis pour accomplir la tâche en séquentiel divisé par le temps mis pour accomplir la tâche en parallèle.

    Objectif d'apprentissage CSN-2.B : Décrire les avantages et les défis du calcul parallèle et distribué. [Compétence 1.D]

    • CSN-2.B.1 Le calcul parallèle se compose d'une portion parallèle et d'une portion séquentielle.
    • CSN-2.B.2 Les solutions utilisant le calcul parallèle peuvent s'étendre plus efficacement que celles utilisant le calcul séquentiel.
    • CSN-2.B.3 Le calcul distribué permet de résoudre des problèmes qui ne pourraient pas être résolus sur un seul ordinateur en raison du temps de traitement ou des besoins en stockage impliqués.
    • CSN-2.B.4 Le calcul distribué permet de résoudre des problèmes beaucoup plus grands plus rapidement qu'ils ne pourraient être résolus avec un seul ordinateur.
    • CSN-2.B.5 Lors de l'augmentation de l'utilisation du calcul parallèle dans une solution, l'efficacité de la solution reste limitée par la portion séquentielle. Cela signifie qu'à un certain moment, l'ajout de portions parallèles n'augmentera plus significativement l'efficacité.

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

    Racks de serveurs dans un centre de données : le calcul distribué répartit le travail sur plusieurs machines
    Racks de serveurs dans les centres de données : le calcul distribué répartit le travail sur de nombreuses machines
    • Calcul séquentiel 顺序计算 effectue une opération à la fois.
    • Calcul parallèle 并行计算 divise une tâche en parties qui s'exécutent en même temps sur plusieurs processeurs, terminant plus vite.
    • Calcul distribué 分布式计算 utilise beaucoup d'ordinateurs connectés par un réseau pour travailler sur un problème – essentiel pour les problèmes trop grands pour une seule machine.
    Calcul parallèle : de nombreux processeurs travaillent simultanément
    calcul parallèle : de nombreux processeurs travaillent en même temps

    Le gain de vitesse 加速比 d'une solution parallèle est le temps séquentiel divisé par le temps parallèle. Le gain de vitesse est limité : les parties qui doivent s'exécuter en séquence ne peuvent pas être accélérées en ajoutant des processeurs, donc doubler le nombre de processeurs ne double rarement la vitesse.

    Exemple résolu. Une tâche possède une partie qui doit s'exécuter séquentiellement, prenant $40$ secondes, plus une partie parallélisable qui prend $60$ seconde sur un seul processeur – donc sur un seul processeur, la tâche entière prend $40+60=100$ secondes. Répartir la partie parallèle sur $3$ processeurs et elle prendra $\tfrac{60}{3}=20$ secondes, de sorte que le temps total en parallèle est de $40+20=60$ secondes et le gain en performance est de $\tfrac{100}{60}\approx1.67$. La partie séquentielle de $40$ secondes constitue un plancher : même avec un nombre infini de processeurs, la tâche ne peut jamais se terminer en moins de $40$ secondes.

    Compétence d'examen : étant donné les durées des parties séquentielle et parallèle d'une tâche, être capable de calculer le temps total en parallèle et le gain en performance.

    4.3

    Conseils d'examen

    • Décrire comment les données circulent dans des paquets sur un réseau redondant et tolérant aux pannes composé de routeurs indépendants.
    • Savoir que les protocoles (IP, TCP, HTTP) sont des règles convenues, et que les normes ouvertes permettent l'interopérabilité entre différents systèmes.
    • Expliquer la passibilité à l'échelle et la manière dont Internet s'étend sans contrôle central.
    • Contraster la bande passante (débit) avec la latence (délai), et décrire la recherche nom-adresse par le DNS.
    • Discuter de la fracture numérique et des bases de la sécurité (chiffrement, authentification) en termes simples.
  • 5

    Impact de l'informatique

    Regarder la leçon
    5.1

    Effets bénéfiques et nocifs

    Programme

    Compréhension durable (IOC-1) : Bien que les innovations informatiques soient généralement conçues pour atteindre un objectif spécifique, elles peuvent avoir des conséquences imprévues.

    Objectif d'apprentissage IOC-1.A : Expliquer comment un effet d'une innovation informatique peut être à la fois bénéfique et nuisible. [Compétence 5.C]

    • IOC-1.A.1 Les gens créent des innovations informatiques.
    • IOC-1.A.2 La façon dont les gens effectuent des tâches change souvent pour intégrer de nouvelles innovations informatiques.
    • IOC-1.A.3 Tous les effets d'une innovation informatique ne sont pas anticipés à l'avance.
    • IOC-1.A.4 Un effet unique peut être considéré comme à la fois bénéfique et nocif par différentes personnes, ou même par la même personne.
    • IOC-1.A.5 Les avancées en informatique ont généré et accru la créativité dans d'autres domaines, tels que la médecine, l'ingénierie, les communications et les arts.

    Objectif d'apprentissage IOC-1.B : Expliquer comment une innovation informatique peut avoir un impact au-delà de son usage prévu. [Compétence 5.C]

    • IOC-1.B.1 Les innovations informatiques peuvent être utilisées de manières que leurs créateurs n'avaient pas initialement prévues :
      • Le World Wide Web était initialement destiné uniquement à l'échange rapide et facile d'informations au sein de la communauté scientifique.
      • La publicité ciblée est utilisée pour aider les entreprises, mais elle peut être mal utilisée aux niveaux individuel et agrégé.
      • L'apprentissage automatique et l'exploration de données ont permis l'innovation dans la médecine, les affaires et la science, mais les informations découvertes de cette manière ont également été utilisées pour discriminer contre des groupes d'individus.
    • IOC-1.B.2 Certaines des façons dont les innovations informatiques peuvent être utilisées peuvent avoir un impact néfaste sur la société, l'économie ou la culture.
    • IOC-1.B.3 Les programmeurs responsables essaient de considérer les usages imprévus de leurs innovations informatiques et les effets potentiels bénéfiques et nocifs de ces nouveaux usages.
    • IOC-1.B.4 Il n'est pas possible pour un programmeur de considérer toutes les façons dont une innovation informatique peut être utilisée.
    • IOC-1.B.5 Les innovations informatiques ont souvent eu des effets bénéfiques imprévus en menant à des avancées dans d'autres domaines.
    • IOC-1.B.6 Le partage rapide d'un programme ou l'exécution d'un programme avec un grand nombre d'utilisateurs peut entraîner des impacts significatifs au-delà de l'usage prévu ou du contrôle du programmeur.

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

    Une pile de déchets électroniques — le calcul a des coûts environnementaux ainsi que des avantages
    Une pile de déchets électroniques — le calcul a des coûts environnementaux ainsi que des avantages

    Chaque innovation informatique peut être utilisée de manières à aider et de manières à nuire – souvent la même technologie fait les deux. Un réseau social connecte les gens et peut propager des informations erronées ; l'automatisation augmente la productivité et peut supprimer des emplois. Les effets sont fréquemment inattendus : les créateurs ne peuvent pas prévoir chaque usage. Lors de l'évaluation d'une innovation informatique, pesez ses bénéfices et ses préjudices pour les personnes et la société, et rappelez-vous que les préjudices ne sont pas toujours intentionnels.

    Le calcul affecte le bien-être du public de plusieurs façons
    Le calcul affecte le bien-être du public de plusieurs façons

    Le calcul génère également de la créativité dans d'autres domaines, ce que le CED demande comme avantage en soi, et non simplement comme commodité : modélisation et imagerie dans la médecine, simulation en ingénierie, nouvelles formes dans les arts et la musique, et nouveaux types de communication tout court. Les effets bénéfiques d'une innovation se situent souvent dans un domaine éloigné de l'informatique.

    5.2

    La fracture numérique

    Programme

    Compréhension durable (IOC-1) : Bien que les innovations informatiques soient généralement conçues pour atteindre un objectif spécifique, elles peuvent avoir des conséquences imprévues.

    Objectif d'apprentissage IOC-1.C : Décrire les facteurs qui contribuent à la fracture numérique. [Compétence 5.C]

    • IOC-1.C.1 L'accès à Internet varie selon les caractéristiques socioéconomiques, géographiques et démographiques, ainsi qu'entre les pays.
    • IOC-1.C.2 La « fracture numérique » désigne les disparités d'accès aux dispositifs informatiques et à Internet, basées sur des caractéristiques socioéconomiques, géographiques ou démographiques.
    • IOC-1.C.3 La fracture numérique peut affecter à la fois des groupes et des individus.
    • IOC-1.C.4 La fracture numérique soulève des questions d'équité, d'accès et d'influence, tant au niveau mondial que local.
    • IOC-1.C.5 La fracture numérique est influencée par les actions des individus, des organisations et des gouvernements.

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

    La fracture numérique 数字鸿沟 est l'accès inégal au calcul et à Internet selon les groupes – en fonction des revenus, de la géographie, de l'âge ou du pays. Ceux qui y ont accès tirent profit de l'éducation, des emplois et des services ; ceux qui n'y ont pas accès tombent davantage en retard. La fracture est façonnée par des facteurs économiques, sociaux et géographiques, et les efforts pour la combler (appareils abordables, accès public, infrastructure) visent à rendre les avantages du calcul plus équitables.

    Ordinateurs de bibliothèque publique : la fracture numérique concerne l'accès inégal aux appareils, à la connectivité et aux compétences
    Ordinateurs de bibliothèque publique : la fracture numérique concerne l'accès inégal aux appareils, à la connectivité et aux compétences
    Antenne satellite rurale : la géographie détermine encore qui obtient une connexion rapide et qui attend
    Antenne satellite rurale : la géographie détermine encore qui obtient une connexion rapide et qui attend
    5.3

    Biais informatiques

    Programme

    Compréhension durable (IOC-1) : Bien que les innovations informatiques soient généralement conçues pour atteindre un objectif spécifique, elles peuvent avoir des conséquences imprévues.

    Objectif d'apprentissage IOC-1.D : Expliquer comment existe un biais dans les innovations informatiques. [Compétence 5.E]

    • IOC-1.D.1 Les innovations informatiques peuvent refléter les biais humains existants en raison de biais inscrits dans les algorithmes ou de biais dans les données utilisées par l'innovation.
    • IOC-1.D.2 Les programmeurs devraient prendre des mesures pour réduire les biais dans les algorithmes utilisés pour les innovations informatiques afin de lutter contre les biais humains existants.
    • IOC-1.D.3 Les biais peuvent être intégrés à tous les niveaux du développement logiciel.

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

    Voiture autonome dans une rue de ville – les systèmes autonomes soulèvent des questions de sécurité et de biais
    Voiture autonome dans une rue de ville – les systèmes autonomes soulèvent des questions de sécurité et de biais

    Le biais 偏见 peut être intégré dans les systèmes informatiques – souvent involontairement. Si les données utilisées pour construire un système reflètent des préjugés existants, ou si les hypothèses des concepteurs sont partiales, le système peut produire des résultats injustes (par exemple, un outil de recrutement qui favorise un groupe). Le biais peut entrer à chaque étape – collecte de données, conception et utilisation – de sorte que les systèmes doivent être testés pour leur équité auprès de différents groupes. Reconnaître que « l'ordinateur l'a dit » n'est pas la même chose que « c'est juste » est une habitude importante.

    5.4

    Crowdsourcing

    Programme

    Compréhension durable (IOC-1) : Bien que les innovations informatiques soient généralement conçues pour atteindre un objectif spécifique, elles peuvent avoir des conséquences imprévues.

    Objectif d'apprentissage IOC-1.E : Expliquer comment les gens participent aux processus de résolution de problèmes à grande échelle. [Compétence 1.C]

    • IOC-1.E.1 L'accès généralisé à l'information et aux données publiques facilite l'identification des problèmes, le développement de solutions et la diffusion des résultats.
    • IOC-1.E.2 La science a été affectée par l'utilisation de la recherche distribuée et de la « science citoyenne » pour résoudre des problèmes scientifiques.
    • IOC-1.E.3 La science citoyenne est une recherche scientifique réalisée en totalité ou en partie par des individus distribués, dont beaucoup ne sont pas des scientifiques, qui apportent des données pertinentes à la recherche en utilisant leurs propres dispositifs informatiques.
    • IOC-1.E.4 Le crowdsourcing est la pratique consistant à obtenir des inputs ou des informations d'un grand nombre de personnes via Internet.
    • IOC-1.E.5 Les capacités humaines peuvent être renforcées par la collaboration via l'informatique.
    • IOC-1.E.6 Le crowdsourcing offre de nouveaux modèles de collaboration, comme le lien entre les entreprises ou les causes sociales et le financement.

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

    Le crowdsourcing 众包 obtient des commentaires, des idées ou des fonds auprès d'un grand groupe de personnes, généralement en ligne. Il exploite les connaissances et les efforts de nombreux – les projets de cartographie, les avis produits, la science participative et le crowdfunding en dépendent tous. Internet rend le crowdsourcing possible à une échelle et une vitesse jamais atteintes auparavant, permettant à un projet de puiser chez des contributeurs du monde entier.

    Wikipedia edit-a-thon : le crowdsourcing regroupe le travail de nombreuses personnes dans une ressource partagée
    Wikipedia edit-a-thon : le crowdsourcing regroupe le travail de nombreuses personnes dans une ressource partagée
    Vocabulaire Entrainer
    Anglais Chinois Pinyin
    digital divide/ˈdɪdʒɪtl dɪˈvaɪd/ 数字鸿沟 shù zì hóng gōu
    Bias/ˈbaɪəs/ 偏见 piān jiàn
    Crowdsourcing/ˈkraʊdsɔːsɪŋ/ 众包 zhòng bāo
    Intellectual property/ˌɪntəˈlektʃuːəl ˈprɒpəti/ 知识产权 zhī shí chǎn quán
    copyright/ˈkɒpɪraɪt/ 版权 bǎn quán
    5.5

    Préoccupations juridiques et éthiques

    Programme

    Compréhension durable (IOC-1) : Bien que les innovations informatiques soient généralement conçues pour atteindre un objectif spécifique, elles peuvent avoir des conséquences imprévues.

    Objectif d'apprentissage IOC-1.F : Expliquer comment l'utilisation de l'informatique peut soulever des questions juridiques et éthiques. [Compétence 5.E]

    • IOC-1.F.1 Le matériel créé sur un ordinateur est la propriété intellectuelle du créateur ou d'une organisation.
    • IOC-1.F.2 La facilité d'accès et de distribution des informations numérisées soulève des préoccupations relatives à la propriété intellectuelle concernant la possession, la valeur et l'utilisation.
    • IOC-1.F.3 Des mesures doivent être prises pour protéger la propriété intellectuelle.
    • IOC-1.F.4 L'utilisation de matériel créé par autrui sans autorisation et présenté comme étant le sien constitue un plagiat et peut avoir des conséquences juridiques.
    • IOC-1.F.5 Certains exemples d'utilisation juridique de matériel créé par autrui incluent :
      • Creative Commons : une licence publique de copyright qui permet la distribution gratuite d'une œuvre protégée par le droit d'auteur. Cela est utilisé lorsque le créateur de contenu souhaite donner aux autres le droit de partager, d'utiliser et de construire sur l'œuvre qu'ils ont créée.
      • open source : logiciels mis gratuitement à disposition et pouvant être redistribués et modifiés
      • accès ouvert : productions de recherche en ligne gratuites, sans aucune restriction d'accès et avec peu ou pas de restrictions d'utilisation (telles que les droits d'auteur ou les limitations de licence)
    • IOC-1.F.6 L'utilisation de matériel créé par autrui doit toujours être citée.
    • IOC-1.F.7 Creative Commons, open source et accès ouvert ont permis un large accès aux informations numériques.
    • IOC-1.F.8 Comme pour toute technologie ou tout média, l'utilisation du calcul pour nuire à des personnes ou à des groupes soulève des questions juridiques et éthiques.
    • IOC-1.F.9 Le calcul peut jouer un rôle dans des questions sociales et politiques, ce qui soulève souvent des problèmes juridiques et éthiques.
    • IOC-1.F.10 La fracture numérique soulève des préoccupations éthiques liées au calcul.
    • IOC-1.F.11 Les innovations informatiques peuvent soulever des questions juridiques et éthiques. Voici quelques exemples :
      • le développement de logiciels permettant l'accès aux téléchargements et au streaming de médias numériques
      • le développement d'algorithmes comportant des biais
      • l'existence de dispositifs informatiques collectant et analysant des données en surveillant continuellement les activités

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

    Salle de contrôle CCTV : les systèmes de surveillance équilibrent les gains en sécurité contre les préoccupations de confidentialité
    Salle de contrôle CCTV : les systèmes de surveillance équilibrent les gains en sécurité contre les préoccupations de confidentialité

    Le calcul soulève des questions de droit et d'éthique :

    • La propriété intellectuelle 知识产权 et le droit d'auteur 版权 protègent les créations des auteurs ; leur utilisation peut nécessiter une autorisation ou une licence. Les licences open-source 开源 et Creative Commons permettent aux auteurs de partager leurs travaux sous des conditions spécifiées.
    • Le plagiat 抄袭 – utiliser le travail d'autrui comme son propre travail – est immoral et souvent illégal.
    • La collecte et l'utilisation de données personnelles soulèvent des questions de confidentialité concernant le consentement et la mauvaise utilisation.

    Les trois termes « ouvert », qui ne sont pas la même chose

    Terme Ce que cela signifie
    open source programmes qui sont mis gratuitement à disposition et peuvent être redistribués et modifiés par quiconque. La licence accorde explicitement ces droits – gratuit ne veut pas dire open source, et un programme gratuit que vous ne pouvez pas modifier n'est pas open source.
    open access 开放获取 recherches et autres contenus mis en ligne gratuitement, afin qu'un lecteur n'ait pas besoin d'abonnement. Cela ne dit rien sur le droit de modification.
    Creative Commons 知识共享 une famille de licences qu'un auteur applique à ses propres creations pour accorder des permissions spécifiques à l'avance – par exemple « vous pouvez réutiliser ceci si vous me créditez » ou « vous pouvez réutiliser ceci mais pas à des fins commerciales ».

    Les trois sont des moyens de concéder des droits que l'auteur détient par défaut au titre du droit d'auteur. C'est pourquoi ils sont importants pour l'examen : le droit d'auteur est automatique, donc tout ce qui n'est pas explicitement licencié est restreint, et son utilisation nécessite une autorisation.

    Le simple fait que quelque chose soit techniquement possible ne le rend ni légal ni éthique.

    Ce qui est enregistré pendant votre navigation

    Deux voies de collecte citées par le CED, et aucune ne nécessite que vous tapiez quoi que ce soit :

    • Les sites web peuvent enregistrer et conserver un historique des individus ayant consulté leurs pages – quelles pages, quand, combien de temps, et depuis quel appareil.
    • Les moteurs de recherche peuvent utiliser votre historique de recherche pour suggérer des sites web, et pour vendre du marketing ciblé : la publicité suit la recherche, c'est pourquoi un produit cherché une fois apparaît ensuite pendant des semaines.

    Aucun n'est intrinsèquement malveillant, et tous deux constituent le mécanisme derrière les services que les gens trouvent utiles. Le point que l'examen souhaite faire valoir est que les données collectées à une fin peuvent être combinées et utilisées à une autre, souvent sans que la personne realize qu'elle y a consenti.

    Vocabulaire Entrainer
    Anglais Chinois Pinyin
    Open-source/ˈəʊpən sɔːs/ 开源 kāi yuán
    Plagiarism/ˈpleɪdʒərɪzəm/ 抄袭 chāo xí
    open access/ˈəʊpən ˈækses/ 开放获取 kāi fàng huò qǔ
    Creative Commons/kriːˈeɪtɪv ˈkɒmənz/ 知识共享 zhī shí gòng xiǎng
    Personally identifiable information (PII)/ˈpɜːsənəli aɪˈdentɪfaɪəbl ˌɪnfəˈmeɪʃn/ 个人身份信息 gè rén shēn fèn xìn xī
    identity theft/aɪˈdentɪti θeft/ 身份盗窃 shēn fèn dào qiè
    phishing/ˈfɪʃɪŋ/ 网络钓鱼 wǎng luò diào yú
    open source/ˈəʊpən sɔːs/ 开源 kāi yuán
    5.6

    Calcul sécurisé

    Programme

    Compréhension durable (IOC-2) : L'utilisation d'innovations informatiques peut présenter des risques pour la sécurité personnelle et l'identité.

    Objectif d'apprentissage IOC-2.A : Décrire les risques pour la vie privée liés à la collecte et au stockage de données personnelles sur un système informatique. [Compétence 5.D]

    • IOC-2.A.1 Les informations à caractère personnel (PII) sont des informations concernant une personne qui l'identifient, la relient, lui sont associées ou la décrivent. Exemples de PII :
      • numéro de sécurité sociale
      • âge
      • race
      • numéro(s) de téléphone
      • informations médicales
      • informations financières
      • données biométriques
    • IOC-2.A.2 Les moteurs de recherche peuvent enregistrer et conserver un historique des recherches effectuées par les utilisateurs.
    • IOC-2.A.3 Les sites Web peuvent enregistrer et conserver un historique des personnes ayant consulté leurs pages.
    • IOC-2.A.4 Les appareils, les sites Web et les réseaux peuvent collecter des informations sur la localisation d'un utilisateur.
    • IOC-2.A.5 La technologie permet la collecte, l'utilisation et l'exploitation d'informations sur, par et pour les individus, les groupes et les institutions.
    • IOC-2.A.6 Les moteurs de recherche peuvent utiliser l'historique de recherche pour suggérer des sites Web ou effectuer du marketing ciblé.
    • IOC-2.A.7 Des données personnelles disparates, telles que la géolocalisation, les cookies et l'historique de navigation, peuvent être agrégées pour créer des connaissances sur un individu.
    • IOC-2.A.8 Les PII et autres informations placées en ligne peuvent être utilisées pour améliorer les expériences en ligne des utilisateurs.
    • IOC-2.A.9 Les PII stockées en ligne peuvent être utilisées pour simplifier les achats en ligne.
    • IOC-2.A.10 La curation commerciale et gouvernementale des informations peut être exploitée si la vie privée et d'autres protections sont ignorées.
    • IOC-2.A.11 Les informations placées en ligne peuvent être utilisées de manières non prévues et susceptibles d'avoir un impact nocif. Par exemple, un courriel peut être transféré, des tweets peuvent être retweetés, et des publications sur les réseaux sociaux peuvent être vues par des employeurs potentiels.
    • IOC-2.A.12 Les PII peuvent être utilisées pour harceler ou voler l'identité d'une personne, ou faciliter la planification d'autres actes criminels.
    • IOC-2.A.13 Une fois qu'une information est placée en ligne, il est difficile de la supprimer.
    • IOC-2.A.14 Les programmes peuvent collecter votre localisation et enregistrer où vous avez été, comment vous y êtes allé et combien de temps vous y êtes resté.
    • IOC-2.A.15 Les informations publiées sur les services de médias sociaux peuvent être utilisées par d'autres. Combiner des informations publiées sur les médias sociaux et d'autres sources peut permettre de déduire des informations privées vous concernant.

    Objectif d'apprentissage IOC-2.B : Expliquer comment les ressources informatiques peuvent être protégées et mal utilisées. [Compétence 5.E]

    • IOC-2.B.1 Les mesures d'authentification protègent les appareils et les informations contre les accès non autorisés. Exemples de mesures d'authentification : mots de passe complexes et authentification multifacteur.
    • IOC-2.B.2 Un mot de passe complexe est quelque chose qu'il est facile pour un utilisateur de se souvenir mais difficile pour quelqu'un d'autre de deviner en se basant sur ses connaissances sur cet utilisateur.
    • IOC-2.B.3 L'authentification multifacteur est une méthode de contrôle d'accès à l'ordinateur selon laquelle un utilisateur n'est autorisé à accéder qu'après avoir présenté avec succès plusieurs éléments distincts de preuve à un mécanisme d'authentification, généralement dans au moins deux des catégories suivantes : connaissance (quelque chose qu'il sait), possession (quelque chose qu'il a) et héritance/inhérence (quelque chose qu'il est).
    • IOC-2.B.4 L'authentification multifacteur nécessite au moins deux étapes pour déverrouiller des informations protégées ; chaque étape ajoute une nouvelle couche de sécurité qui doit être franchie pour obtenir un accès non autorisé.
    • IOC-2.B.5 Le chiffrement est le processus de codage des données pour empêcher l'accès non autorisé. Le déchiffrement est le processus de décodage des données. Deux approches courantes de chiffrement sont :
      • Le chiffrement à clé symétrique utilise une seule clé pour le chiffrement et le déchiffrement.
      • Le chiffrement à clé publique associe une clé publique pour le chiffrement et une clé privée pour le déchiffrement. L'expéditeur n'a pas besoin de la clé privée du destinataire pour chiffrer un message, mais la clé privée du destinataire est requise pour le déchiffrer.
      • Énoncé d'exclusion (EK IOC-2.B.5) : Les procédures mathématiques spécifiques pour le chiffrement et le déchiffrement sortent du cadre de ce cours et de l'examen AP.
    • IOC-2.B.6 Les autorités de certification émettent des certificats numériques qui valident la propriété des clés de chiffrement utilisées dans les communications sécurisées et reposent sur un modèle de confiance.
    • IOC-2.B.7 Les logiciels de balayage antivirus et anti-malware peuvent aider à protéger un système informatique contre les infections.
    • IOC-2.B.8 Un virus informatique est un programme malveillant capable de se copier et d'accéder à un ordinateur de manière non autorisée. Les virus informatiques se fixent souvent à des programmes légitimes et commencent à fonctionner indépendamment sur un ordinateur.
    • IOC-2.B.9 La malveillance (malware) est un logiciel destiné à endommager un système informatique ou à en prendre partiellement le contrôle.
    • IOC-2.B.10 Tous les systèmes réels comportent des erreurs ou des défauts de conception qui peuvent être exploités pour les compromettre. Les mises à jour logicielles régulières aident à corriger les erreurs susceptibles de compromettre un système informatique.
    • IOC-2.B.11 Les utilisateurs peuvent contrôler les permissions accordées aux programmes pour collecter des informations utilisateurs. Les utilisateurs doivent examiner les paramètres de permission des programmes pour protéger leur vie privée.

    Objectif d'apprentissage IOC-2.C : Expliquer comment un accès non autorisé aux ressources informatiques est obtenu. [Compétence 5.E]

    • IOC-2.C.1 La hameçonnage (phishing) est une technique visant à tromper un utilisateur afin qu'il fournisse des informations personnelles. Ces informations peuvent ensuite être utilisées pour accéder à des ressources en ligne sensibles, comme des comptes bancaires et des e-mails.
    • IOC-2.C.2 Le keylogging est l'utilisation d'un programme pour enregistrer chaque frappe au clavier d'un utilisateur d'ordinateur afin d'obtenir un accès frauduleux aux mots de passe et autres informations confidentielles.
    • IOC-2.C.3 Les données transmises sur des réseaux publics peuvent être interceptées, analysées et modifiées. Une façon dont cela peut arriver est via un point d'accès frauduleux.
    • IOC-2.C.4 Un point d'accès frauduleux est un point d'accès sans fil offrant un accès non autorisé à des réseaux sécurisés.
    • IOC-2.C.5 Un lien malveillant peut être dissimulé sur une page Web ou dans un courriel.
    • IOC-2.C.6 Les courriels non sollicités, les pièces jointes, les liens et les formulaires dans les courriels peuvent être utilisés pour compromettre la sécurité d'un système informatique. Ceux-ci peuvent provenir d'expéditeurs inconnus ou d'expéditeurs connus dont la sécurité a été compromise.
    • IOC-2.C.7 Les téléchargements non fiables (souvent gratuits) depuis des sites de freeware ou shareware peuvent contenir de la malveillance.

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

    La protection des données personnelles est une responsabilité partagée. Idées clés :

    Le chiffrement brouille le texte clair avec une clé ; seule la clé peut le déchiffrer
    Le chiffrement brouille le texte clair avec une clé ; seule la clé peut le déchiffrer
    • Les informations d'identification personnelle (PII) 个人身份信息 (nom, adresse, numéros d'identification) doivent être partagées avec prudence, car elles peuvent être mal utilisées pour le vol d'identité 身份盗窃.
    • Les menaces incluent le hameçonnage 网络钓鱼 (vous tromper pour révéler des informations), les malwares 恶意软件 et les mots de passe faibles.
    • Un lien malveillant peut être dissimulé sur une page web ou dans un message électronique : le texte que vous voyez et l'adresse vers laquelle il mène réellement sont séparés, donc un lien affichant www.yourbank.com peut pointer n'importe où. Survolez le lien pour voir la destination réelle avant de cliquer, et méfiez-vous particulièrement d'un lien qui arrive inopinément et crée un sentiment d'urgence.
    • Les défenses incluent des mots de passe forts et uniques, l'authentification multifacteur 多因素认证, le chiffrement 加密 (brouiller les données pour que seules les personnes autorisées puissent les lire), et le maintien des logiciels à jour.

    Le chiffrement est l'outil central pour garder les données privées lors de leur transit et de leur stockage. Être un utilisateur responsable d'ordinateur signifie protéger vos propres informations ainsi que celles des autres.

    Compétence d'examen : être capable d'identifier les effets bénéfiques et nocifs d'une innovation donnée, d'expliquer un risque de confidentialité ou de sécurité, et de citer une pratique de calcul sécurisé qui y répond.

    Exemple résolu. Un algorithme de recrutement est formé sur les embauches passées d'une entreprise, qui étaient majoritairement d'un groupe, et il rejette ensuite des candidats qualifiés d'autres groupes. Nommez le problème et sa cause : il s'agit de biais informatique, causé par des données d'entraînement biaisées – le modèle a appris le schéma historique plutôt qu'une règle équitable. Une réponse complète à l'examen indique le préjudice (des personnes qualifiées sont injustement rejetées) et sa cause (le biais provenait des données, pas du code).

    Explorer

    Brouiller un message avec le chiffrement

    Le chiffrement protège les données en les brouillant avec une clé ; seule une personne possédant la clé peut les relire. Ce simple chiffre de César décale chaque lettre — le véritable chiffrement utilise la même idée avec des clés bien plus fortes pour protéger les mots de passe et les messages.

    Vocabulaire Entrainer
    Anglais Chinois Pinyin
    malware/ˈmælweə/ 恶意软件 è yì ruǎn jiàn
    multi-factor authentication/ˈmʌlti ˈfæktə ɔːˌθentɪˈkeɪʃn/ 多因素认证 duō yīn sù rèn zhèng
    encryption/enˈkrɪpʃn/ 加密 jiā mì
    5.6

    Conseils d'examen

    • Argumenter à la fois les effets bénéfiques et nocifs d'une innovation informatique – une réponse équilibrée obtient le meilleur score.
    • Utiliser les bons termes pour les problèmes de données : PII, confidentialité, sécurité et biais algorithmique.
    • Expliquer comment le crowdsourcing et les grands jeux de données créent de la valeur et soulèvent de nouveaux risques.
    • Distuer la fracture numérique (accès) du biais (équité) et donner un exemple concret de chacun.
    • Relier chaque affirmation à une innovation et un effet spécifiques, comme l'exige la réponse écrite.

Se connecter ou créer un compte

IGCSE, A-Level & AP