[{"data":1,"prerenderedAt":2497},["ShallowReactive",2],{"navigation":3,"\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fdiversite-langages":585,"\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fdiversite-langages__counterpart":1498,"\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fdiversite-langages__slides":1760,"annexes-memo:\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fdiversite-langages":2054,"annexes-slides:\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fdiversite-langages":2264},[4,224,440],{"title":5,"path":6,"stem":7,"children":8},"SNT — Seconde","\u002Fsnt-2nde","0.snt-2nde\u002F0.index",[9,10,14,36,66,92,118,144,162,184,206],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"REVIEW pédagogique — SNT 2nde","\u002Fsnt-2nde\u002Freview","0.snt-2nde\u002FREVIEW",{"title":15,"path":16,"stem":17,"children":18},"Internet","\u002Fsnt-2nde\u002Fsa-internet","0.snt-2nde\u002Fsa-internet\u002F0.index",[19,20,24,28,32],{"title":15,"path":16,"stem":17},{"title":21,"path":22,"stem":23},"Adresses symboliques et DNS","\u002Fsnt-2nde\u002Fsa-internet\u002Fadresses-dns","0.snt-2nde\u002Fsa-internet\u002F1.adresses-dns",{"title":25,"path":26,"stem":27},"Internet et les réseaux physiques","\u002Fsnt-2nde\u002Fsa-internet\u002Freseaux-physiques","0.snt-2nde\u002Fsa-internet\u002F2.reseaux-physiques",{"title":29,"path":30,"stem":31},"Protocoles TCP\u002FIP et routage des paquets","\u002Fsnt-2nde\u002Fsa-internet\u002Ftcp-ip-routage","0.snt-2nde\u002Fsa-internet\u002F3.tcp-ip-routage",{"title":33,"path":34,"stem":35},"Réseaux pair-à-pair","\u002Fsnt-2nde\u002Fsa-internet\u002Fpair-a-pair","0.snt-2nde\u002Fsa-internet\u002F4.pair-a-pair",{"title":37,"path":38,"stem":39,"children":40},"Le Web","\u002Fsnt-2nde\u002Fsb-web","0.snt-2nde\u002Fsb-web\u002F0.index",[41,42,46,50,54,58,62],{"title":37,"path":38,"stem":39},{"title":43,"path":44,"stem":45},"Histoire du Web","\u002Fsnt-2nde\u002Fsb-web\u002Fhistoire-web","0.snt-2nde\u002Fsb-web\u002F1.histoire-web",{"title":47,"path":48,"stem":49},"URL et hypertexte","\u002Fsnt-2nde\u002Fsb-web\u002Furl-hypertexte","0.snt-2nde\u002Fsb-web\u002F2.url-hypertexte",{"title":51,"path":52,"stem":53},"HTML et CSS — le contenu et la présentation","\u002Fsnt-2nde\u002Fsb-web\u002Fhtml-css","0.snt-2nde\u002Fsb-web\u002F3.html-css",{"title":55,"path":56,"stem":57},"Client-serveur et requêtes HTTP","\u002Fsnt-2nde\u002Fsb-web\u002Fclient-serveur-http","0.snt-2nde\u002Fsb-web\u002F4.client-serveur-http",{"title":59,"path":60,"stem":61},"Moteurs de recherche","\u002Fsnt-2nde\u002Fsb-web\u002Fmoteurs-recherche","0.snt-2nde\u002Fsb-web\u002F5.moteurs-recherche",{"title":63,"path":64,"stem":65},"Sécurité du navigateur et notions juridiques","\u002Fsnt-2nde\u002Fsb-web\u002Fsecurite-droits","0.snt-2nde\u002Fsb-web\u002F6.securite-droits",{"title":67,"path":68,"stem":69,"children":70},"Les réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F0.index",[71,72,76,80,84,88],{"title":67,"path":68,"stem":69},{"title":73,"path":74,"stem":75},"Panorama des réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fpanorama-rs","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F1.panorama-rs",{"title":77,"path":78,"stem":79},"Identité numérique et authentification","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fidentite-numerique","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F2.identite-numerique",{"title":81,"path":82,"stem":83},"Le modèle économique des réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fmodele-economique","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F3.modele-economique",{"title":85,"path":86,"stem":87},"Petit monde et graphes","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fpetit-monde-graphes","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F4.petit-monde-graphes",{"title":89,"path":90,"stem":91},"La cyberviolence","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fcyberviolence","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F5.cyberviolence",{"title":93,"path":94,"stem":95,"children":96},"Les données structurées et leur traitement","\u002Fsnt-2nde\u002Fsd-donnees-structurees","0.snt-2nde\u002Fsd-donnees-structurees\u002F0.index",[97,98,102,106,110,114],{"title":93,"path":94,"stem":95},{"title":99,"path":100,"stem":101},"Données et formats","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fdonnees-formats","0.snt-2nde\u002Fsd-donnees-structurees\u002F1.donnees-formats",{"title":103,"path":104,"stem":105},"Données structurées","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fdonnees-structurees","0.snt-2nde\u002Fsd-donnees-structurees\u002F2.donnees-structurees",{"title":107,"path":108,"stem":109},"Métadonnées","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fmetadonnees","0.snt-2nde\u002Fsd-donnees-structurees\u002F3.metadonnees",{"title":111,"path":112,"stem":113},"Traitement de tables","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Ftraitement-tables","0.snt-2nde\u002Fsd-donnees-structurees\u002F4.traitement-tables",{"title":115,"path":116,"stem":117},"Le cloud","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fcloud","0.snt-2nde\u002Fsd-donnees-structurees\u002F5.cloud",{"title":119,"path":120,"stem":121,"children":122},"Localisation, cartographie et mobilité","\u002Fsnt-2nde\u002Fse-localisation-cartographie","0.snt-2nde\u002Fse-localisation-cartographie\u002F0.index",[123,124,128,132,136,140],{"title":119,"path":120,"stem":121},{"title":125,"path":126,"stem":127},"GPS et Galileo — se situer grâce aux satellites","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fgps-galileo","0.snt-2nde\u002Fse-localisation-cartographie\u002F1.gps-galileo",{"title":129,"path":130,"stem":131},"Décoder une trame NMEA","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Ftrame-nmea","0.snt-2nde\u002Fse-localisation-cartographie\u002F2.trame-nmea",{"title":133,"path":134,"stem":135},"Cartes numériques — GeoPortail et OpenStreetMap","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fcartes-numeriques","0.snt-2nde\u002Fse-localisation-cartographie\u002F3.cartes-numeriques",{"title":137,"path":138,"stem":139},"Itinéraires et graphes","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fitineraires-graphes","0.snt-2nde\u002Fse-localisation-cartographie\u002F4.itineraires-graphes",{"title":141,"path":142,"stem":143},"Confidentialité de la position","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fconfidentialite-position","0.snt-2nde\u002Fse-localisation-cartographie\u002F5.confidentialite-position",{"title":145,"path":146,"stem":147,"children":148},"Informatique embarquée et objets connectés","\u002Fsnt-2nde\u002Fsf-info-embarquee","0.snt-2nde\u002Fsf-info-embarquee\u002F0.index",[149,150,154,158],{"title":145,"path":146,"stem":147},{"title":151,"path":152,"stem":153},"Systèmes informatiques embarqués","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fsystemes-embarques","0.snt-2nde\u002Fsf-info-embarquee\u002F1.systemes-embarques",{"title":155,"path":156,"stem":157},"Capteurs et actionneurs","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fcapteurs-actionneurs","0.snt-2nde\u002Fsf-info-embarquee\u002F2.capteurs-actionneurs",{"title":159,"path":160,"stem":161},"IHM et objets connectés","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fihm-objet-connecte","0.snt-2nde\u002Fsf-info-embarquee\u002F3.ihm-objet-connecte",{"title":163,"path":164,"stem":165,"children":166},"Photographie numérique","\u002Fsnt-2nde\u002Fsg-photo-numerique","0.snt-2nde\u002Fsg-photo-numerique\u002F0.index",[167,168,172,176,180],{"title":163,"path":164,"stem":165},{"title":169,"path":170,"stem":171},"Photosites, pixels et résolution","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Fpixels-resolution","0.snt-2nde\u002Fsg-photo-numerique\u002F1.pixels-resolution",{"title":173,"path":174,"stem":175},"Les algorithmes de l'appareil photo","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Falgorithmes-photo","0.snt-2nde\u002Fsg-photo-numerique\u002F2.algorithmes-photo",{"title":177,"path":178,"stem":179},"Les métadonnées EXIF","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Fmetadonnees-exif","0.snt-2nde\u002Fsg-photo-numerique\u002F3.metadonnees-exif",{"title":181,"path":182,"stem":183},"Traiter une image en Python","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Ftraitement-rgb","0.snt-2nde\u002Fsg-photo-numerique\u002F4.traitement-rgb",{"title":185,"path":186,"stem":187,"children":188},"Notions transversales de programmation","\u002Fsnt-2nde\u002Fsh-prog-notions","0.snt-2nde\u002Fsh-prog-notions\u002F0.index",[189,190,194,198,202],{"title":185,"path":186,"stem":187},{"title":191,"path":192,"stem":193},"Séquences d'instructions et variables","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fsequences-affectations","0.snt-2nde\u002Fsh-prog-notions\u002F1.sequences-affectations",{"title":195,"path":196,"stem":197},"Instructions conditionnelles","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fconditionnelles","0.snt-2nde\u002Fsh-prog-notions\u002F2.conditionnelles",{"title":199,"path":200,"stem":201},"Boucles bornées et non bornées","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fboucles","0.snt-2nde\u002Fsh-prog-notions\u002F3.boucles",{"title":203,"path":204,"stem":205},"Définitions et appels de fonctions","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Ffonctions","0.snt-2nde\u002Fsh-prog-notions\u002F4.fonctions",{"title":207,"path":208,"stem":209,"children":210},"Démo des widgets MDC","\u002Fsnt-2nde\u002Fzz-demo-widgets","0.snt-2nde\u002Fzz-demo-widgets\u002F0.index",[211,212,216,220],{"title":207,"path":208,"stem":209},{"title":213,"path":214,"stem":215},"Démo statique — callouts, code, BO, illustration","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Fstatique","0.snt-2nde\u002Fzz-demo-widgets\u002F1.statique",{"title":217,"path":218,"stem":219},"Démo interactive — self-eval et python-snippet","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Finteractif","0.snt-2nde\u002Fzz-demo-widgets\u002F2.interactif",{"title":221,"path":222,"stem":223},"Démo · 14 widgets de manipulation NSI","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Fwidgets-manipulation","0.snt-2nde\u002Fzz-demo-widgets\u002F3.widgets-manipulation",{"title":225,"path":226,"stem":227,"children":228},"NSI — Première","\u002Fnsi-1ere","1.nsi-1ere\u002F0.index",[229,230,234,256,282,304,328,354,380,410],{"title":225,"path":226,"stem":227},{"title":231,"path":232,"stem":233},"Relecture pédagogique — 8 chapitres NSI 1ère (PA → PH)","\u002Fnsi-1ere\u002Freview","1.nsi-1ere\u002FREVIEW",{"title":235,"path":236,"stem":237,"children":238},"Histoire de l'informatique","\u002Fnsi-1ere\u002Fpa-histoire-info","1.nsi-1ere\u002Fpa-histoire-info\u002F0.index",[239,240,244,248,252],{"title":235,"path":236,"stem":237},{"title":241,"path":242,"stem":243},"De la préantiquité aux machines à calculer","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fpreantiquite-aux-machines","1.nsi-1ere\u002Fpa-histoire-info\u002F1.preantiquite-aux-machines",{"title":245,"path":246,"stem":247},"La machine universelle (1930-1950)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fmachine-universelle","1.nsi-1ere\u002Fpa-histoire-info\u002F2.machine-universelle",{"title":249,"path":250,"stem":251},"Les ordinateurs modernes (1947-1990)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fordinateurs-modernes","1.nsi-1ere\u002Fpa-histoire-info\u002F3.ordinateurs-modernes",{"title":253,"path":254,"stem":255},"Réseaux, Web et IA (1969 à aujourd'hui)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Freseaux-et-web","1.nsi-1ere\u002Fpa-histoire-info\u002F4.reseaux-et-web",{"title":257,"path":258,"stem":259,"children":260},"Représentation des données — types et valeurs","\u002Fnsi-1ere\u002Fpb-types-valeurs","1.nsi-1ere\u002Fpb-types-valeurs\u002F0.index",[261,262,266,270,274,278],{"title":257,"path":258,"stem":259},{"title":263,"path":264,"stem":265},"Bases de numération et entiers positifs","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fbases-entiers-positifs","1.nsi-1ere\u002Fpb-types-valeurs\u002F1.bases-entiers-positifs",{"title":267,"path":268,"stem":269},"Entiers relatifs et complément à deux","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fentiers-relatifs","1.nsi-1ere\u002Fpb-types-valeurs\u002F2.entiers-relatifs",{"title":271,"path":272,"stem":273},"Nombres flottants et virgule flottante","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fflottants","1.nsi-1ere\u002Fpb-types-valeurs\u002F3.flottants",{"title":275,"path":276,"stem":277},"Textes et encodages — ASCII, ISO-8859-1, Unicode","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Ftextes-encodages","1.nsi-1ere\u002Fpb-types-valeurs\u002F4.textes-encodages",{"title":279,"path":280,"stem":281},"Valeurs booléennes et opérateurs logiques","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fbooleens","1.nsi-1ere\u002Fpb-types-valeurs\u002F5.booleens",{"title":283,"path":284,"stem":285,"children":286},"Représentation des données : types construits","\u002Fnsi-1ere\u002Fpc-types-construits","1.nsi-1ere\u002Fpc-types-construits\u002F0.index",[287,288,292,296,300],{"title":283,"path":284,"stem":285},{"title":289,"path":290,"stem":291},"Tableaux et listes","\u002Fnsi-1ere\u002Fpc-types-construits\u002Ftableaux-listes","1.nsi-1ere\u002Fpc-types-construits\u002F1.tableaux-listes",{"title":293,"path":294,"stem":295},"Listes en compréhension","\u002Fnsi-1ere\u002Fpc-types-construits\u002Fcomprehension","1.nsi-1ere\u002Fpc-types-construits\u002F2.comprehension",{"title":297,"path":298,"stem":299},"Tuples et p-uplets nommés","\u002Fnsi-1ere\u002Fpc-types-construits\u002Ftuples","1.nsi-1ere\u002Fpc-types-construits\u002F3.tuples",{"title":301,"path":302,"stem":303},"Dictionnaires","\u002Fnsi-1ere\u002Fpc-types-construits\u002Fdictionnaires","1.nsi-1ere\u002Fpc-types-construits\u002F4.dictionnaires",{"title":305,"path":306,"stem":307,"children":308},"Traitement de données en tables","\u002Fnsi-1ere\u002Fpd-tables-donnees","1.nsi-1ere\u002Fpd-tables-donnees\u002F0.index",[309,310,314,318,322],{"title":305,"path":306,"stem":307},{"title":311,"path":312,"stem":313},"Tables et CSV","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftables-csv","1.nsi-1ere\u002Fpd-tables-donnees\u002F1.tables-csv",{"title":315,"path":316,"stem":317},"Recherche et filtrage","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Frecherche","1.nsi-1ere\u002Fpd-tables-donnees\u002F2.recherche",{"title":319,"path":320,"stem":321},"Trier une table","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftri","1.nsi-1ere\u002Fpd-tables-donnees\u002F3.tri",{"title":323,"path":324,"stem":325,"children":326},"Fusion et indexation","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ffusion-indexation","1.nsi-1ere\u002Fpd-tables-donnees\u002F4.fusion-indexation",[327],{"title":323,"path":324,"stem":325},{"title":329,"path":330,"stem":331,"children":332},"IHM sur le Web","\u002Fnsi-1ere\u002Fpe-ihm-web","1.nsi-1ere\u002Fpe-ihm-web\u002F0.index",[333,334,338,342,346,350],{"title":329,"path":330,"stem":331},{"title":335,"path":336,"stem":337},"HTML et CSS — rappel de structure","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fhtml-css-bases","1.nsi-1ere\u002Fpe-ihm-web\u002F1.html-css-bases",{"title":339,"path":340,"stem":341},"Formulaires HTML","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fformulaires","1.nsi-1ere\u002Fpe-ihm-web\u002F2.formulaires",{"title":343,"path":344,"stem":345},"Événements JavaScript","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fevenements-js","1.nsi-1ere\u002Fpe-ihm-web\u002F3.evenements-js",{"title":347,"path":348,"stem":349},"Manipulation du DOM","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fdom-interaction","1.nsi-1ere\u002Fpe-ihm-web\u002F4.dom-interaction",{"title":351,"path":352,"stem":353},"Client, serveur et HTTP","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fclient-serveur-http","1.nsi-1ere\u002Fpe-ihm-web\u002F5.client-serveur-http",{"title":355,"path":356,"stem":357,"children":358},"Architectures matérielles et systèmes d'exploitation","\u002Fnsi-1ere\u002Fpf-archi-os","1.nsi-1ere\u002Fpf-archi-os\u002F0.index",[359,360,364,368,372,376],{"title":355,"path":356,"stem":357},{"title":361,"path":362,"stem":363},"Le modèle de von Neumann","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fvon-neumann","1.nsi-1ere\u002Fpf-archi-os\u002F1.von-neumann",{"title":365,"path":366,"stem":367},"Périphériques et interface homme-machine","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fperipheriques-ihm","1.nsi-1ere\u002Fpf-archi-os\u002F2.peripheriques-ihm",{"title":369,"path":370,"stem":371},"Les systèmes d'exploitation","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fsystemes-exploitation","1.nsi-1ere\u002Fpf-archi-os\u002F3.systemes-exploitation",{"title":373,"path":374,"stem":375},"Linux et le shell","\u002Fnsi-1ere\u002Fpf-archi-os\u002Flinux-shell","1.nsi-1ere\u002Fpf-archi-os\u002F4.linux-shell",{"title":377,"path":378,"stem":379},"Réseaux et protocoles","\u002Fnsi-1ere\u002Fpf-archi-os\u002Freseaux","1.nsi-1ere\u002Fpf-archi-os\u002F5.reseaux",{"title":381,"path":382,"stem":383,"children":384},"Langages et programmation","\u002Fnsi-1ere\u002Fpg-langages-prog","1.nsi-1ere\u002Fpg-langages-prog\u002F0.index",[385,386,390,394,398,402,406],{"title":381,"path":382,"stem":383},{"title":387,"path":388,"stem":389},"Diversité et unité des langages de programmation","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fdiversite-langages","1.nsi-1ere\u002Fpg-langages-prog\u002F1.diversite-langages",{"title":391,"path":392,"stem":393},"Constructions élémentaires","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fconstructions-elementaires","1.nsi-1ere\u002Fpg-langages-prog\u002F2.constructions-elementaires",{"title":395,"path":396,"stem":397},"Fonctions","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Ffonctions","1.nsi-1ere\u002Fpg-langages-prog\u002F3.fonctions",{"title":399,"path":400,"stem":401},"Spécification d'une fonction","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fspecification","1.nsi-1ere\u002Fpg-langages-prog\u002F4.specification",{"title":403,"path":404,"stem":405},"Mise au point des programmes","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fmise-au-point","1.nsi-1ere\u002Fpg-langages-prog\u002F5.mise-au-point",{"title":407,"path":408,"stem":409},"Utilisation de bibliothèques","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fbibliotheques","1.nsi-1ere\u002Fpg-langages-prog\u002F6.bibliotheques",{"title":411,"path":412,"stem":413,"children":414},"Algorithmique","\u002Fnsi-1ere\u002Fph-algorithmique","1.nsi-1ere\u002Fph-algorithmique\u002F0.index",[415,416,420,424,428,432,436],{"title":411,"path":412,"stem":413},{"title":417,"path":418,"stem":419},"Parcours séquentiel d'un tableau","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fparcours-sequentiel","1.nsi-1ere\u002Fph-algorithmique\u002F1.parcours-sequentiel",{"title":421,"path":422,"stem":423},"Bases de la complexité","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fcomplexite-bases","1.nsi-1ere\u002Fph-algorithmique\u002F2.complexite-bases",{"title":425,"path":426,"stem":427},"Tris par sélection et par insertion","\u002Fnsi-1ere\u002Fph-algorithmique\u002Ftris","1.nsi-1ere\u002Fph-algorithmique\u002F3.tris",{"title":429,"path":430,"stem":431},"Recherche dichotomique","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fdichotomie","1.nsi-1ere\u002Fph-algorithmique\u002F4.dichotomie",{"title":433,"path":434,"stem":435},"Algorithmes gloutons","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fgloutons","1.nsi-1ere\u002Fph-algorithmique\u002F5.gloutons",{"title":437,"path":438,"stem":439},"Les k plus proches voisins (k-NN)","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fknn","1.nsi-1ere\u002Fph-algorithmique\u002F6.knn",{"title":441,"path":442,"stem":443,"children":444},"NSI — Terminale","\u002Fnsi-tale","2.nsi-tale\u002F0.index",[445,446,450,476,498,536,560],{"title":441,"path":442,"stem":443},{"title":447,"path":448,"stem":449},"Review pédagogique — chapitres NSI Terminale (TA, TB, TC, TD, TE)","\u002Fnsi-tale\u002Freview","2.nsi-tale\u002FREVIEW",{"title":451,"path":452,"stem":453,"children":454},"Structures de données","\u002Fnsi-tale\u002Fta-structures-donnees","2.nsi-tale\u002Fta-structures-donnees\u002F0.index",[455,456,460,464,468,472],{"title":451,"path":452,"stem":453},{"title":457,"path":458,"stem":459},"Objet, classe, interface","\u002Fnsi-tale\u002Fta-structures-donnees\u002Finterface-implementation","2.nsi-tale\u002Fta-structures-donnees\u002F1.interface-implementation",{"title":461,"path":462,"stem":463},"Implémenter une structure — l'exemple de la file FIFO","\u002Fnsi-tale\u002Fta-structures-donnees\u002Fimplementer-une-structure","2.nsi-tale\u002Fta-structures-donnees\u002F2.implementer-une-structure",{"title":465,"path":466,"stem":467},"Listes, piles, files, dictionnaires","\u002Fnsi-tale\u002Fta-structures-donnees\u002Flistes-piles-files-dict","2.nsi-tale\u002Fta-structures-donnees\u002F3.listes-piles-files-dict",{"title":469,"path":470,"stem":471},"Arbres binaires","\u002Fnsi-tale\u002Fta-structures-donnees\u002Farbres-binaires","2.nsi-tale\u002Fta-structures-donnees\u002F4.arbres-binaires",{"title":473,"path":474,"stem":475},"Graphes","\u002Fnsi-tale\u002Fta-structures-donnees\u002Fgraphes","2.nsi-tale\u002Fta-structures-donnees\u002F5.graphes",{"title":477,"path":478,"stem":479,"children":480},"Bases de données","\u002Fnsi-tale\u002Ftb-bases-de-donnees","2.nsi-tale\u002Ftb-bases-de-donnees\u002F0.index",[481,482,486,490,494],{"title":477,"path":478,"stem":479},{"title":483,"path":484,"stem":485},"Le modèle relationnel","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fmodele-relationnel","2.nsi-tale\u002Ftb-bases-de-donnees\u002F1.modele-relationnel",{"title":487,"path":488,"stem":489},"Bases de données relationnelles et anomalies de schéma","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fbase-relationnelle","2.nsi-tale\u002Ftb-bases-de-donnees\u002F2.base-relationnelle",{"title":491,"path":492,"stem":493},"Le langage SQL","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fsql","2.nsi-tale\u002Ftb-bases-de-donnees\u002F3.sql",{"title":495,"path":496,"stem":497},"Les systèmes de gestion de bases de données","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fsgbd","2.nsi-tale\u002Ftb-bases-de-donnees\u002F4.sgbd",{"title":499,"path":500,"stem":501,"children":502},"Architectures matérielles, systèmes d'exploitation et réseaux","\u002Fnsi-tale\u002Ftc-archi-os-reseaux","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F0.index",[503,504,508,512,516,520,524,528,532],{"title":499,"path":500,"stem":501},{"title":505,"path":506,"stem":507},"Le système sur puce (SoC)","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fsysteme-sur-puce","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F1.systeme-sur-puce",{"title":509,"path":510,"stem":511},"Processus et ordonnancement par l'OS","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fprocessus-os","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F2.processus-os",{"title":513,"path":514,"stem":515},"L'interblocage (deadlock)","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Finterblocage","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F3.interblocage",{"title":517,"path":518,"stem":519},"Principes du routage","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Froutage-principes","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F4.routage-principes",{"title":521,"path":522,"stem":523},"Protocoles de routage RIP et OSPF","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fprotocoles-rip-ospf","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F5.protocoles-rip-ospf",{"title":525,"path":526,"stem":527},"Chiffrement symétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fchiffrement-symetrique","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F6.chiffrement-symetrique",{"title":529,"path":530,"stem":531},"Chiffrement asymétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fchiffrement-asymetrique","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F7.chiffrement-asymetrique",{"title":533,"path":534,"stem":535},"HTTPS — l'échange de clé symétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fhttps-tls","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F8.https-tls",{"title":381,"path":537,"stem":538,"children":539},"\u002Fnsi-tale\u002Ftd-langages-prog","2.nsi-tale\u002Ftd-langages-prog\u002F0.index",[540,541,544,548,552,556],{"title":381,"path":537,"stem":538},{"title":403,"path":542,"stem":543},"\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmise-au-point","2.nsi-tale\u002Ftd-langages-prog\u002F1.mise-au-point",{"title":545,"path":546,"stem":547},"Modularité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmodularite","2.nsi-tale\u002Ftd-langages-prog\u002F2.modularite",{"title":549,"path":550,"stem":551},"Récursivité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Frecursivite","2.nsi-tale\u002Ftd-langages-prog\u002F3.recursivite",{"title":553,"path":554,"stem":555},"Paradigmes de programmation","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fparadigmes","2.nsi-tale\u002Ftd-langages-prog\u002F4.paradigmes",{"title":557,"path":558,"stem":559},"Programme comme donnée — calculabilité et indécidabilité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fprogramme-comme-donnee","2.nsi-tale\u002Ftd-langages-prog\u002F5.programme-comme-donnee",{"title":411,"path":561,"stem":562,"children":563},"\u002Fnsi-tale\u002Fte-algorithmique","2.nsi-tale\u002Fte-algorithmique\u002F0.index",[564,565,569,573,577,581],{"title":411,"path":561,"stem":562},{"title":566,"path":567,"stem":568},"Algorithmes sur les arbres binaires","\u002Fnsi-tale\u002Fte-algorithmique\u002Farbres-binaires-algos","2.nsi-tale\u002Fte-algorithmique\u002F1.arbres-binaires-algos",{"title":570,"path":571,"stem":572},"Parcours de graphes — DFS, BFS, cycles, chemins","\u002Fnsi-tale\u002Fte-algorithmique\u002Fgraphes-parcours","2.nsi-tale\u002Fte-algorithmique\u002F2.graphes-parcours",{"title":574,"path":575,"stem":576},"Diviser pour régner","\u002Fnsi-tale\u002Fte-algorithmique\u002Fdiviser-pour-regner","2.nsi-tale\u002Fte-algorithmique\u002F3.diviser-pour-regner",{"title":578,"path":579,"stem":580},"Programmation dynamique","\u002Fnsi-tale\u002Fte-algorithmique\u002Fprogrammation-dynamique","2.nsi-tale\u002Fte-algorithmique\u002F4.programmation-dynamique",{"title":582,"path":583,"stem":584},"Recherche textuelle — l'algorithme de Boyer-Moore","\u002Fnsi-tale\u002Fte-algorithmique\u002Frecherche-textuelle","2.nsi-tale\u002Fte-algorithmique\u002F5.recherche-textuelle",{"id":586,"title":387,"bo":587,"body":589,"description":1485,"eval":1486,"extension":1487,"labo":1486,"meta":1488,"navigation":1082,"path":388,"quizzes":1489,"readingTime":862,"seo":1496,"stem":389,"tp":1486,"__hash__":1497},"cours\u002F1.nsi-1ere\u002Fpg-langages-prog\u002F1.diversite-langages.md",[588],"PG02",{"type":590,"value":591,"toc":1476},"minimark",[592,597,617,624,628,631,699,702,717,721,728,762,845,1132,1135,1161,1165,1172,1198,1221,1272,1275,1283,1303,1307,1314,1405,1412,1433,1437,1458,1462,1472],[593,594,596],"h2",{"id":595},"introduction","Introduction",[598,599,600,601,605,606,609,610,613,614],"p",{},"Il existe aujourd'hui ",[602,603,604],"strong",{},"des centaines de langages de programmation"," : Python,\nC, Java, JavaScript, OCaml, Rust, Haskell, SQL, HTML… Cette profusion peut\nsembler désordonnée. Elle reflète en réalité l'idée qu'",[602,607,608],{},"aucun langage n'est\nuniversellement adapté"," : on choisit un langage selon l'usage, la\nperformance, la communauté ou les contraintes du matériel. Pourtant, sous\ncette diversité, presque tous les langages s'appuient sur les ",[602,611,612],{},"mêmes\nconstructions de base",". ",[615,616],"bo-ref",{"code":588},[598,618,619,620,623],{},"Apprendre la programmation, ce n'est donc pas apprendre ",[602,621,622],{},"un"," langage —\nc'est apprendre à reconnaître ces constructions universelles, et à les\nretrouver dans n'importe quel langage que vous croiserez plus tard.",[593,625,627],{"id":626},"pourquoi-tant-de-langages","Pourquoi tant de langages ?",[598,629,630],{},"Un langage de programmation est conçu autour d'un compromis entre plusieurs\nexigences difficiles à satisfaire toutes en même temps :",[632,633,634,647],"table",{},[635,636,637],"thead",{},[638,639,640,644],"tr",{},[641,642,643],"th",{},"Exigence",[641,645,646],{},"Exemple de langage qui l'optimise",[648,649,650,659,667,675,683,691],"tbody",{},[638,651,652,656],{},[653,654,655],"td",{},"Performance brute, contrôle du matériel",[653,657,658],{},"C, C++, Rust",[638,660,661,664],{},[653,662,663],{},"Lisibilité, productivité, apprentissage",[653,665,666],{},"Python, Ruby",[638,668,669,672],{},[653,670,671],{},"Sûreté à l'exécution, garanties mathématiques",[653,673,674],{},"OCaml, Haskell, Rust",[638,676,677,680],{},[653,678,679],{},"Portabilité sur le Web",[653,681,682],{},"JavaScript, TypeScript",[638,684,685,688],{},[653,686,687],{},"Manipulation de données structurées",[653,689,690],{},"SQL, R",[638,692,693,696],{},[653,694,695],{},"Rapidité d'exécution sur serveur ou mobile",[653,697,698],{},"Java, Kotlin, Go",[598,700,701],{},"Aucun langage ne maximise tout. Python est lisible mais lent à l'exécution.\nC est rapide mais offre peu de garde-fous. SQL exprime des requêtes sur des\nbases de données mais ne sert pas à écrire un jeu vidéo.",[703,704,705],"note",{},[598,706,707,708,711,712,716],{},"On parle aussi de ",[602,709,710],{},"langages dédiés"," (DSL, ",[713,714,715],"em",{},"domain-specific languages",") :\ndes langages spécialisés pour un domaine, comme SQL pour les bases de\ndonnées ou HTML pour la structure d'une page Web. Ce ne sont pas des\nlangages de programmation généralistes au sens strict, mais ils suivent\nla même logique d'expressivité.",[593,718,720],{"id":719},"les-grands-paradigmes","Les grands paradigmes",[598,722,723,724,727],{},"Un ",[602,725,726],{},"paradigme"," est une grande famille de manière de concevoir un programme.\nTrois paradigmes dominent l'enseignement en NSI :",[729,730,731,742,752],"ul",{},[732,733,734,737,738,741],"li",{},[602,735,736],{},"Impératif"," : on décrit une ",[602,739,740],{},"suite d'instructions"," qui modifient l'état\nd'une mémoire. C'est le style de Python que vous pratiquez le plus souvent,\net celui du langage C.",[732,743,744,747,748,751],{},[602,745,746],{},"Fonctionnel"," : on décrit le programme comme une ",[602,749,750],{},"composition de\nfonctions"," mathématiques sans état mutable. Style natif d'OCaml, Haskell,\nlargement présent en JavaScript moderne.",[732,753,754,757,758,761],{},[602,755,756],{},"Objet"," : on regroupe données et opérations dans des ",[602,759,760],{},"objets"," qui\ns'envoient des messages. Style de Java, C++, et possible en Python.",[598,763,764,765,768,769,814,815,844],{},"Python est un langage ",[602,766,767],{},"multi-paradigme"," : il accepte les trois styles, parfois\nmélangés. Voici le même programme — calculer la somme des carrés des entiers de\n",[770,771,774,796],"span",{"className":772},[773],"katex",[770,775,778],{"className":776},[777],"katex-mathml",[779,780,782],"math",{"xmlns":781},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[783,784,785,792],"semantics",{},[786,787,788],"mrow",{},[789,790,791],"mn",{},"1",[793,794,791],"annotation",{"encoding":795},"application\u002Fx-tex",[770,797,801],{"className":798,"ariaHidden":800},[799],"katex-html","true",[770,802,805,810],{"className":803},[804],"base",[770,806],{"className":807,"style":809},[808],"strut","height:0.6444em;",[770,811,791],{"className":812},[813],"mord"," à ",[770,816,818,832],{"className":817},[773],[770,819,821],{"className":820},[777],[779,822,823],{"xmlns":781},[783,824,825,830],{},[786,826,827],{},[789,828,829],{},"5",[793,831,829],{"encoding":795},[770,833,835],{"className":834,"ariaHidden":800},[799],[770,836,838,841],{"className":837},[804],[770,839],{"className":840,"style":809},[808],[770,842,829],{"className":843},[813]," — écrit dans les trois styles.",[846,847,848,939,1008],"code-group",{},[849,850,856],"pre",{"className":851,"code":852,"filename":853,"language":854,"meta":855,"style":855},"language-python shiki shiki-themes github-light github-light github-dark","total = 0\nfor i in range(1, 6):\n    total = total + i * i\nprint(total)  # 55\n","impératif.py","python","",[857,858,859,875,904,926],"code",{"__ignoreMap":855},[770,860,863,867,871],{"class":861,"line":862},"line",1,[770,864,866],{"class":865},"sxrX7","total ",[770,868,870],{"class":869},"s8jYJ","=",[770,872,874],{"class":873},"sBjJW"," 0\n",[770,876,878,881,884,887,890,893,895,898,901],{"class":861,"line":877},2,[770,879,880],{"class":869},"for",[770,882,883],{"class":865}," i ",[770,885,886],{"class":869},"in",[770,888,889],{"class":873}," range",[770,891,892],{"class":865},"(",[770,894,791],{"class":873},[770,896,897],{"class":865},", ",[770,899,900],{"class":873},"6",[770,902,903],{"class":865},"):\n",[770,905,907,910,912,915,918,920,923],{"class":861,"line":906},3,[770,908,909],{"class":865},"    total ",[770,911,870],{"class":869},[770,913,914],{"class":865}," total ",[770,916,917],{"class":869},"+",[770,919,883],{"class":865},[770,921,922],{"class":869},"*",[770,924,925],{"class":865}," i\n",[770,927,929,932,935],{"class":861,"line":928},4,[770,930,931],{"class":873},"print",[770,933,934],{"class":865},"(total)  ",[770,936,938],{"class":937},"sCsY4","# 55\n",[849,940,943],{"className":851,"code":941,"filename":942,"language":854,"meta":855,"style":855},"nombres = range(1, 6)\ncarres = map(lambda n: n * n, nombres)\ntotal = sum(carres)\nprint(total)  # 55\n","fonctionnel.py",[857,944,945,965,988,1000],{"__ignoreMap":855},[770,946,947,950,952,954,956,958,960,962],{"class":861,"line":862},[770,948,949],{"class":865},"nombres ",[770,951,870],{"class":869},[770,953,889],{"class":873},[770,955,892],{"class":865},[770,957,791],{"class":873},[770,959,897],{"class":865},[770,961,900],{"class":873},[770,963,964],{"class":865},")\n",[770,966,967,970,972,975,977,980,983,985],{"class":861,"line":877},[770,968,969],{"class":865},"carres ",[770,971,870],{"class":869},[770,973,974],{"class":873}," map",[770,976,892],{"class":865},[770,978,979],{"class":869},"lambda",[770,981,982],{"class":865}," n: n ",[770,984,922],{"class":869},[770,986,987],{"class":865}," n, nombres)\n",[770,989,990,992,994,997],{"class":861,"line":906},[770,991,866],{"class":865},[770,993,870],{"class":869},[770,995,996],{"class":873}," sum",[770,998,999],{"class":865},"(carres)\n",[770,1001,1002,1004,1006],{"class":861,"line":928},[770,1003,931],{"class":873},[770,1005,934],{"class":865},[770,1007,938],{"class":937},[849,1009,1012],{"className":851,"code":1010,"filename":1011,"language":854,"meta":855,"style":855},"class Compteur:\n    def __init__(self):\n        self.total = 0\n    def ajouter_carre(self, n):\n        self.total += n * n\n\nc = Compteur()\nfor i in range(1, 6):\n    c.ajouter_carre(i)\nprint(c.total)  # 55\n","objet.py",[857,1013,1014,1026,1037,1049,1059,1077,1084,1095,1116,1122],{"__ignoreMap":855},[770,1015,1016,1019,1023],{"class":861,"line":862},[770,1017,1018],{"class":869},"class",[770,1020,1022],{"class":1021},"snPdu"," Compteur",[770,1024,1025],{"class":865},":\n",[770,1027,1028,1031,1034],{"class":861,"line":877},[770,1029,1030],{"class":869},"    def",[770,1032,1033],{"class":873}," __init__",[770,1035,1036],{"class":865},"(self):\n",[770,1038,1039,1042,1045,1047],{"class":861,"line":906},[770,1040,1041],{"class":873},"        self",[770,1043,1044],{"class":865},".total ",[770,1046,870],{"class":869},[770,1048,874],{"class":873},[770,1050,1051,1053,1056],{"class":861,"line":928},[770,1052,1030],{"class":869},[770,1054,1055],{"class":1021}," ajouter_carre",[770,1057,1058],{"class":865},"(self, n):\n",[770,1060,1062,1064,1066,1069,1072,1074],{"class":861,"line":1061},5,[770,1063,1041],{"class":873},[770,1065,1044],{"class":865},[770,1067,1068],{"class":869},"+=",[770,1070,1071],{"class":865}," n ",[770,1073,922],{"class":869},[770,1075,1076],{"class":865}," n\n",[770,1078,1080],{"class":861,"line":1079},6,[770,1081,1083],{"emptyLinePlaceholder":1082},true,"\n",[770,1085,1087,1090,1092],{"class":861,"line":1086},7,[770,1088,1089],{"class":865},"c ",[770,1091,870],{"class":869},[770,1093,1094],{"class":865}," Compteur()\n",[770,1096,1098,1100,1102,1104,1106,1108,1110,1112,1114],{"class":861,"line":1097},8,[770,1099,880],{"class":869},[770,1101,883],{"class":865},[770,1103,886],{"class":869},[770,1105,889],{"class":873},[770,1107,892],{"class":865},[770,1109,791],{"class":873},[770,1111,897],{"class":865},[770,1113,900],{"class":873},[770,1115,903],{"class":865},[770,1117,1119],{"class":861,"line":1118},9,[770,1120,1121],{"class":865},"    c.ajouter_carre(i)\n",[770,1123,1125,1127,1130],{"class":861,"line":1124},10,[770,1126,931],{"class":873},[770,1128,1129],{"class":865},"(c.total)  ",[770,1131,938],{"class":937},[598,1133,1134],{},"Le résultat est le même. Le « grain » d'écriture diffère.",[1136,1137,1139,1145],"self-eval-qcm",{"correct":791,"slug":1138},"diversite-langages-c1",[1140,1141,1142],"template",{"v-slot:question":855},[598,1143,1144],{},"Lequel de ces langages est pensé d'abord pour la performance et le contrôle du matériel ?",[1140,1146,1147],{"v-slot:choices":855},[729,1148,1149,1152,1155,1158],{},[732,1150,1151],{},"Python",[732,1153,1154],{},"C",[732,1156,1157],{},"SQL",[732,1159,1160],{},"HTML",[593,1162,1164],{"id":1163},"compilation-interprétation-machines-virtuelles","Compilation, interprétation, machines virtuelles",[598,1166,1167,1168,1171],{},"Une fois le programme écrit, il faut le ",[602,1169,1170],{},"transformer"," en quelque chose que le\nprocesseur sait exécuter. Deux grandes approches existent :",[729,1173,1174,1188],{},[732,1175,1176,1179,1180,1183,1184,1187],{},[602,1177,1178],{},"Compilation"," : un programme spécial, le ",[602,1181,1182],{},"compilateur",", traduit\nentièrement le code source en ",[602,1185,1186],{},"code machine"," une fois pour toutes. On\nexécute ensuite le résultat compilé. C'est rapide à l'exécution, mais\nspécifique à un type de processeur. Exemples : C, C++, Rust, Go.",[732,1189,1190,1193,1194,1197],{},[602,1191,1192],{},"Interprétation"," : un ",[602,1195,1196],{},"interpréteur"," lit le code source et l'exécute\nligne par ligne, sans étape de traduction préalable visible. C'est plus\nlent à l'exécution mais immédiat à essayer. Exemples : Python, JavaScript\n(dans un navigateur), Ruby.",[703,1199,1200],{},[598,1201,1202,1208,1209,1212,1213,1216,1217,1220],{},[602,1203,1204,1207],{},[857,1205,1206],{},"import sys"," en avant-première."," Le mot-clé ",[857,1210,1211],{},"import"," (utiliser une\nbibliothèque externe) sera détaillé au ",[602,1214,1215],{},"cours 6 de ce chapitre",". Ici,\ncontentez-vous de lire : ",[857,1218,1219],{},"sys"," est une bibliothèque standard qui donne accès\nà des informations sur l'interpréteur.",[1222,1223,1224],"python-snippet",{},[849,1225,1227],{"className":851,"code":1226,"language":854,"meta":855,"style":855},"# Python est interprété : pas de compilation visible, on lance directement.\nimport sys\nprint(\"Version de l'interpréteur Python :\", sys.version_info[:3])\nprint(\"Plateforme :\", sys.platform)\n",[857,1228,1229,1234,1241,1260],{"__ignoreMap":855},[770,1230,1231],{"class":861,"line":862},[770,1232,1233],{"class":937},"# Python est interprété : pas de compilation visible, on lance directement.\n",[770,1235,1236,1238],{"class":861,"line":877},[770,1237,1211],{"class":869},[770,1239,1240],{"class":865}," sys\n",[770,1242,1243,1245,1247,1251,1254,1257],{"class":861,"line":906},[770,1244,931],{"class":873},[770,1246,892],{"class":865},[770,1248,1250],{"class":1249},"sIIMD","\"Version de l'interpréteur Python :\"",[770,1252,1253],{"class":865},", sys.version_info[:",[770,1255,1256],{"class":873},"3",[770,1258,1259],{"class":865},"])\n",[770,1261,1262,1264,1266,1269],{"class":861,"line":928},[770,1263,931],{"class":873},[770,1265,892],{"class":865},[770,1267,1268],{"class":1249},"\"Plateforme :\"",[770,1270,1271],{"class":865},", sys.platform)\n",[598,1273,1274],{},"Sortie (varie fortement selon votre machine ou votre interpréteur) :",[849,1276,1281],{"className":1277,"code":1279,"language":1280},[1278],"language-text","Version de l'interpréteur Python : (3, 12, 0)\nPlateforme : linux\n","text",[857,1282,1279],{"__ignoreMap":855},[703,1284,1285],{},[598,1286,1287,1290,1291,1294,1295,1298,1299,1302],{},[602,1288,1289],{},"Cas intermédiaire"," : Java compile vers un ",[602,1292,1293],{},"bytecode"," exécuté par une\n",[602,1296,1297],{},"machine virtuelle"," (la JVM). Python fait de même en interne avec un\nbytecode ",[857,1300,1301],{},".pyc",", mais l'utilisateur ne le voit pas. Il y a donc un continuum\nentre compilation pure et interprétation pure.",[593,1304,1306],{"id":1305},"unité-sous-la-diversité","Unité sous la diversité",[598,1308,1309,1310,1313],{},"Au-delà des paradigmes et des manières d'exécuter, ",[602,1311,1312],{},"presque tous les langages\ngénéralistes"," partagent les mêmes briques de construction :",[632,1315,1316,1328],{},[635,1317,1318],{},[638,1319,1320,1323,1325],{},[641,1321,1322],{},"Construction",[641,1324,1151],{},[641,1326,1327],{},"Autre langage (C ici)",[648,1329,1330,1345,1360,1375,1390],{},[638,1331,1332,1335,1340],{},[653,1333,1334],{},"Affectation",[653,1336,1337],{},[857,1338,1339],{},"x = 5",[653,1341,1342],{},[857,1343,1344],{},"int x = 5;",[638,1346,1347,1350,1355],{},[653,1348,1349],{},"Conditionnelle",[653,1351,1352],{},[857,1353,1354],{},"if x > 0:",[653,1356,1357],{},[857,1358,1359],{},"if (x > 0) { … }",[638,1361,1362,1365,1370],{},[653,1363,1364],{},"Boucle bornée",[653,1366,1367],{},[857,1368,1369],{},"for i in range(10):",[653,1371,1372],{},[857,1373,1374],{},"for (int i=0; i\u003C10; i++) { … }",[638,1376,1377,1380,1385],{},[653,1378,1379],{},"Boucle non bornée",[653,1381,1382],{},[857,1383,1384],{},"while condition:",[653,1386,1387],{},[857,1388,1389],{},"while (condition) { … }",[638,1391,1392,1395,1400],{},[653,1393,1394],{},"Fonction",[653,1396,1397],{},[857,1398,1399],{},"def f(x): return …",[653,1401,1402],{},[857,1403,1404],{},"int f(int x) { return …; }",[598,1406,1407,1408,1411],{},"Quand vous découvrirez un nouveau langage, ",[602,1409,1410],{},"cherchez d'abord ces cinq\nconstructions",". Vous serez productif beaucoup plus vite que si vous abordez\nle langage comme une nouveauté complète.",[1136,1413,1415,1420],{"correct":791,"slug":1414},"diversite-langages-c2",[1140,1416,1417],{"v-slot:question":855},[598,1418,1419],{},"Python est-il un langage strictement fonctionnel ?",[1140,1421,1422],{"v-slot:choices":855},[729,1423,1424,1427,1430],{},[732,1425,1426],{},"Oui, uniquement fonctionnel",[732,1428,1429],{},"Non, il est multi-paradigme",[732,1431,1432],{},"Non, il est strictement objet",[593,1434,1436],{"id":1435},"pièges-courants","Pièges courants",[1438,1439,1440],"warning",{},[729,1441,1442,1448,1451],{},[732,1443,1444,1447],{},[602,1445,1446],{},"Le « meilleur » langage n'existe pas dans l'absolu"," — seulement le\nmeilleur langage pour un usage donné.",[732,1449,1450],{},"Compilé ≠ rapide systématiquement. Un mauvais algorithme en C peut être\nbattu par un bon algorithme en Python.",[732,1452,1453,1454,1457],{},"Tous les langages n'ont pas la même notion d'erreur. Python lève des\n",[602,1455,1456],{},"exceptions"," ; C affiche parfois des comportements bizarres sans\nmessage clair (« undefined behavior »). C'est culturel autant que technique.",[593,1459,1461],{"id":1460},"pour-aller-plus-loin","Pour aller plus loin",[598,1463,1464,1465,1468,1469,1471],{},"Le langage que vous apprendrez après Python sera plus facile que Python ne\nl'a été : vous chercherez juste les constructions équivalentes. C'est ce\nqu'on appelle le ",[602,1466,1467],{},"transfert pédagogique",". C'est l'objectif central de cet\nitem ",[615,1470],{"code":588}," du programme.",[1473,1474,1475],"style",{},"html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":855,"searchDepth":877,"depth":877,"links":1477},[1478,1479,1480,1481,1482,1483,1484],{"id":595,"depth":877,"text":596},{"id":626,"depth":877,"text":627},{"id":719,"depth":877,"text":720},{"id":1163,"depth":877,"text":1164},{"id":1305,"depth":877,"text":1306},{"id":1435,"depth":877,"text":1436},{"id":1460,"depth":877,"text":1461},"Pourquoi tant de langages, ce qu'ils ont en commun, et la différence entre langage compilé et langage interprété.",null,"md",{},[1490,1494],{"slug":1138,"kind":1491,"question":1144,"choices":1492,"correct":791,"multi":1493,"explanation":855},"qcm",[1151,1154,1157,1160],false,{"slug":1414,"kind":1491,"question":1419,"choices":1495,"correct":791,"multi":1493,"explanation":855},[1426,1429,1432],{"title":387,"description":1485},"RRzvw12At2Yq8tGBKyd55CSZaZzwJtMLY_EaPz54BOY",{"id":1499,"title":1500,"bo":1501,"body":1502,"description":1753,"eval":1486,"extension":1487,"labo":1486,"meta":1754,"navigation":1493,"path":1755,"quizzes":1756,"readingTime":862,"seo":1757,"stem":1758,"tp":1486,"__hash__":1759},"coursMemo\u002F1.nsi-1ere\u002Fpg-langages-prog\u002F1.diversite-langages.memo.md","Diversité et unité des langages — l'essentiel",[588],{"type":590,"value":1503,"toc":1746},[1504,1508,1515,1519,1557,1561,1629,1631,1642,1646,1743],[593,1505,1507],{"id":1506},"en-une-phrase","En une phrase",[598,1509,1510,1511,1514],{},"Il existe des centaines de langages, chacun optimisé pour un compromis\ndifférent — mais ",[602,1512,1513],{},"presque tous reposent sur les mêmes constructions"," :\naffectation, conditionnelle, boucles, fonction.",[593,1516,1518],{"id":1517},"à-mémoriser","À mémoriser",[729,1520,1521,1526,1539,1544,1549,1554],{},[732,1522,723,1523,1525],{},[602,1524,726],{}," = une grande façon de concevoir un programme.",[732,1527,1528,1529,897,1532,897,1535,1538],{},"Trois paradigmes phares : ",[602,1530,1531],{},"impératif",[602,1533,1534],{},"fonctionnel",[602,1536,1537],{},"objet",".",[732,1540,1541,1542,1538],{},"Python est ",[602,1543,767],{},[732,1545,1546,1548],{},[602,1547,1178],{}," : traduction préalable en code machine (C, Rust). Rapide à\nl'exécution.",[732,1550,1551,1553],{},[602,1552,1192],{}," : exécution ligne par ligne (Python, JavaScript).\nImmédiat à essayer.",[732,1555,1556],{},"Briques universelles : affectation, conditionnelle, boucle bornée, boucle\nnon bornée, fonction.",[593,1558,1560],{"id":1559},"à-savoir-reconnaître","À savoir reconnaître",[632,1562,1563,1573],{},[635,1564,1565],{},[638,1566,1567,1570],{},[641,1568,1569],{},"Situation",[641,1571,1572],{},"Identifier",[648,1574,1575,1589,1601,1613,1621],{},[638,1576,1577,1587],{},[653,1578,1579,1582,1583,1586],{},[857,1580,1581],{},"for i in range(n):"," (Python) ≈ ",[857,1584,1585],{},"for (int i=0; i\u003Cn; i++)"," (C)",[653,1588,1364],{},[638,1590,1591,1599],{},[653,1592,1593,1582,1596,1586],{},[857,1594,1595],{},"while cond:",[857,1597,1598],{},"while (cond) { … }",[653,1600,1379],{},[638,1602,1603,1610],{},[653,1604,1605,1607,1608],{},[857,1606,1399],{}," ≈ ",[857,1609,1404],{},[653,1611,1612],{},"Définition de fonction",[638,1614,1615,1618],{},[653,1616,1617],{},"Programme traduit avant exécution",[653,1619,1620],{},"Langage compilé",[638,1622,1623,1626],{},[653,1624,1625],{},"Programme exécuté ligne par ligne",[653,1627,1628],{},"Langage interprété",[593,1630,1436],{"id":1435},[729,1632,1633,1636,1639],{},[732,1634,1635],{},"Aucun langage n'est universellement « meilleur ».",[732,1637,1638],{},"Compilé ≠ rapide automatiquement (l'algorithme compte d'abord).",[732,1640,1641],{},"Python est interprété pour vous, mais utilise en interne un bytecode.",[593,1643,1645],{"id":1644},"syntaxe-python","Syntaxe Python",[849,1647,1649],{"className":851,"code":1648,"language":854,"meta":855,"style":855},"# Style impératif : modifier un état\ntotal = 0\nfor i in range(1, 6):\n    total += i * i\n\n# Style fonctionnel : composer des fonctions\ntotal = sum(map(lambda n: n * n, range(1, 6)))\n",[857,1650,1651,1656,1664,1684,1696,1700,1705],{"__ignoreMap":855},[770,1652,1653],{"class":861,"line":862},[770,1654,1655],{"class":937},"# Style impératif : modifier un état\n",[770,1657,1658,1660,1662],{"class":861,"line":877},[770,1659,866],{"class":865},[770,1661,870],{"class":869},[770,1663,874],{"class":873},[770,1665,1666,1668,1670,1672,1674,1676,1678,1680,1682],{"class":861,"line":906},[770,1667,880],{"class":869},[770,1669,883],{"class":865},[770,1671,886],{"class":869},[770,1673,889],{"class":873},[770,1675,892],{"class":865},[770,1677,791],{"class":873},[770,1679,897],{"class":865},[770,1681,900],{"class":873},[770,1683,903],{"class":865},[770,1685,1686,1688,1690,1692,1694],{"class":861,"line":928},[770,1687,909],{"class":865},[770,1689,1068],{"class":869},[770,1691,883],{"class":865},[770,1693,922],{"class":869},[770,1695,925],{"class":865},[770,1697,1698],{"class":861,"line":1061},[770,1699,1083],{"emptyLinePlaceholder":1082},[770,1701,1702],{"class":861,"line":1079},[770,1703,1704],{"class":937},"# Style fonctionnel : composer des fonctions\n",[770,1706,1707,1709,1711,1713,1715,1718,1720,1722,1724,1726,1729,1732,1734,1736,1738,1740],{"class":861,"line":1086},[770,1708,866],{"class":865},[770,1710,870],{"class":869},[770,1712,996],{"class":873},[770,1714,892],{"class":865},[770,1716,1717],{"class":873},"map",[770,1719,892],{"class":865},[770,1721,979],{"class":869},[770,1723,982],{"class":865},[770,1725,922],{"class":869},[770,1727,1728],{"class":865}," n, ",[770,1730,1731],{"class":873},"range",[770,1733,892],{"class":865},[770,1735,791],{"class":873},[770,1737,897],{"class":865},[770,1739,900],{"class":873},[770,1741,1742],{"class":865},")))\n",[1473,1744,1745],{},"html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":855,"searchDepth":877,"depth":877,"links":1747},[1748,1749,1750,1751,1752],{"id":1506,"depth":877,"text":1507},{"id":1517,"depth":877,"text":1518},{"id":1559,"depth":877,"text":1560},{"id":1435,"depth":877,"text":1436},{"id":1644,"depth":877,"text":1645},"Mémo de révision sur les paradigmes, la compilation et les briques universelles des langages.",{},"\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fdiversite-langages.memo",[],{"title":1500,"description":1753},"1.nsi-1ere\u002Fpg-langages-prog\u002F1.diversite-langages.memo","rjRnJO_FDYxLjXh7i_K7QxFu4i1cv9hAXmb_M4ZhlDA",{"id":1761,"title":1762,"body":1763,"description":2048,"extension":1487,"meta":2049,"navigation":1493,"path":2050,"seo":2051,"stem":2052,"__hash__":2053},"coursSlides\u002F1.nsi-1ere\u002Fpg-langages-prog\u002F1.diversite-langages.slides.md","Diversité et unité des langages — diapositives",{"type":590,"value":1764,"toc":2046},[1765,1770,1773,1776,1780,1788,1790,1794,1837,1840,1842,1846,1863,1866,1868,1872,1967,1970,1972,1976,1996,1998,2002,2005,2035,2037,2041,2044],[1766,1767,1769],"h1",{"id":1768},"diversité-et-unité-des-langages","Diversité et unité des langages",[598,1771,1772],{},"Pourquoi tant de langages — et pourquoi ils se ressemblent.",[1774,1775],"hr",{},[1766,1777,1779],{"id":1778},"question-douverture","Question d'ouverture",[729,1781,1782,1785],{},[732,1783,1784],{},"Citez 3 langages de programmation que vous connaissez de nom.",[732,1786,1787],{},"À quel usage les associez-vous spontanément ?",[1774,1789],{},[1766,1791,1793],{"id":1792},"pas-de-langage-universel","Pas de langage universel",[632,1795,1796,1805],{},[635,1797,1798],{},[638,1799,1800,1802],{},[641,1801,643],{},[641,1803,1804],{},"Langage",[648,1806,1807,1815,1822,1830],{},[638,1808,1809,1812],{},[653,1810,1811],{},"Performance",[653,1813,1814],{},"C, Rust",[638,1816,1817,1820],{},[653,1818,1819],{},"Lisibilité",[653,1821,1151],{},[638,1823,1824,1827],{},[653,1825,1826],{},"Web navigateur",[653,1828,1829],{},"JavaScript",[638,1831,1832,1835],{},[653,1833,1834],{},"Données",[653,1836,1157],{},[598,1838,1839],{},"Chaque langage est un compromis.",[1774,1841],{},[1766,1843,1845],{"id":1844},"les-trois-grands-paradigmes","Les trois grands paradigmes",[729,1847,1848,1853,1858],{},[732,1849,1850,1852],{},[602,1851,736],{}," — une suite d'instructions qui modifie un état.",[732,1854,1855,1857],{},[602,1856,746],{}," — composer des fonctions sans état mutable.",[732,1859,1860,1862],{},[602,1861,756],{}," — données + opérations regroupées en objets.",[598,1864,1865],{},"Python accepte les trois.",[1774,1867],{},[1766,1869,1871],{"id":1870},"même-programme-trois-styles","Même programme, trois styles",[849,1873,1875],{"className":851,"code":1874,"language":854,"meta":855,"style":855},"# Impératif\ntotal = 0\nfor i in range(1, 6):\n    total += i * i\n\n# Fonctionnel\ntotal = sum(map(lambda n: n*n, range(1, 6)))\n",[857,1876,1877,1882,1890,1910,1922,1926,1931],{"__ignoreMap":855},[770,1878,1879],{"class":861,"line":862},[770,1880,1881],{"class":937},"# Impératif\n",[770,1883,1884,1886,1888],{"class":861,"line":877},[770,1885,866],{"class":865},[770,1887,870],{"class":869},[770,1889,874],{"class":873},[770,1891,1892,1894,1896,1898,1900,1902,1904,1906,1908],{"class":861,"line":906},[770,1893,880],{"class":869},[770,1895,883],{"class":865},[770,1897,886],{"class":869},[770,1899,889],{"class":873},[770,1901,892],{"class":865},[770,1903,791],{"class":873},[770,1905,897],{"class":865},[770,1907,900],{"class":873},[770,1909,903],{"class":865},[770,1911,1912,1914,1916,1918,1920],{"class":861,"line":928},[770,1913,909],{"class":865},[770,1915,1068],{"class":869},[770,1917,883],{"class":865},[770,1919,922],{"class":869},[770,1921,925],{"class":865},[770,1923,1924],{"class":861,"line":1061},[770,1925,1083],{"emptyLinePlaceholder":1082},[770,1927,1928],{"class":861,"line":1079},[770,1929,1930],{"class":937},"# Fonctionnel\n",[770,1932,1933,1935,1937,1939,1941,1943,1945,1947,1950,1952,1955,1957,1959,1961,1963,1965],{"class":861,"line":1086},[770,1934,866],{"class":865},[770,1936,870],{"class":869},[770,1938,996],{"class":873},[770,1940,892],{"class":865},[770,1942,1717],{"class":873},[770,1944,892],{"class":865},[770,1946,979],{"class":869},[770,1948,1949],{"class":865}," n: n",[770,1951,922],{"class":869},[770,1953,1954],{"class":865},"n, ",[770,1956,1731],{"class":873},[770,1958,892],{"class":865},[770,1960,791],{"class":873},[770,1962,897],{"class":865},[770,1964,900],{"class":873},[770,1966,1742],{"class":865},[598,1968,1969],{},"Résultat identique : 55.",[1774,1971],{},[1766,1973,1975],{"id":1974},"compilation-vs-interprétation","Compilation vs interprétation",[729,1977,1978,1984,1990],{},[732,1979,1980,1983],{},[602,1981,1982],{},"Compilé"," : traduit une fois, exécuté ensuite (C, Rust). Rapide.",[732,1985,1986,1989],{},[602,1987,1988],{},"Interprété"," : lu ligne par ligne (Python, JS). Immédiat à essayer.",[732,1991,1992,1995],{},[602,1993,1994],{},"Intermédiaire"," : bytecode + machine virtuelle (Java, Python en interne).",[1774,1997],{},[1766,1999,2001],{"id":2000},"briques-universelles","Briques universelles",[598,2003,2004],{},"Sous tous les langages généralistes :",[729,2006,2007,2012,2018,2023,2029],{},[732,2008,2009,2010],{},"Affectation : ",[857,2011,1339],{},[732,2013,2014,2015],{},"Conditionnelle : ",[857,2016,2017],{},"if … else …",[732,2019,2020,2021],{},"Boucle bornée : ",[857,2022,880],{},[732,2024,2025,2026],{},"Boucle non bornée : ",[857,2027,2028],{},"while",[732,2030,2031,2032],{},"Fonction : ",[857,2033,2034],{},"def …",[1774,2036],{},[1766,2038,2040],{"id":2039},"à-retenir","À retenir",[598,2042,2043],{},"Apprendre un nouveau langage = repérer ces cinq briques dans sa syntaxe.\nLe transfert est rapide quand le socle est solide.",[1473,2045,1745],{},{"title":855,"searchDepth":877,"depth":877,"links":2047},[],"Deck pour la séance d'introduction sur les langages de programmation.",{},"\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fdiversite-langages.slides",{"title":1762,"description":2048},"1.nsi-1ere\u002Fpg-langages-prog\u002F1.diversite-langages.slides","dMHWpwJULke0gDQNiH9tZK9mjZ4QuvtET5qJtpVI6qs",{"id":1499,"title":1500,"bo":2055,"body":2056,"description":1753,"eval":1486,"extension":1487,"labo":1486,"meta":2261,"navigation":1493,"path":1755,"quizzes":2262,"readingTime":862,"seo":2263,"stem":1758,"tp":1486,"__hash__":1759},[588],{"type":590,"value":2057,"toc":2254},[2058,2060,2064,2066,2094,2096,2150,2152,2160,2162,2252],[593,2059,1507],{"id":1506},[598,2061,1510,2062,1514],{},[602,2063,1513],{},[593,2065,1518],{"id":1517},[729,2067,2068,2072,2080,2084,2088,2092],{},[732,2069,723,2070,1525],{},[602,2071,726],{},[732,2073,1528,2074,897,2076,897,2078,1538],{},[602,2075,1531],{},[602,2077,1534],{},[602,2079,1537],{},[732,2081,1541,2082,1538],{},[602,2083,767],{},[732,2085,2086,1548],{},[602,2087,1178],{},[732,2089,2090,1553],{},[602,2091,1192],{},[732,2093,1556],{},[593,2095,1560],{"id":1559},[632,2097,2098,2106],{},[635,2099,2100],{},[638,2101,2102,2104],{},[641,2103,1569],{},[641,2105,1572],{},[648,2107,2108,2118,2128,2138,2144],{},[638,2109,2110,2116],{},[653,2111,2112,1582,2114,1586],{},[857,2113,1581],{},[857,2115,1585],{},[653,2117,1364],{},[638,2119,2120,2126],{},[653,2121,2122,1582,2124,1586],{},[857,2123,1595],{},[857,2125,1598],{},[653,2127,1379],{},[638,2129,2130,2136],{},[653,2131,2132,1607,2134],{},[857,2133,1399],{},[857,2135,1404],{},[653,2137,1612],{},[638,2139,2140,2142],{},[653,2141,1617],{},[653,2143,1620],{},[638,2145,2146,2148],{},[653,2147,1625],{},[653,2149,1628],{},[593,2151,1436],{"id":1435},[729,2153,2154,2156,2158],{},[732,2155,1635],{},[732,2157,1638],{},[732,2159,1641],{},[593,2161,1645],{"id":1644},[849,2163,2164],{"className":851,"code":1648,"language":854,"meta":855,"style":855},[857,2165,2166,2170,2178,2198,2210,2214,2218],{"__ignoreMap":855},[770,2167,2168],{"class":861,"line":862},[770,2169,1655],{"class":937},[770,2171,2172,2174,2176],{"class":861,"line":877},[770,2173,866],{"class":865},[770,2175,870],{"class":869},[770,2177,874],{"class":873},[770,2179,2180,2182,2184,2186,2188,2190,2192,2194,2196],{"class":861,"line":906},[770,2181,880],{"class":869},[770,2183,883],{"class":865},[770,2185,886],{"class":869},[770,2187,889],{"class":873},[770,2189,892],{"class":865},[770,2191,791],{"class":873},[770,2193,897],{"class":865},[770,2195,900],{"class":873},[770,2197,903],{"class":865},[770,2199,2200,2202,2204,2206,2208],{"class":861,"line":928},[770,2201,909],{"class":865},[770,2203,1068],{"class":869},[770,2205,883],{"class":865},[770,2207,922],{"class":869},[770,2209,925],{"class":865},[770,2211,2212],{"class":861,"line":1061},[770,2213,1083],{"emptyLinePlaceholder":1082},[770,2215,2216],{"class":861,"line":1079},[770,2217,1704],{"class":937},[770,2219,2220,2222,2224,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250],{"class":861,"line":1086},[770,2221,866],{"class":865},[770,2223,870],{"class":869},[770,2225,996],{"class":873},[770,2227,892],{"class":865},[770,2229,1717],{"class":873},[770,2231,892],{"class":865},[770,2233,979],{"class":869},[770,2235,982],{"class":865},[770,2237,922],{"class":869},[770,2239,1728],{"class":865},[770,2241,1731],{"class":873},[770,2243,892],{"class":865},[770,2245,791],{"class":873},[770,2247,897],{"class":865},[770,2249,900],{"class":873},[770,2251,1742],{"class":865},[1473,2253,1745],{},{"title":855,"searchDepth":877,"depth":877,"links":2255},[2256,2257,2258,2259,2260],{"id":1506,"depth":877,"text":1507},{"id":1517,"depth":877,"text":1518},{"id":1559,"depth":877,"text":1560},{"id":1435,"depth":877,"text":1436},{"id":1644,"depth":877,"text":1645},{},[],{"title":1500,"description":1753},{"id":1761,"title":1762,"body":2265,"description":2048,"extension":1487,"meta":2495,"navigation":1493,"path":2050,"seo":2496,"stem":2052,"__hash__":2053},{"type":590,"value":2266,"toc":2493},[2267,2269,2271,2273,2275,2281,2283,2285,2321,2323,2325,2327,2341,2343,2345,2347,2437,2439,2441,2443,2457,2459,2461,2463,2485,2487,2489,2491],[1766,2268,1769],{"id":1768},[598,2270,1772],{},[1774,2272],{},[1766,2274,1779],{"id":1778},[729,2276,2277,2279],{},[732,2278,1784],{},[732,2280,1787],{},[1774,2282],{},[1766,2284,1793],{"id":1792},[632,2286,2287,2295],{},[635,2288,2289],{},[638,2290,2291,2293],{},[641,2292,643],{},[641,2294,1804],{},[648,2296,2297,2303,2309,2315],{},[638,2298,2299,2301],{},[653,2300,1811],{},[653,2302,1814],{},[638,2304,2305,2307],{},[653,2306,1819],{},[653,2308,1151],{},[638,2310,2311,2313],{},[653,2312,1826],{},[653,2314,1829],{},[638,2316,2317,2319],{},[653,2318,1834],{},[653,2320,1157],{},[598,2322,1839],{},[1774,2324],{},[1766,2326,1845],{"id":1844},[729,2328,2329,2333,2337],{},[732,2330,2331,1852],{},[602,2332,736],{},[732,2334,2335,1857],{},[602,2336,746],{},[732,2338,2339,1862],{},[602,2340,756],{},[598,2342,1865],{},[1774,2344],{},[1766,2346,1871],{"id":1870},[849,2348,2349],{"className":851,"code":1874,"language":854,"meta":855,"style":855},[857,2350,2351,2355,2363,2383,2395,2399,2403],{"__ignoreMap":855},[770,2352,2353],{"class":861,"line":862},[770,2354,1881],{"class":937},[770,2356,2357,2359,2361],{"class":861,"line":877},[770,2358,866],{"class":865},[770,2360,870],{"class":869},[770,2362,874],{"class":873},[770,2364,2365,2367,2369,2371,2373,2375,2377,2379,2381],{"class":861,"line":906},[770,2366,880],{"class":869},[770,2368,883],{"class":865},[770,2370,886],{"class":869},[770,2372,889],{"class":873},[770,2374,892],{"class":865},[770,2376,791],{"class":873},[770,2378,897],{"class":865},[770,2380,900],{"class":873},[770,2382,903],{"class":865},[770,2384,2385,2387,2389,2391,2393],{"class":861,"line":928},[770,2386,909],{"class":865},[770,2388,1068],{"class":869},[770,2390,883],{"class":865},[770,2392,922],{"class":869},[770,2394,925],{"class":865},[770,2396,2397],{"class":861,"line":1061},[770,2398,1083],{"emptyLinePlaceholder":1082},[770,2400,2401],{"class":861,"line":1079},[770,2402,1930],{"class":937},[770,2404,2405,2407,2409,2411,2413,2415,2417,2419,2421,2423,2425,2427,2429,2431,2433,2435],{"class":861,"line":1086},[770,2406,866],{"class":865},[770,2408,870],{"class":869},[770,2410,996],{"class":873},[770,2412,892],{"class":865},[770,2414,1717],{"class":873},[770,2416,892],{"class":865},[770,2418,979],{"class":869},[770,2420,1949],{"class":865},[770,2422,922],{"class":869},[770,2424,1954],{"class":865},[770,2426,1731],{"class":873},[770,2428,892],{"class":865},[770,2430,791],{"class":873},[770,2432,897],{"class":865},[770,2434,900],{"class":873},[770,2436,1742],{"class":865},[598,2438,1969],{},[1774,2440],{},[1766,2442,1975],{"id":1974},[729,2444,2445,2449,2453],{},[732,2446,2447,1983],{},[602,2448,1982],{},[732,2450,2451,1989],{},[602,2452,1988],{},[732,2454,2455,1995],{},[602,2456,1994],{},[1774,2458],{},[1766,2460,2001],{"id":2000},[598,2462,2004],{},[729,2464,2465,2469,2473,2477,2481],{},[732,2466,2009,2467],{},[857,2468,1339],{},[732,2470,2014,2471],{},[857,2472,2017],{},[732,2474,2020,2475],{},[857,2476,880],{},[732,2478,2025,2479],{},[857,2480,2028],{},[732,2482,2031,2483],{},[857,2484,2034],{},[1774,2486],{},[1766,2488,2040],{"id":2039},[598,2490,2043],{},[1473,2492,1745],{},{"title":855,"searchDepth":877,"depth":877,"links":2494},[],{},{"title":1762,"description":2048},1788035582066]