[{"data":1,"prerenderedAt":2972},["ShallowReactive",2],{"navigation":3,"\u002Fnsi-tale\u002Ftd-langages-prog\u002Fparadigmes":585,"\u002Fnsi-tale\u002Ftd-langages-prog\u002Fparadigmes__counterpart":1518,"\u002Fnsi-tale\u002Ftd-langages-prog\u002Fparadigmes__slides":1824,"annexes-memo:\u002Fnsi-tale\u002Ftd-langages-prog\u002Fparadigmes":2323,"annexes-slides:\u002Fnsi-tale\u002Ftd-langages-prog\u002Fparadigmes":2575},[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":553,"bo":587,"body":589,"description":1504,"eval":1505,"extension":1506,"labo":1505,"meta":1507,"navigation":880,"path":554,"quizzes":1508,"readingTime":791,"seo":1516,"stem":555,"tp":1505,"__hash__":1517},"cours\u002F2.nsi-tale\u002Ftd-langages-prog\u002F4.paradigmes.md",[588],"TD04",{"type":590,"value":591,"toc":1493},"minimark",[592,597,614,633,670,674,748,763,767,770,775,778,915,937,941,948,1088,1104,1147,1151,1158,1323,1346,1366,1370,1427,1441,1465,1469,1488,1490],[593,594,596],"h2",{"id":595},"introduction","Introduction",[598,599,600,601,605,606,609,610,613],"p",{},"Un ",[602,603,604],"strong",{},"paradigme"," de programmation est une ",[602,607,608],{},"manière de concevoir un programme",".\nCe n'est pas un langage : un même langage (comme Python) permet d'écrire en\nplusieurs paradigmes — souvent dans le même fichier. C'est l'objet de l'item\n",[611,612],"bo-ref",{"code":588},".",[598,615,616,617,620,621,624,625,628,629,632],{},"Trois paradigmes structurent l'enseignement de la Terminale : ",[602,618,619],{},"impératif",",\n",[602,622,623],{},"fonctionnel"," et ",[602,626,627],{},"orienté objet",". Connaître les trois ne vous transformera\npas en philosophe du code — mais cela vous donnera, devant un problème,\n",[602,630,631],{},"plusieurs angles d'attaque",", et la capacité de lire des bases de code\nécrites par d'autres dans leur style natif.",[598,634,635,636,638,639,642,643,645,646,649,650,653,654,657,658,662,663,662,666,669],{},"Une analogie culinaire éclaire la distinction. L'",[602,637,619],{}," ressemble à\nune ",[602,640,641],{},"recette de cuisine"," : « prendre une casserole, verser l'eau, allumer le\nfeu, attendre, ajouter le sel… » — une suite d'instructions sur un état qui\névolue. Le ",[602,644,623],{}," ressemble à la ",[602,647,648],{},"description du plat fini"," : « un\nrisotto = un riz arrondi, lié au bouillon, parfumé au safran » — une\ncomposition, pas une marche à suivre. L'",[602,651,652],{},"objet"," ressemble à un ",[602,655,656],{},"cuisinier","\nqui dispose de méthodes (",[659,660,661],"code",{},"saler",", ",[659,664,665],{},"goûter",[659,667,668],{},"flamber",") et qui maintient en\nmémoire l'état de sa préparation.",[593,671,673],{"id":672},"trois-paradigmes-en-une-phrase","Trois paradigmes en une phrase",[675,676,677,693],"table",{},[678,679,680],"thead",{},[681,682,683,687,690],"tr",{},[684,685,686],"th",{},"Paradigme",[684,688,689],{},"Idée centrale",[684,691,692],{},"Élément de base",[694,695,696,714,731],"tbody",{},[681,697,698,704,711],{},[699,700,701],"td",{},[602,702,703],{},"Impératif",[699,705,706,707,710],{},"Décrire une ",[602,708,709],{},"suite d'instructions"," qui modifient un état.",[699,712,713],{},"Variable, affectation, boucle.",[681,715,716,721,728],{},[699,717,718],{},[602,719,720],{},"Fonctionnel",[699,722,723,724,727],{},"Composer des ",[602,725,726],{},"fonctions pures"," qui transforment des données.",[699,729,730],{},"Fonction, application, composition.",[681,732,733,738,745],{},[699,734,735],{},[602,736,737],{},"Orienté objet",[699,739,740,741,744],{},"Modéliser des ",[602,742,743],{},"objets"," qui portent état et comportement.",[699,746,747],{},"Classe, instance, méthode.",[749,750,751],"note",{},[598,752,753,754,756,757,759,760,762],{},"Aucun paradigme n'est universellement supérieur. Chacun éclaire mieux certains\nproblèmes : le ",[602,755,623],{}," brille sur les transformations de données, l'\n",[602,758,619],{}," sur les boucles sur structures mutables, l'",[602,761,652],{}," sur la\nmodélisation de systèmes avec état persistant.",[593,764,766],{"id":765},"le-même-problème-trois-fois-la-somme-dune-liste","Le même problème, trois fois — la somme d'une liste",[598,768,769],{},"Prenons une tâche élémentaire : calculer la somme d'une liste d'entiers.",[771,772,774],"h3",{"id":773},"style-impératif","Style impératif",[598,776,777],{},"On parcourt la liste, on accumule dans une variable.",[779,780,785],"pre",{"className":781,"code":782,"language":783,"meta":784,"style":784},"language-python shiki shiki-themes github-light github-light github-dark","def somme_imperative(liste):\n    \"\"\"Somme par accumulation dans une variable mutable.\"\"\"\n    total = 0                      # état initial\n    for x in liste:                # boucle\n        total = total + x          # mise à jour de l'état\n    return total\n\nprint(somme_imperative([1, 2, 3, 4]))   # 10\n","python","",[659,786,787,804,811,828,846,866,875,882],{"__ignoreMap":784},[788,789,792,796,800],"span",{"class":790,"line":791},"line",1,[788,793,795],{"class":794},"s8jYJ","def",[788,797,799],{"class":798},"snPdu"," somme_imperative",[788,801,803],{"class":802},"sxrX7","(liste):\n",[788,805,807],{"class":790,"line":806},2,[788,808,810],{"class":809},"sIIMD","    \"\"\"Somme par accumulation dans une variable mutable.\"\"\"\n",[788,812,814,817,820,824],{"class":790,"line":813},3,[788,815,816],{"class":802},"    total ",[788,818,819],{"class":794},"=",[788,821,823],{"class":822},"sBjJW"," 0",[788,825,827],{"class":826},"sCsY4","                      # état initial\n",[788,829,831,834,837,840,843],{"class":790,"line":830},4,[788,832,833],{"class":794},"    for",[788,835,836],{"class":802}," x ",[788,838,839],{"class":794},"in",[788,841,842],{"class":802}," liste:                ",[788,844,845],{"class":826},"# boucle\n",[788,847,849,852,854,857,860,863],{"class":790,"line":848},5,[788,850,851],{"class":802},"        total ",[788,853,819],{"class":794},[788,855,856],{"class":802}," total ",[788,858,859],{"class":794},"+",[788,861,862],{"class":802}," x          ",[788,864,865],{"class":826},"# mise à jour de l'état\n",[788,867,869,872],{"class":790,"line":868},6,[788,870,871],{"class":794},"    return",[788,873,874],{"class":802}," total\n",[788,876,878],{"class":790,"line":877},7,[788,879,881],{"emptyLinePlaceholder":880},true,"\n",[788,883,885,888,891,894,896,899,901,904,906,909,912],{"class":790,"line":884},8,[788,886,887],{"class":822},"print",[788,889,890],{"class":802},"(somme_imperative([",[788,892,893],{"class":822},"1",[788,895,662],{"class":802},[788,897,898],{"class":822},"2",[788,900,662],{"class":802},[788,902,903],{"class":822},"3",[788,905,662],{"class":802},[788,907,908],{"class":822},"4",[788,910,911],{"class":802},"]))   ",[788,913,914],{"class":826},"# 10\n",[598,916,917,920,921,924,925,928,929,932,933,936],{},[602,918,919],{},"Clés"," : variable ",[659,922,923],{},"total"," qui ",[602,926,927],{},"mute",", boucle ",[659,930,931],{},"for"," explicite, séquence\nd'instructions qui décrivent ",[602,934,935],{},"comment"," calculer.",[771,938,940],{"id":939},"style-fonctionnel","Style fonctionnel",[598,942,943,944,947],{},"On exprime la somme comme l'",[602,945,946],{},"application"," d'une opération de réduction\nsur la liste.",[779,949,951],{"className":781,"code":950,"language":783,"meta":784,"style":784},"from functools import reduce\nfrom operator import add\n\ndef somme_fonctionnelle(liste):\n    \"\"\"Somme par réduction — pas de variable mutable.\"\"\"\n    return reduce(add, liste, 0)\n\nprint(somme_fonctionnelle([1, 2, 3, 4]))   # 10\n\n# Variante encore plus directe :\nprint(sum([1, 2, 3, 4]))                   # 10 — sum est une fonction native\n",[659,952,953,968,980,984,993,998,1014,1018,1043,1048,1054],{"__ignoreMap":784},[788,954,955,958,961,964],{"class":790,"line":791},[788,956,957],{"class":794},"from",[788,959,960],{"class":802}," functools ",[788,962,963],{"class":794},"import",[788,965,967],{"class":966},"sP4rz"," reduce\n",[788,969,970,972,975,977],{"class":790,"line":806},[788,971,957],{"class":794},[788,973,974],{"class":802}," operator ",[788,976,963],{"class":794},[788,978,979],{"class":802}," add\n",[788,981,982],{"class":790,"line":813},[788,983,881],{"emptyLinePlaceholder":880},[788,985,986,988,991],{"class":790,"line":830},[788,987,795],{"class":794},[788,989,990],{"class":798}," somme_fonctionnelle",[788,992,803],{"class":802},[788,994,995],{"class":790,"line":848},[788,996,997],{"class":809},"    \"\"\"Somme par réduction — pas de variable mutable.\"\"\"\n",[788,999,1000,1002,1005,1008,1011],{"class":790,"line":868},[788,1001,871],{"class":794},[788,1003,1004],{"class":966}," reduce",[788,1006,1007],{"class":802},"(add, liste, ",[788,1009,1010],{"class":822},"0",[788,1012,1013],{"class":802},")\n",[788,1015,1016],{"class":790,"line":877},[788,1017,881],{"emptyLinePlaceholder":880},[788,1019,1020,1022,1025,1027,1029,1031,1033,1035,1037,1039,1041],{"class":790,"line":884},[788,1021,887],{"class":822},[788,1023,1024],{"class":802},"(somme_fonctionnelle([",[788,1026,893],{"class":822},[788,1028,662],{"class":802},[788,1030,898],{"class":822},[788,1032,662],{"class":802},[788,1034,903],{"class":822},[788,1036,662],{"class":802},[788,1038,908],{"class":822},[788,1040,911],{"class":802},[788,1042,914],{"class":826},[788,1044,1046],{"class":790,"line":1045},9,[788,1047,881],{"emptyLinePlaceholder":880},[788,1049,1051],{"class":790,"line":1050},10,[788,1052,1053],{"class":826},"# Variante encore plus directe :\n",[788,1055,1057,1059,1062,1065,1068,1070,1072,1074,1076,1078,1080,1082,1085],{"class":790,"line":1056},11,[788,1058,887],{"class":822},[788,1060,1061],{"class":802},"(",[788,1063,1064],{"class":822},"sum",[788,1066,1067],{"class":802},"([",[788,1069,893],{"class":822},[788,1071,662],{"class":802},[788,1073,898],{"class":822},[788,1075,662],{"class":802},[788,1077,903],{"class":822},[788,1079,662],{"class":802},[788,1081,908],{"class":822},[788,1083,1084],{"class":802},"]))                   ",[788,1086,1087],{"class":826},"# 10 — sum est une fonction native\n",[598,1089,1090,1092,1093,1096,1097,1099,1100,1103],{},[602,1091,919],{}," : aucune affectation, aucune boucle visible, on ",[602,1094,1095],{},"décrit"," le résultat\ncomme la réduction de la liste par l'addition à partir de ",[659,1098,1010],{},". La fonction est\n",[602,1101,1102],{},"pure"," : pas d'effet de bord, le même argument donne toujours le même\nrésultat.",[1105,1106,1107,1110],"tip",{},[598,1108,1109],{},"Trois primitives fonctionnelles à retenir :",[1111,1112,1113,1126,1136],"ul",{},[1114,1115,1116,1121,1122,1125],"li",{},[602,1117,1118],{},[659,1119,1120],{},"map(f, l)"," : applique ",[659,1123,1124],{},"f"," à chaque élément.",[1114,1127,1128,1133,1134,613],{},[602,1129,1130],{},[659,1131,1132],{},"filter(p, l)"," : garde les éléments qui vérifient le prédicat ",[659,1135,598],{},[1114,1137,1138,1143,1144,613],{},[602,1139,1140],{},[659,1141,1142],{},"reduce(op, l, init)"," : combine tous les éléments par ",[659,1145,1146],{},"op",[771,1148,1150],{"id":1149},"style-orienté-objet","Style orienté objet",[598,1152,1153,1154,1157],{},"On modélise un ",[602,1155,1156],{},"objet somme"," qui porte un état (le total courant) et\nexpose des méthodes pour le faire évoluer.",[779,1159,1161],{"className":781,"code":1160,"language":783,"meta":784,"style":784},"class Somme:\n    \"\"\"Objet qui accumule une somme par ajouts successifs.\"\"\"\n\n    def __init__(self):\n        self._total = 0\n\n    def ajouter(self, x):\n        self._total += x\n\n    def valeur(self):\n        return self._total\n\n\ns = Somme()\nfor x in [1, 2, 3, 4]:\n    s.ajouter(x)\nprint(s.valeur())              # 10\n",[659,1162,1163,1174,1179,1183,1194,1207,1211,1221,1233,1237,1246,1257,1262,1267,1278,1307,1313],{"__ignoreMap":784},[788,1164,1165,1168,1171],{"class":790,"line":791},[788,1166,1167],{"class":794},"class",[788,1169,1170],{"class":798}," Somme",[788,1172,1173],{"class":802},":\n",[788,1175,1176],{"class":790,"line":806},[788,1177,1178],{"class":809},"    \"\"\"Objet qui accumule une somme par ajouts successifs.\"\"\"\n",[788,1180,1181],{"class":790,"line":813},[788,1182,881],{"emptyLinePlaceholder":880},[788,1184,1185,1188,1191],{"class":790,"line":830},[788,1186,1187],{"class":794},"    def",[788,1189,1190],{"class":822}," __init__",[788,1192,1193],{"class":802},"(self):\n",[788,1195,1196,1199,1202,1204],{"class":790,"line":848},[788,1197,1198],{"class":822},"        self",[788,1200,1201],{"class":802},"._total ",[788,1203,819],{"class":794},[788,1205,1206],{"class":822}," 0\n",[788,1208,1209],{"class":790,"line":868},[788,1210,881],{"emptyLinePlaceholder":880},[788,1212,1213,1215,1218],{"class":790,"line":877},[788,1214,1187],{"class":794},[788,1216,1217],{"class":798}," ajouter",[788,1219,1220],{"class":802},"(self, x):\n",[788,1222,1223,1225,1227,1230],{"class":790,"line":884},[788,1224,1198],{"class":822},[788,1226,1201],{"class":802},[788,1228,1229],{"class":794},"+=",[788,1231,1232],{"class":802}," x\n",[788,1234,1235],{"class":790,"line":1045},[788,1236,881],{"emptyLinePlaceholder":880},[788,1238,1239,1241,1244],{"class":790,"line":1050},[788,1240,1187],{"class":794},[788,1242,1243],{"class":798}," valeur",[788,1245,1193],{"class":802},[788,1247,1248,1251,1254],{"class":790,"line":1056},[788,1249,1250],{"class":794},"        return",[788,1252,1253],{"class":822}," self",[788,1255,1256],{"class":802},"._total\n",[788,1258,1260],{"class":790,"line":1259},12,[788,1261,881],{"emptyLinePlaceholder":880},[788,1263,1265],{"class":790,"line":1264},13,[788,1266,881],{"emptyLinePlaceholder":880},[788,1268,1270,1273,1275],{"class":790,"line":1269},14,[788,1271,1272],{"class":802},"s ",[788,1274,819],{"class":794},[788,1276,1277],{"class":802}," Somme()\n",[788,1279,1281,1283,1285,1287,1290,1292,1294,1296,1298,1300,1302,1304],{"class":790,"line":1280},15,[788,1282,931],{"class":794},[788,1284,836],{"class":802},[788,1286,839],{"class":794},[788,1288,1289],{"class":802}," [",[788,1291,893],{"class":822},[788,1293,662],{"class":802},[788,1295,898],{"class":822},[788,1297,662],{"class":802},[788,1299,903],{"class":822},[788,1301,662],{"class":802},[788,1303,908],{"class":822},[788,1305,1306],{"class":802},"]:\n",[788,1308,1310],{"class":790,"line":1309},16,[788,1311,1312],{"class":802},"    s.ajouter(x)\n",[788,1314,1316,1318,1321],{"class":790,"line":1315},17,[788,1317,887],{"class":822},[788,1319,1320],{"class":802},"(s.valeur())              ",[788,1322,914],{"class":826},[598,1324,1325,1327,1328,1331,1332,1335,1336,662,1339,1342,1343,1345],{},[602,1326,919],{}," : la classe ",[659,1329,1330],{},"Somme"," encapsule l'état (",[659,1333,1334],{},"self._total",") et expose un\ncontrat (",[659,1337,1338],{},"ajouter",[659,1340,1341],{},"valeur","). L'utilisateur ne manipule plus une variable\nlocale, mais un ",[602,1344,652],{}," qu'on instancie et avec lequel on dialogue.",[1347,1348,1350,1356],"self-eval-qcm",{"correct":893,"slug":1349},"paradigmes-c1",[1351,1352,1353],"template",{"v-slot:question":784},[598,1354,1355],{},"Quel paradigme n'utilise pas de variable mutable ?",[1351,1357,1358],{"v-slot:choices":784},[1111,1359,1360,1362,1364],{},[1114,1361,703],{},[1114,1363,720],{},[1114,1365,737],{},[593,1367,1369],{"id":1368},"comment-choisir","Comment choisir ?",[675,1371,1372,1382],{},[678,1373,1374],{},[681,1375,1376,1379],{},[684,1377,1378],{},"Type de problème",[684,1380,1381],{},"Paradigme privilégié",[694,1383,1384,1403,1411,1419],{},[681,1385,1386,1389],{},[699,1387,1388],{},"Pipeline de transformation de données (CSV, JSON…).",[699,1390,1391,1392,1395,1396,1395,1399,1402],{},"Fonctionnel (",[659,1393,1394],{},"map","\u002F",[659,1397,1398],{},"filter",[659,1400,1401],{},"reduce",").",[681,1404,1405,1408],{},[699,1406,1407],{},"Algorithme sur un tableau, simulation pas à pas.",[699,1409,1410],{},"Impératif.",[681,1412,1413,1416],{},[699,1414,1415],{},"Modélisation d'un domaine métier (jeu, banque, plateforme).",[699,1417,1418],{},"Orienté objet.",[681,1420,1421,1424],{},[699,1422,1423],{},"Interface graphique, machine à état.",[699,1425,1426],{},"Objet, souvent.",[749,1428,1429],{},[598,1430,1431,1432,1435,1436,1395,1438,1440],{},"En pratique, on ",[602,1433,1434],{},"mixe"," : un programme Python typique utilise des classes\n(objet) qui contiennent des boucles (impératif) et appellent ",[659,1437,1394],{},[659,1439,1398],{},"\n(fonctionnel). Le pragmatisme prime sur la pureté.",[1347,1442,1444,1452],{"correct":893,"slug":1443},"paradigmes-c2",[1351,1445,1446],{"v-slot:question":784},[598,1447,1448,1449,1451],{},"Une fonction ",[659,1450,1102],{}," est une fonction qui…",[1351,1453,1454],{"v-slot:choices":784},[1111,1455,1456,1459,1462],{},[1114,1457,1458],{},"utilise seulement des entiers",[1114,1460,1461],{},"n a pas d effet de bord et donne le même résultat pour les mêmes arguments",[1114,1463,1464],{},"est définie dans une classe",[593,1466,1468],{"id":1467},"pour-aller-plus-loin","Pour aller plus loin",[598,1470,1471,1472,1475,1476,1479,1480,1483,1484,1487],{},"D'autres paradigmes existent : ",[602,1473,1474],{},"logique"," (Prolog), ",[602,1477,1478],{},"concurrent"," (acteurs,\nErlang), ",[602,1481,1482],{},"réactif"," (flux d'événements). Le programme officiel limite\nl'étude aux trois principaux. Mais retenez l'idée : un langage n'est qu'un\nvéhicule ; le ",[602,1485,1486],{},"style"," que vous y adoptez dépend du paradigme — et de votre\nmaturité de concepteur.",[611,1489],{"code":588},[1486,1491,1492],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .sP4rz, html code.shiki .sP4rz{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":784,"searchDepth":806,"depth":806,"links":1494},[1495,1496,1497,1502,1503],{"id":595,"depth":806,"text":596},{"id":672,"depth":806,"text":673},{"id":765,"depth":806,"text":766,"children":1498},[1499,1500,1501],{"id":773,"depth":813,"text":774},{"id":939,"depth":813,"text":940},{"id":1149,"depth":813,"text":1150},{"id":1368,"depth":806,"text":1369},{"id":1467,"depth":806,"text":1468},"Distinguer impératif, fonctionnel et objet — un même problème (la somme d'une liste) résolu dans les trois styles.",null,"md",{},[1509,1513],{"slug":1349,"kind":1510,"question":1355,"choices":1511,"correct":893,"multi":1512,"explanation":784},"qcm",[703,720,737],false,{"slug":1443,"kind":1510,"question":1514,"choices":1515,"correct":893,"multi":1512,"explanation":784},"Une fonction pure est une fonction qui…",[1458,1461,1464],{"title":553,"description":1504},"hvrdR3tjvk6gSeOvU2gixeaTX2mHXoSORew_wv5cSNs",{"id":1519,"title":1520,"bo":1521,"body":1522,"description":1817,"eval":1505,"extension":1506,"labo":1505,"meta":1818,"navigation":1512,"path":1819,"quizzes":1820,"readingTime":791,"seo":1821,"stem":1822,"tp":1505,"__hash__":1823},"coursMemo\u002F2.nsi-tale\u002Ftd-langages-prog\u002F4.paradigmes.memo.md","Paradigmes de programmation — l'essentiel",[588],{"type":590,"value":1523,"toc":1810},[1524,1528,1533,1537,1585,1589,1642,1646,1661,1665,1807],[593,1525,1527],{"id":1526},"en-une-phrase","En une phrase",[598,1529,1530],{},[602,1531,1532],{},"Un paradigme est une manière de concevoir un programme ; impératif (instructions + état mutable), fonctionnel (fonctions pures), objet (entités état + comportement) — un même langage permet les trois.",[593,1534,1536],{"id":1535},"à-mémoriser","À mémoriser",[1111,1538,1539,1549,1557,1563,1578],{},[1114,1540,1541,1543,1544,1548],{},[602,1542,703],{}," : variables, affectations, boucles. ",[1545,1546,1547],"em",{},"Comment"," calculer pas à pas.",[1114,1550,1551,1553,1554,936],{},[602,1552,720],{}," : fonctions pures, pas d'effet de bord, composition. ",[1545,1555,1556],{},"Quoi",[1114,1558,1559,1562],{},[602,1560,1561],{},"Objet"," : classes, instances, méthodes — encapsulation de l'état dans l'objet.",[1114,1564,1565,1566,662,1570,662,1574,613],{},"Primitives fonctionnelles : ",[602,1567,1568],{},[659,1569,1394],{},[602,1571,1572],{},[659,1573,1398],{},[602,1575,1576],{},[659,1577,1401],{},[1114,1579,1580,1581,1584],{},"Une ",[602,1582,1583],{},"fonction pure"," ne mute rien et donne toujours le même résultat sur les mêmes arguments.",[593,1586,1588],{"id":1587},"à-savoir-reconnaître","À savoir reconnaître",[675,1590,1591,1601],{},[678,1592,1593],{},[681,1594,1595,1598],{},[684,1596,1597],{},"Style",[684,1599,1600],{},"Indice",[694,1602,1603,1612,1630],{},[681,1604,1605,1607],{},[699,1606,703],{},[699,1608,1609,1611],{},[659,1610,931],{}," + variable accumulateur.",[681,1613,1614,1616],{},[699,1615,720],{},[699,1617,1618,1620,1621,1620,1623,1620,1625,1620,1627,613],{},[659,1619,1394],{}," \u002F ",[659,1622,1398],{},[659,1624,1401],{},[659,1626,1064],{},[659,1628,1629],{},"lambda",[681,1631,1632,1634],{},[699,1633,1561],{},[699,1635,1636,662,1638,1641],{},[659,1637,1167],{},[659,1639,1640],{},"self",", instanciation puis appel de méthode.",[593,1643,1645],{"id":1644},"pièges-courants","Pièges courants",[1111,1647,1648,1655,1658],{},[1114,1649,1650,1651,1654],{},"Confondre langage et paradigme (Python n'est pas « orienté objet », il ",[602,1652,1653],{},"permet"," l'objet).",[1114,1656,1657],{},"Croire qu'un paradigme est universellement meilleur.",[1114,1659,1660],{},"Forcer le fonctionnel sur un problème intrinsèquement stateful (UI, simulation).",[593,1662,1664],{"id":1663},"syntaxe-python","Syntaxe Python",[779,1666,1668],{"className":781,"code":1667,"language":783,"meta":784,"style":784},"# Impératif\ntotal = 0\nfor x in [1, 2, 3]: total += x\n\n# Fonctionnel\nsum([1, 2, 3])\n\n# Objet\nclass Somme:\n    def __init__(self): self._t = 0\n    def ajouter(self, x): self._t += x\n    def valeur(self): return self._t\n",[659,1669,1670,1675,1684,1711,1715,1720,1739,1743,1748,1756,1774,1791],{"__ignoreMap":784},[788,1671,1672],{"class":790,"line":791},[788,1673,1674],{"class":826},"# Impératif\n",[788,1676,1677,1680,1682],{"class":790,"line":806},[788,1678,1679],{"class":802},"total ",[788,1681,819],{"class":794},[788,1683,1206],{"class":822},[788,1685,1686,1688,1690,1692,1694,1696,1698,1700,1702,1704,1707,1709],{"class":790,"line":813},[788,1687,931],{"class":794},[788,1689,836],{"class":802},[788,1691,839],{"class":794},[788,1693,1289],{"class":802},[788,1695,893],{"class":822},[788,1697,662],{"class":802},[788,1699,898],{"class":822},[788,1701,662],{"class":802},[788,1703,903],{"class":822},[788,1705,1706],{"class":802},"]: total ",[788,1708,1229],{"class":794},[788,1710,1232],{"class":802},[788,1712,1713],{"class":790,"line":830},[788,1714,881],{"emptyLinePlaceholder":880},[788,1716,1717],{"class":790,"line":848},[788,1718,1719],{"class":826},"# Fonctionnel\n",[788,1721,1722,1724,1726,1728,1730,1732,1734,1736],{"class":790,"line":868},[788,1723,1064],{"class":822},[788,1725,1067],{"class":802},[788,1727,893],{"class":822},[788,1729,662],{"class":802},[788,1731,898],{"class":822},[788,1733,662],{"class":802},[788,1735,903],{"class":822},[788,1737,1738],{"class":802},"])\n",[788,1740,1741],{"class":790,"line":877},[788,1742,881],{"emptyLinePlaceholder":880},[788,1744,1745],{"class":790,"line":884},[788,1746,1747],{"class":826},"# Objet\n",[788,1749,1750,1752,1754],{"class":790,"line":1045},[788,1751,1167],{"class":794},[788,1753,1170],{"class":798},[788,1755,1173],{"class":802},[788,1757,1758,1760,1762,1765,1767,1770,1772],{"class":790,"line":1050},[788,1759,1187],{"class":794},[788,1761,1190],{"class":822},[788,1763,1764],{"class":802},"(self): ",[788,1766,1640],{"class":822},[788,1768,1769],{"class":802},"._t ",[788,1771,819],{"class":794},[788,1773,1206],{"class":822},[788,1775,1776,1778,1780,1783,1785,1787,1789],{"class":790,"line":1056},[788,1777,1187],{"class":794},[788,1779,1217],{"class":798},[788,1781,1782],{"class":802},"(self, x): ",[788,1784,1640],{"class":822},[788,1786,1769],{"class":802},[788,1788,1229],{"class":794},[788,1790,1232],{"class":802},[788,1792,1793,1795,1797,1799,1802,1804],{"class":790,"line":1259},[788,1794,1187],{"class":794},[788,1796,1243],{"class":798},[788,1798,1764],{"class":802},[788,1800,1801],{"class":794},"return",[788,1803,1253],{"class":822},[788,1805,1806],{"class":802},"._t\n",[1486,1808,1809],{},"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 pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":784,"searchDepth":806,"depth":806,"links":1811},[1812,1813,1814,1815,1816],{"id":1526,"depth":806,"text":1527},{"id":1535,"depth":806,"text":1536},{"id":1587,"depth":806,"text":1588},{"id":1644,"depth":806,"text":1645},{"id":1663,"depth":806,"text":1664},"Mémo de révision sur impératif, fonctionnel et orienté objet.",{},"\u002Fnsi-tale\u002Ftd-langages-prog\u002Fparadigmes.memo",[],{"title":1520,"description":1817},"2.nsi-tale\u002Ftd-langages-prog\u002F4.paradigmes.memo","UZN4nmzJlZXW_GjOrwXwGrZYWepOe3kBUgdda5QoRfU",{"id":1825,"title":1826,"body":1827,"description":2317,"extension":1506,"meta":2318,"navigation":1512,"path":2319,"seo":2320,"stem":2321,"__hash__":2322},"coursSlides\u002F2.nsi-tale\u002Ftd-langages-prog\u002F4.paradigmes.slides.md","Paradigmes de programmation — diapositives",{"type":590,"value":1828,"toc":2315},[1829,1833,1839,1842,1846,1855,1857,1861,1906,1908,1912,2084,2086,2088,2130,2133,2135,2137,2193,2196,2198,2200,2265,2268,2270,2274,2300,2302,2306,2312],[1830,1831,553],"h1",{"id":1832},"paradigmes-de-programmation",[598,1834,1835,1836,1838],{},"Item ",[611,1837],{"code":588}," — Trois manières de penser un programme.",[1840,1841],"hr",{},[1830,1843,1845],{"id":1844},"définition","Définition",[598,1847,600,1848,1850,1851,1854],{},[602,1849,604],{}," = une manière de concevoir un programme.\n",[602,1852,1853],{},"Pas"," un langage : Python supporte les trois.",[1840,1856],{},[1830,1858,1860],{"id":1859},"trois-paradigmes","Trois paradigmes",[675,1862,1863,1874],{},[678,1864,1865],{},[681,1866,1867,1869,1871],{},[684,1868,686],{},[684,1870,689],{},[684,1872,1873],{},"Image",[694,1875,1876,1886,1896],{},[681,1877,1878,1880,1883],{},[699,1879,703],{},[699,1881,1882],{},"Suite d'instructions qui modifient un état",[699,1884,1885],{},"Une recette de cuisine",[681,1887,1888,1890,1893],{},[699,1889,720],{},[699,1891,1892],{},"Composition de fonctions pures",[699,1894,1895],{},"La description du plat fini",[681,1897,1898,1900,1903],{},[699,1899,1561],{},[699,1901,1902],{},"Objets état + comportement",[699,1904,1905],{},"Un cuisinier et ses méthodes",[1840,1907],{},[1830,1909,1911],{"id":1910},"le-même-problème-somme-dune-liste","Le même problème — somme d'une liste",[598,1913,1914,1915,2053,2054,2083],{},"Calculer ",[788,1916,1919,1959],{"className":1917},[1918],"katex",[788,1920,1923],{"className":1921},[1922],"katex-mathml",[1924,1925,1927],"math",{"xmlns":1926},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[1928,1929,1930,1954],"semantics",{},[1931,1932,1933,1952],"mrow",{},[1934,1935,1936,1940],"msub",{},[1937,1938,1939],"mo",{},"∑",[1931,1941,1942,1946,1949],{},[1943,1944,1945],"mi",{},"x",[1937,1947,1948],{},"∈",[1943,1950,1951],{},"L",[1943,1953,1945],{},[1955,1956,1958],"annotation",{"encoding":1957},"application\u002Fx-tex","\\sum_{x \\in L} x",[788,1960,1964],{"className":1961,"ariaHidden":1963},[1962],"katex-html","true",[788,1965,1968,1973,2045,2050],{"className":1966},[1967],"base",[788,1969],{"className":1970,"style":1972},[1971],"strut","height:1.0771em;vertical-align:-0.3271em;",[788,1974,1977,1983],{"className":1975},[1976],"mop",[788,1978,1939],{"className":1979,"style":1982},[1976,1980,1981],"op-symbol","small-op","position:relative;top:0em;",[788,1984,1987],{"className":1985},[1986],"msupsub",[788,1988,1992,2036],{"className":1989},[1990,1991],"vlist-t","vlist-t2",[788,1993,1996,2031],{"className":1994},[1995],"vlist-r",[788,1997,2001],{"className":1998,"style":2000},[1999],"vlist","height:0.1786em;",[788,2002,2004,2009],{"style":2003},"top:-2.4003em;margin-left:0em;margin-right:0.05em;",[788,2005],{"className":2006,"style":2008},[2007],"pstrut","height:2.7em;",[788,2010,2016],{"className":2011},[2012,2013,2014,2015],"sizing","reset-size6","size3","mtight",[788,2017,2020,2024,2028],{"className":2018},[2019,2015],"mord",[788,2021,1945],{"className":2022},[2019,2023,2015],"mathnormal",[788,2025,1948],{"className":2026},[2027,2015],"mrel",[788,2029,1951],{"className":2030},[2019,2023,2015],[788,2032,2035],{"className":2033},[2034],"vlist-s","​",[788,2037,2039],{"className":2038},[1995],[788,2040,2043],{"className":2041,"style":2042},[1999],"height:0.3271em;",[788,2044],{},[788,2046],{"className":2047,"style":2049},[2048],"mspace","margin-right:0.1667em;",[788,2051,1945],{"className":2052},[2019,2023]," pour une liste ",[788,2055,2057,2070],{"className":2056},[1918],[788,2058,2060],{"className":2059},[1922],[1924,2061,2062],{"xmlns":1926},[1928,2063,2064,2068],{},[1931,2065,2066],{},[1943,2067,1951],{},[1955,2069,1951],{"encoding":1957},[788,2071,2073],{"className":2072,"ariaHidden":1963},[1962],[788,2074,2076,2080],{"className":2075},[1967],[788,2077],{"className":2078,"style":2079},[1971],"height:0.6833em;",[788,2081,1951],{"className":2082},[2019,2023],".\nTrois solutions à venir.",[1840,2085],{},[1830,2087,774],{"id":773},[779,2089,2091],{"className":781,"code":2090,"language":783,"meta":784,"style":784},"total = 0\nfor x in liste:\n    total = total + x\nreturn total\n",[659,2092,2093,2101,2112,2124],{"__ignoreMap":784},[788,2094,2095,2097,2099],{"class":790,"line":791},[788,2096,1679],{"class":802},[788,2098,819],{"class":794},[788,2100,1206],{"class":822},[788,2102,2103,2105,2107,2109],{"class":790,"line":806},[788,2104,931],{"class":794},[788,2106,836],{"class":802},[788,2108,839],{"class":794},[788,2110,2111],{"class":802}," liste:\n",[788,2113,2114,2116,2118,2120,2122],{"class":790,"line":813},[788,2115,816],{"class":802},[788,2117,819],{"class":794},[788,2119,856],{"class":802},[788,2121,859],{"class":794},[788,2123,1232],{"class":802},[788,2125,2126,2128],{"class":790,"line":830},[788,2127,1801],{"class":794},[788,2129,874],{"class":802},[598,2131,2132],{},"Variable mutable, boucle, mise à jour pas à pas.",[1840,2134],{},[1830,2136,940],{"id":939},[779,2138,2140],{"className":781,"code":2139,"language":783,"meta":784,"style":784},"from functools import reduce\nfrom operator import add\nreturn reduce(add, liste, 0)\n\n# Ou plus simple :\nreturn sum(liste)\n",[659,2141,2142,2152,2162,2174,2178,2183],{"__ignoreMap":784},[788,2143,2144,2146,2148,2150],{"class":790,"line":791},[788,2145,957],{"class":794},[788,2147,960],{"class":802},[788,2149,963],{"class":794},[788,2151,967],{"class":966},[788,2153,2154,2156,2158,2160],{"class":790,"line":806},[788,2155,957],{"class":794},[788,2157,974],{"class":802},[788,2159,963],{"class":794},[788,2161,979],{"class":802},[788,2163,2164,2166,2168,2170,2172],{"class":790,"line":813},[788,2165,1801],{"class":794},[788,2167,1004],{"class":966},[788,2169,1007],{"class":802},[788,2171,1010],{"class":822},[788,2173,1013],{"class":802},[788,2175,2176],{"class":790,"line":830},[788,2177,881],{"emptyLinePlaceholder":880},[788,2179,2180],{"class":790,"line":848},[788,2181,2182],{"class":826},"# Ou plus simple :\n",[788,2184,2185,2187,2190],{"class":790,"line":868},[788,2186,1801],{"class":794},[788,2188,2189],{"class":822}," sum",[788,2191,2192],{"class":802},"(liste)\n",[598,2194,2195],{},"Aucune mutation, aucune boucle visible.",[1840,2197],{},[1830,2199,1150],{"id":1149},[779,2201,2203],{"className":781,"code":2202,"language":783,"meta":784,"style":784},"class Somme:\n    def __init__(self):\n        self._total = 0\n    def ajouter(self, x):\n        self._total += x\n    def valeur(self):\n        return self._total\n",[659,2204,2205,2213,2221,2231,2239,2249,2257],{"__ignoreMap":784},[788,2206,2207,2209,2211],{"class":790,"line":791},[788,2208,1167],{"class":794},[788,2210,1170],{"class":798},[788,2212,1173],{"class":802},[788,2214,2215,2217,2219],{"class":790,"line":806},[788,2216,1187],{"class":794},[788,2218,1190],{"class":822},[788,2220,1193],{"class":802},[788,2222,2223,2225,2227,2229],{"class":790,"line":813},[788,2224,1198],{"class":822},[788,2226,1201],{"class":802},[788,2228,819],{"class":794},[788,2230,1206],{"class":822},[788,2232,2233,2235,2237],{"class":790,"line":830},[788,2234,1187],{"class":794},[788,2236,1217],{"class":798},[788,2238,1220],{"class":802},[788,2240,2241,2243,2245,2247],{"class":790,"line":848},[788,2242,1198],{"class":822},[788,2244,1201],{"class":802},[788,2246,1229],{"class":794},[788,2248,1232],{"class":802},[788,2250,2251,2253,2255],{"class":790,"line":868},[788,2252,1187],{"class":794},[788,2254,1243],{"class":798},[788,2256,1193],{"class":802},[788,2258,2259,2261,2263],{"class":790,"line":877},[788,2260,1250],{"class":794},[788,2262,1253],{"class":822},[788,2264,1256],{"class":802},[598,2266,2267],{},"État encapsulé, contrat exposé via méthodes.",[1840,2269],{},[1830,2271,2273],{"id":2272},"quand-choisir-quoi","Quand choisir quoi",[1111,2275,2276,2282,2288,2294],{},[1114,2277,2278,2281],{},[602,2279,2280],{},"Pipeline de données"," → fonctionnel.",[1114,2283,2284,2287],{},[602,2285,2286],{},"Algorithme bas niveau, simulation"," → impératif.",[1114,2289,2290,2293],{},[602,2291,2292],{},"Modélisation de domaine"," → objet.",[1114,2295,2296,2297,2299],{},"En pratique : on ",[602,2298,1434],{}," dans le même programme.",[1840,2301],{},[1830,2303,2305],{"id":2304},"à-retenir","À retenir",[598,2307,2308,2311],{},[602,2309,2310],{},"Le paradigme oriente le style, pas le langage.","\nLire un même problème dans les trois paradigmes affûte la pensée.",[1486,2313,2314],{},"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);}html pre.shiki code .sP4rz, html code.shiki .sP4rz{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}",{"title":784,"searchDepth":806,"depth":806,"links":2316},[],"Deck pour la séance sur impératif, fonctionnel et objet.",{},"\u002Fnsi-tale\u002Ftd-langages-prog\u002Fparadigmes.slides",{"title":1826,"description":2317},"2.nsi-tale\u002Ftd-langages-prog\u002F4.paradigmes.slides","5H6IKiUcIXumI-DQbV5B9CMkOB9PPqrARB_d3_70eLk",{"id":1519,"title":1520,"bo":2324,"body":2325,"description":1817,"eval":1505,"extension":1506,"labo":1505,"meta":2572,"navigation":1512,"path":1819,"quizzes":2573,"readingTime":791,"seo":2574,"stem":1822,"tp":1505,"__hash__":1823},[588],{"type":590,"value":2326,"toc":2565},[2327,2329,2333,2335,2371,2373,2419,2421,2431,2433,2563],[593,2328,1527],{"id":1526},[598,2330,2331],{},[602,2332,1532],{},[593,2334,1536],{"id":1535},[1111,2336,2337,2343,2349,2353,2367],{},[1114,2338,2339,1543,2341,1548],{},[602,2340,703],{},[1545,2342,1547],{},[1114,2344,2345,1553,2347,936],{},[602,2346,720],{},[1545,2348,1556],{},[1114,2350,2351,1562],{},[602,2352,1561],{},[1114,2354,1565,2355,662,2359,662,2363,613],{},[602,2356,2357],{},[659,2358,1394],{},[602,2360,2361],{},[659,2362,1398],{},[602,2364,2365],{},[659,2366,1401],{},[1114,2368,1580,2369,1584],{},[602,2370,1583],{},[593,2372,1588],{"id":1587},[675,2374,2375,2383],{},[678,2376,2377],{},[681,2378,2379,2381],{},[684,2380,1597],{},[684,2382,1600],{},[694,2384,2385,2393,2409],{},[681,2386,2387,2389],{},[699,2388,703],{},[699,2390,2391,1611],{},[659,2392,931],{},[681,2394,2395,2397],{},[699,2396,720],{},[699,2398,2399,1620,2401,1620,2403,1620,2405,1620,2407,613],{},[659,2400,1394],{},[659,2402,1398],{},[659,2404,1401],{},[659,2406,1064],{},[659,2408,1629],{},[681,2410,2411,2413],{},[699,2412,1561],{},[699,2414,2415,662,2417,1641],{},[659,2416,1167],{},[659,2418,1640],{},[593,2420,1645],{"id":1644},[1111,2422,2423,2427,2429],{},[1114,2424,1650,2425,1654],{},[602,2426,1653],{},[1114,2428,1657],{},[1114,2430,1660],{},[593,2432,1664],{"id":1663},[779,2434,2435],{"className":781,"code":1667,"language":783,"meta":784,"style":784},[659,2436,2437,2441,2449,2475,2479,2483,2501,2505,2509,2517,2533,2549],{"__ignoreMap":784},[788,2438,2439],{"class":790,"line":791},[788,2440,1674],{"class":826},[788,2442,2443,2445,2447],{"class":790,"line":806},[788,2444,1679],{"class":802},[788,2446,819],{"class":794},[788,2448,1206],{"class":822},[788,2450,2451,2453,2455,2457,2459,2461,2463,2465,2467,2469,2471,2473],{"class":790,"line":813},[788,2452,931],{"class":794},[788,2454,836],{"class":802},[788,2456,839],{"class":794},[788,2458,1289],{"class":802},[788,2460,893],{"class":822},[788,2462,662],{"class":802},[788,2464,898],{"class":822},[788,2466,662],{"class":802},[788,2468,903],{"class":822},[788,2470,1706],{"class":802},[788,2472,1229],{"class":794},[788,2474,1232],{"class":802},[788,2476,2477],{"class":790,"line":830},[788,2478,881],{"emptyLinePlaceholder":880},[788,2480,2481],{"class":790,"line":848},[788,2482,1719],{"class":826},[788,2484,2485,2487,2489,2491,2493,2495,2497,2499],{"class":790,"line":868},[788,2486,1064],{"class":822},[788,2488,1067],{"class":802},[788,2490,893],{"class":822},[788,2492,662],{"class":802},[788,2494,898],{"class":822},[788,2496,662],{"class":802},[788,2498,903],{"class":822},[788,2500,1738],{"class":802},[788,2502,2503],{"class":790,"line":877},[788,2504,881],{"emptyLinePlaceholder":880},[788,2506,2507],{"class":790,"line":884},[788,2508,1747],{"class":826},[788,2510,2511,2513,2515],{"class":790,"line":1045},[788,2512,1167],{"class":794},[788,2514,1170],{"class":798},[788,2516,1173],{"class":802},[788,2518,2519,2521,2523,2525,2527,2529,2531],{"class":790,"line":1050},[788,2520,1187],{"class":794},[788,2522,1190],{"class":822},[788,2524,1764],{"class":802},[788,2526,1640],{"class":822},[788,2528,1769],{"class":802},[788,2530,819],{"class":794},[788,2532,1206],{"class":822},[788,2534,2535,2537,2539,2541,2543,2545,2547],{"class":790,"line":1056},[788,2536,1187],{"class":794},[788,2538,1217],{"class":798},[788,2540,1782],{"class":802},[788,2542,1640],{"class":822},[788,2544,1769],{"class":802},[788,2546,1229],{"class":794},[788,2548,1232],{"class":802},[788,2550,2551,2553,2555,2557,2559,2561],{"class":790,"line":1259},[788,2552,1187],{"class":794},[788,2554,1243],{"class":798},[788,2556,1764],{"class":802},[788,2558,1801],{"class":794},[788,2560,1253],{"class":822},[788,2562,1806],{"class":802},[1486,2564,1809],{},{"title":784,"searchDepth":806,"depth":806,"links":2566},[2567,2568,2569,2570,2571],{"id":1526,"depth":806,"text":1527},{"id":1535,"depth":806,"text":1536},{"id":1587,"depth":806,"text":1588},{"id":1644,"depth":806,"text":1645},{"id":1663,"depth":806,"text":1664},{},[],{"title":1520,"description":1817},{"id":1825,"title":1826,"body":2576,"description":2317,"extension":1506,"meta":2970,"navigation":1512,"path":2319,"seo":2971,"stem":2321,"__hash__":2322},{"type":590,"value":2577,"toc":2968},[2578,2580,2584,2586,2588,2594,2596,2598,2636,2638,2640,2762,2764,2766,2806,2808,2810,2812,2864,2866,2868,2870,2934,2936,2938,2940,2958,2960,2962,2966],[1830,2579,553],{"id":1832},[598,2581,1835,2582,1838],{},[611,2583],{"code":588},[1840,2585],{},[1830,2587,1845],{"id":1844},[598,2589,600,2590,1850,2592,1854],{},[602,2591,604],{},[602,2593,1853],{},[1840,2595],{},[1830,2597,1860],{"id":1859},[675,2599,2600,2610],{},[678,2601,2602],{},[681,2603,2604,2606,2608],{},[684,2605,686],{},[684,2607,689],{},[684,2609,1873],{},[694,2611,2612,2620,2628],{},[681,2613,2614,2616,2618],{},[699,2615,703],{},[699,2617,1882],{},[699,2619,1885],{},[681,2621,2622,2624,2626],{},[699,2623,720],{},[699,2625,1892],{},[699,2627,1895],{},[681,2629,2630,2632,2634],{},[699,2631,1561],{},[699,2633,1902],{},[699,2635,1905],{},[1840,2637],{},[1830,2639,1911],{"id":1910},[598,2641,1914,2642,2053,2734,2083],{},[788,2643,2645,2670],{"className":2644},[1918],[788,2646,2648],{"className":2647},[1922],[1924,2649,2650],{"xmlns":1926},[1928,2651,2652,2668],{},[1931,2653,2654,2666],{},[1934,2655,2656,2658],{},[1937,2657,1939],{},[1931,2659,2660,2662,2664],{},[1943,2661,1945],{},[1937,2663,1948],{},[1943,2665,1951],{},[1943,2667,1945],{},[1955,2669,1958],{"encoding":1957},[788,2671,2673],{"className":2672,"ariaHidden":1963},[1962],[788,2674,2676,2679,2728,2731],{"className":2675},[1967],[788,2677],{"className":2678,"style":1972},[1971],[788,2680,2682,2685],{"className":2681},[1976],[788,2683,1939],{"className":2684,"style":1982},[1976,1980,1981],[788,2686,2688],{"className":2687},[1986],[788,2689,2691,2720],{"className":2690},[1990,1991],[788,2692,2694,2717],{"className":2693},[1995],[788,2695,2697],{"className":2696,"style":2000},[1999],[788,2698,2699,2702],{"style":2003},[788,2700],{"className":2701,"style":2008},[2007],[788,2703,2705],{"className":2704},[2012,2013,2014,2015],[788,2706,2708,2711,2714],{"className":2707},[2019,2015],[788,2709,1945],{"className":2710},[2019,2023,2015],[788,2712,1948],{"className":2713},[2027,2015],[788,2715,1951],{"className":2716},[2019,2023,2015],[788,2718,2035],{"className":2719},[2034],[788,2721,2723],{"className":2722},[1995],[788,2724,2726],{"className":2725,"style":2042},[1999],[788,2727],{},[788,2729],{"className":2730,"style":2049},[2048],[788,2732,1945],{"className":2733},[2019,2023],[788,2735,2737,2750],{"className":2736},[1918],[788,2738,2740],{"className":2739},[1922],[1924,2741,2742],{"xmlns":1926},[1928,2743,2744,2748],{},[1931,2745,2746],{},[1943,2747,1951],{},[1955,2749,1951],{"encoding":1957},[788,2751,2753],{"className":2752,"ariaHidden":1963},[1962],[788,2754,2756,2759],{"className":2755},[1967],[788,2757],{"className":2758,"style":2079},[1971],[788,2760,1951],{"className":2761},[2019,2023],[1840,2763],{},[1830,2765,774],{"id":773},[779,2767,2768],{"className":781,"code":2090,"language":783,"meta":784,"style":784},[659,2769,2770,2778,2788,2800],{"__ignoreMap":784},[788,2771,2772,2774,2776],{"class":790,"line":791},[788,2773,1679],{"class":802},[788,2775,819],{"class":794},[788,2777,1206],{"class":822},[788,2779,2780,2782,2784,2786],{"class":790,"line":806},[788,2781,931],{"class":794},[788,2783,836],{"class":802},[788,2785,839],{"class":794},[788,2787,2111],{"class":802},[788,2789,2790,2792,2794,2796,2798],{"class":790,"line":813},[788,2791,816],{"class":802},[788,2793,819],{"class":794},[788,2795,856],{"class":802},[788,2797,859],{"class":794},[788,2799,1232],{"class":802},[788,2801,2802,2804],{"class":790,"line":830},[788,2803,1801],{"class":794},[788,2805,874],{"class":802},[598,2807,2132],{},[1840,2809],{},[1830,2811,940],{"id":939},[779,2813,2814],{"className":781,"code":2139,"language":783,"meta":784,"style":784},[659,2815,2816,2826,2836,2848,2852,2856],{"__ignoreMap":784},[788,2817,2818,2820,2822,2824],{"class":790,"line":791},[788,2819,957],{"class":794},[788,2821,960],{"class":802},[788,2823,963],{"class":794},[788,2825,967],{"class":966},[788,2827,2828,2830,2832,2834],{"class":790,"line":806},[788,2829,957],{"class":794},[788,2831,974],{"class":802},[788,2833,963],{"class":794},[788,2835,979],{"class":802},[788,2837,2838,2840,2842,2844,2846],{"class":790,"line":813},[788,2839,1801],{"class":794},[788,2841,1004],{"class":966},[788,2843,1007],{"class":802},[788,2845,1010],{"class":822},[788,2847,1013],{"class":802},[788,2849,2850],{"class":790,"line":830},[788,2851,881],{"emptyLinePlaceholder":880},[788,2853,2854],{"class":790,"line":848},[788,2855,2182],{"class":826},[788,2857,2858,2860,2862],{"class":790,"line":868},[788,2859,1801],{"class":794},[788,2861,2189],{"class":822},[788,2863,2192],{"class":802},[598,2865,2195],{},[1840,2867],{},[1830,2869,1150],{"id":1149},[779,2871,2872],{"className":781,"code":2202,"language":783,"meta":784,"style":784},[659,2873,2874,2882,2890,2900,2908,2918,2926],{"__ignoreMap":784},[788,2875,2876,2878,2880],{"class":790,"line":791},[788,2877,1167],{"class":794},[788,2879,1170],{"class":798},[788,2881,1173],{"class":802},[788,2883,2884,2886,2888],{"class":790,"line":806},[788,2885,1187],{"class":794},[788,2887,1190],{"class":822},[788,2889,1193],{"class":802},[788,2891,2892,2894,2896,2898],{"class":790,"line":813},[788,2893,1198],{"class":822},[788,2895,1201],{"class":802},[788,2897,819],{"class":794},[788,2899,1206],{"class":822},[788,2901,2902,2904,2906],{"class":790,"line":830},[788,2903,1187],{"class":794},[788,2905,1217],{"class":798},[788,2907,1220],{"class":802},[788,2909,2910,2912,2914,2916],{"class":790,"line":848},[788,2911,1198],{"class":822},[788,2913,1201],{"class":802},[788,2915,1229],{"class":794},[788,2917,1232],{"class":802},[788,2919,2920,2922,2924],{"class":790,"line":868},[788,2921,1187],{"class":794},[788,2923,1243],{"class":798},[788,2925,1193],{"class":802},[788,2927,2928,2930,2932],{"class":790,"line":877},[788,2929,1250],{"class":794},[788,2931,1253],{"class":822},[788,2933,1256],{"class":802},[598,2935,2267],{},[1840,2937],{},[1830,2939,2273],{"id":2272},[1111,2941,2942,2946,2950,2954],{},[1114,2943,2944,2281],{},[602,2945,2280],{},[1114,2947,2948,2287],{},[602,2949,2286],{},[1114,2951,2952,2293],{},[602,2953,2292],{},[1114,2955,2296,2956,2299],{},[602,2957,1434],{},[1840,2959],{},[1830,2961,2305],{"id":2304},[598,2963,2964,2311],{},[602,2965,2310],{},[1486,2967,2314],{},{"title":784,"searchDepth":806,"depth":806,"links":2969},[],{},{"title":1826,"description":2317},1788035585294]