From b29f59b672655eb0967b70ed20e0a87329528dc5 Mon Sep 17 00:00:00 2001 From: Oscar Plaisant Date: Sat, 30 Mar 2024 03:09:29 +0100 Subject: [PATCH] update --- .DS_Store | Bin 153604 -> 157700 bytes .../various-complements/histories.json | 2 +- .trash/Untitled 2 4.md | 0 Remplissage du plan de L3.md | 28 ++++++++++++++++-- avantage.md | 0 daily/2024-03-28.md | 7 ----- daily/2024-03-30.md | 26 ++++++++++++++++ paradigme programmation fonctionnelle.md | 4 +++ paradigme programmation procédurale.md | 5 +++- ...our résoudre des problèmes particuliers.md | 20 +++++++++++++ principe de l'extension créative.md | 11 +++++-- programmation.procédure.md | 10 ++++++- 12 files changed, 99 insertions(+), 14 deletions(-) create mode 100644 .trash/Untitled 2 4.md create mode 100644 avantage.md create mode 100644 daily/2024-03-30.md create mode 100644 paradigmes de programmation pour résoudre des problèmes particuliers.md diff --git a/.DS_Store b/.DS_Store index aff33d4d444e2a6ac5bb5cca8b24004a25e38935..7a7ed643cc8fdb76686c39fa88d5f13d0ef97c1c 100644 GIT binary patch delta 3128 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 diff --git a/.obsidian/plugins/various-complements/histories.json b/.obsidian/plugins/various-complements/histories.json index 9179d73c..1b7fe198 100644 --- a/.obsidian/plugins/various-complements/histories.json +++ b/.obsidian/plugins/various-complements/histories.json @@ -1 +1 @@ -{"matrice hessienne":{"matrice hessienne":{"internalLink":{"count":2,"lastUpdated":1710324879177}}},"fonction de plusieurs variables":{"fonction de plusieurs variables":{"internalLink":{"count":1,"lastUpdated":1709121880741}}},"manim Ellipse":{"manim Ellipse":{"internalLink":{"count":1,"lastUpdated":1709296590359}}},"baptême":{"baptême":{"internalLink":{"count":5,"lastUpdated":1709864270370}}},"gradient":{"gradient":{"internalLink":{"count":1,"lastUpdated":1710325461961}}},"obsidian plugin tag and wordcloud":{"obsidian plugin tag and wordcloud":{"internalLink":{"count":1,"lastUpdated":1710345237714}}},"intersection de sous groupes":{"intersection de sous groupes":{"internalLink":{"count":1,"lastUpdated":1710465530327}}},"valeurs":{"valeurs":{"internalLink":{"count":1,"lastUpdated":1711459246780}}},"Learning APL":{"Learning APL":{"internalLink":{"count":1,"lastUpdated":1711584419388}}},"structure de donnés":{"structure de donnés":{"internalLink":{"count":1,"lastUpdated":1711621251914}}},"paramètre":{"paramètre":{"internalLink":{"count":1,"lastUpdated":1711621492446}}},"langage de programmation":{"langage de programmation":{"internalLink":{"count":1,"lastUpdated":1711621841863}}},"argument d'une fonction":{"argument d'une fonction":{"internalLink":{"count":1,"lastUpdated":1711624010397}}},"argument":{"argument":{"internalLink":{"count":2,"lastUpdated":1711624133731}}},"techniques de pkm":{"techniques de pkm":{"internalLink":{"count":1,"lastUpdated":1711627281333}}},"paradigme de programmation":{"paradigme de programmation":{"internalLink":{"count":5,"lastUpdated":1711667940041}}},"état":{"état":{"internalLink":{"count":1,"lastUpdated":1711628232311}}},"structure de données":{"structure de données":{"internalLink":{"count":1,"lastUpdated":1711643699590}}},"structures de données":{"structures de données":{"internalLink":{"count":1,"lastUpdated":1711644884793}}},"enregistrement":{"enregistrement":{"internalLink":{"count":1,"lastUpdated":1711668283936}}}} \ No newline at end of file +{"matrice hessienne":{"matrice hessienne":{"internalLink":{"count":2,"lastUpdated":1710324879177}}},"manim Ellipse":{"manim Ellipse":{"internalLink":{"count":1,"lastUpdated":1709296590359}}},"baptême":{"baptême":{"internalLink":{"count":5,"lastUpdated":1709864270370}}},"gradient":{"gradient":{"internalLink":{"count":1,"lastUpdated":1710325461961}}},"obsidian plugin tag and wordcloud":{"obsidian plugin tag and wordcloud":{"internalLink":{"count":1,"lastUpdated":1710345237714}}},"intersection de sous groupes":{"intersection de sous groupes":{"internalLink":{"count":1,"lastUpdated":1710465530327}}},"valeurs":{"valeurs":{"internalLink":{"count":1,"lastUpdated":1711459246780}}},"Learning APL":{"Learning APL":{"internalLink":{"count":1,"lastUpdated":1711584419388}}},"structure de donnés":{"structure de donnés":{"internalLink":{"count":1,"lastUpdated":1711621251914}}},"paramètre":{"paramètre":{"internalLink":{"count":1,"lastUpdated":1711621492446}}},"langage de programmation":{"langage de programmation":{"internalLink":{"count":1,"lastUpdated":1711621841863}}},"argument d'une fonction":{"argument d'une fonction":{"internalLink":{"count":1,"lastUpdated":1711624010397}}},"argument":{"argument":{"internalLink":{"count":2,"lastUpdated":1711624133731}}},"techniques de pkm":{"techniques de pkm":{"internalLink":{"count":1,"lastUpdated":1711627281333}}},"paradigme de programmation":{"paradigme de programmation":{"internalLink":{"count":5,"lastUpdated":1711667940041}}},"état":{"état":{"internalLink":{"count":1,"lastUpdated":1711628232311}}},"structure de données":{"structure de données":{"internalLink":{"count":1,"lastUpdated":1711643699590}}},"structures de données":{"structures de données":{"internalLink":{"count":1,"lastUpdated":1711644884793}}},"enregistrement":{"enregistrement":{"internalLink":{"count":1,"lastUpdated":1711668283936}}},"envoi de messages entre objets":{"envoi de messages entre objets":{"internalLink":{"count":1,"lastUpdated":1711742931869}}},"programmation structurée":{"programmation structurée":{"internalLink":{"count":1,"lastUpdated":1711764089506}}}} \ No newline at end of file diff --git a/.trash/Untitled 2 4.md b/.trash/Untitled 2 4.md new file mode 100644 index 00000000..e69de29b diff --git a/Remplissage du plan de L3.md b/Remplissage du plan de L3.md index b071ed9c..f89afd65 100644 --- a/Remplissage du plan de L3.md +++ b/Remplissage du plan de L3.md @@ -40,7 +40,23 @@ Tous les paradigmes sont équivalent puisqu'ils sont tous turing-complets ### Au sens commun # Paradigmes dans l'apprentissages ## avantages de la diversité -- + +> [!cite]+ [10 Things Software Developers Should Learn about Learning](zotero://select/groups/5383243/items/E829XCHJ) - [Page 81](zotero://open-pdf/groups/5383243/items/SQN4T6Z8?page=4&annotation=7WYHBT9D) +> One key difference between beginners and experts is that experts have seen it all before. Research into chess experts has shown that their primary advantage is their ability to remember and recognize the state of the board. +> +> > [!note] Notes +> > L'avantage des experts est d'avoir en mémoire beaucoup de cas, quand les débutants doivent réfléchir pour chaque nouveau cas. +> ^7WYHBT9DaSQN4T6Z8g5383243p4 + +> [!cite]+ [10 Things Software Developers Should Learn about Learning](zotero://select/groups/5383243/items/E829XCHJ) - [Page 81](zotero://open-pdf/groups/5383243/items/SQN4T6Z8?page=4&annotation=K2JKSWGE) +> Experts build up a mental library of patterns +> ^K2JKSWGEaSQN4T6Z8g5383243p4 + +> [!cite]+ [10 Things Software Developers Should Learn about Learning](zotero://select/groups/5383243/items/E829XCHJ) - [Page 81](zotero://open-pdf/groups/5383243/items/SQN4T6Z8?page=4&annotation=2PSW4XYM) +> seeing a variety of programming paradigms will help further. +> ^2PSW4XYMaSQN4T6Z8g5383243p4 + + ## problèmes de la diversité > [!cite]+ [10 Things Software Developers Should Learn about Learning](zotero://select/groups/5383243/items/E829XCHJ) - [Page 84](zotero://open-pdf/groups/5383243/items/SQN4T6Z8?page=7&annotation=588UCYYD) @@ -58,4 +74,12 @@ Langages multi-paradigmes -# Les paradigmes pour outil pour la pensée +# Les paradigmes comme outil pour la pensée + +Connaître un système de calcul ne permet pas d'immédiatement tout connaître sur son champ d'expressivité +Notamment : +- connaître un système de calcul ne permet pas (toujours) de connaître l'ensemble des problèmes décidables de ce système + - En particulier, les systèmes universels (Turing-complets) : il existe toujours des problèmes indécidables dans de tels modèles (problème de l'arrêt) + +De la même manière, connaître un langage de programmation ne permet pas de savoir immédiatement résoudre tous les problèmes que l'on peut rencontrer. Par exemple, la syntaxe des langages similaires à LISP est très simple et peut être apprise en quelques heures pour certains dialectes. Cependant, connaître la syntaxe complête et le fonctionnement de LISP ne permettra pas de résoudre tout problème : il est également nécessaire d'être capable de "faire le lien" entre un problème et un langage. C'est ce lien que les paradigmes de programmation permettent de faire, soit en donnant explicitement une méthode pour le faire (comme la [[paradigme programmation structurée|programmation structurée]]), soit en définissant comment le programmeur doit voir les programmes, soit en implémentant certaines fonctionnalités utiles pour gérer certains problèmes. + diff --git a/avantage.md b/avantage.md new file mode 100644 index 00000000..e69de29b diff --git a/daily/2024-03-28.md b/daily/2024-03-28.md index 0aee7c0c..78a7ff8e 100644 --- a/daily/2024-03-28.md +++ b/daily/2024-03-28.md @@ -4,13 +4,6 @@ kung_fu: 0 --- ## Todo -- [ ] #task déposer chèque 🔺 -- [ ] #task photos d'identité pour permis ⏫ -- [ ] #task remettre camille -- [ ] #task courrier recommandé pour annuler plainte 🔺 -- [ ] #task convention de stage ⏫ -- [ ] #task payer felix -- [ ] #task gérer CERCIP ⏫ - spaced repetition : `INPUT[toggle(onValue(1), offValue(0)):spaced_repetition]` - kung-fu : `INPUT[number:kung_fu]` minutes diff --git a/daily/2024-03-30.md b/daily/2024-03-30.md new file mode 100644 index 00000000..22d566c9 --- /dev/null +++ b/daily/2024-03-30.md @@ -0,0 +1,26 @@ +--- +spaced_repetition: 0 +kung_fu: 0 +--- + +## Todo +- [x] #task déposer chèque 🔺 ✅ 2024-03-30 +- [ ] #task envoyer attestation service fait 🔺 +- [ ] #task photos d'identité pour permis ⏫ +- [ ] #task remettre camille +- [ ] #task courrier recommandé pour annuler plainte 🔺 +- [ ] #task convention de stage ⏫ +- [ ] #task payer felix +- [ ] #task gérer CERCIP ⏫ +- spaced repetition : `INPUT[toggle(onValue(1), offValue(0)):spaced_repetition]` +- kung-fu : `INPUT[number:kung_fu]` minutes + +## I did +> [!smallquery]+ Modified files +> ```dataview +> LIST file.mtime +> where file.mtime > date(this.file.name) and file.mtime < (date(this.file.name) + dur(1 day)) sort file.mtime asc +> ``` + +## I am gratefull to + diff --git a/paradigme programmation fonctionnelle.md b/paradigme programmation fonctionnelle.md index e55e0dac..9830d531 100644 --- a/paradigme programmation fonctionnelle.md +++ b/paradigme programmation fonctionnelle.md @@ -1,3 +1,7 @@ +--- +aliases: + - programmation fonctionnelle +--- up:: [[paradigme de programmation|paradigme]] #informatique diff --git a/paradigme programmation procédurale.md b/paradigme programmation procédurale.md index 1e1801be..b8f5a94c 100644 --- a/paradigme programmation procédurale.md +++ b/paradigme programmation procédurale.md @@ -7,6 +7,9 @@ up:: [[paradigme de programmation]] > [!definition] programmation procédurale > La programmation procédurale est un type de [[paradigme programmation impérative|programmation impérative]] dans lequel le programme est exprimé comme des [[programmation.procédure|procédures]] qui s'appellent entre elles. -> Un programme est alors une séries d'étapes qui forment une hiérarchie d'appels aux procédures qui le constituent +> Un programme est alors une séries d'étapes qui forment une hiérarchie d'appels aux procédures qui le constituent. +> [!warning] procédural $\neq$ avec des procédures +> > Tous les langages + ^definition diff --git a/paradigmes de programmation pour résoudre des problèmes particuliers.md b/paradigmes de programmation pour résoudre des problèmes particuliers.md new file mode 100644 index 00000000..6c56b7d8 --- /dev/null +++ b/paradigmes de programmation pour résoudre des problèmes particuliers.md @@ -0,0 +1,20 @@ + +> [!definition] Postulat +> Chaque paradigme permet de résoudre une classe de problèmes. +> Plus précisément : l'existance de chaque paradigme est justifée / justifiable parce que ce paradigme permet de simplifier beaucoup la résolution de certains problèmes. + + +## [[paradigme programmation fonctionnelle|programmation fonctionnelle]] + +permet d'éviter les problèmes causés par les effets de bord. + + + +## [[paradigme programmation orientée objet|programmation orientée objet]] + +Pouvoir modéliser des hiérarchies complexes + +à voir : +- justification de l'[[envoi de messages entre objets]] + + diff --git a/principe de l'extension créative.md b/principe de l'extension créative.md index ef7659fe..a95776f7 100644 --- a/principe de l'extension créative.md +++ b/principe de l'extension créative.md @@ -30,7 +30,14 @@ up:: [[paradigme de programmation]] 3. implémentation d'une solution **dans le langage lui-même** 4. la simplicité est conservée / retrouvée (on évite les modifications envahissantes) -> [!cite] [Programming Paradigms for Dummies: What Every Programmer Should Know](zotero://select/groups/5383243/items/673TMQRT) - [Page 17](zotero://open-pdf/groups/5383243/items/P4L4LCJZ?page=9&annotation=6ZNVVQGI) +> [!cite]+ [The paradigms of programming](zotero://select/groups/5383243/items/Y8NDFJ8W) - [Page 3](zotero://open-pdf/groups/5383243/items/WWITR642?page=3&annotation=QWLFQ9JA) +> After solving a challenging problem, ! solve it again from scratch, retracing only the insight of the earlier solution. I repeat this until the solution is as clear and direct as I can hope for. Then I look for a general rule for attacking similar problems, that would have led me to approach the given problem in the most efficient way the first time. Often, such a rule is of permanent value. +> +> > [!note] Notes +> > définition originale de l'extension créative +> ^QWLFQ9JAaWWITR642g5383243p3 + +> [!cite]- [Programming Paradigms for Dummies: What Every Programmer Should Know](zotero://select/groups/5383243/items/673TMQRT) - [Page 17](zotero://open-pdf/groups/5383243/items/P4L4LCJZ?page=9&annotation=6ZNVVQGI) > The common theme in these three scenarios (and many others!) is that we need to do pervasive (nonlocal) modifications of the program in order to handle a new concept. If the need for pervasive modifications manifests itself, we can take this as a sign that there is a new concept waiting to be discovered. By adding this concept to the language we no longer need these pervasive modifications and we recover the simplicity of the program. > > > [!note] Notes @@ -39,7 +46,7 @@ up:: [[paradigme de programmation]] > > ajouter ce concept au langage => éviter les modifications envahissantes => retrouver la simplicité > ^6ZNVVQGIaP4L4LCJZg5383243p9 -## Exemples de modifications envahissantes et solutions +# Exemples > [!cite] [Programming Paradigms for Dummies: What Every Programmer Should Know](zotero://select/groups/5383243/items/673TMQRT) - [Page 17](zotero://open-pdf/groups/5383243/items/P4L4LCJZ?page=9&annotation=VAZ8DBMA) > If we need to model updatable memory, that is, entities that remember and update their past, then we will have to add two arguments to all function calls relative to that entity. The arguments represent the input and output values of the memory. This is unwieldy and it is also not modular because the memory travels throughout the whole program. All this clumsiness is unnecessary if we add one concept to the language: named state. diff --git a/programmation.procédure.md b/programmation.procédure.md index 708fdcfc..c635935a 100644 --- a/programmation.procédure.md +++ b/programmation.procédure.md @@ -4,10 +4,18 @@ aliases: - procédures --- up:: [[programmation]] +sibling:: [[programmation.fonction|fonction]] #informatique + > [!definition] procédure > Une procédure est l'encapsulation d'un ensemble d'instructions. > Une procédure peut possèder des [[paramètre d'une fonction|paramètres]] qui peuvent influencer son exécution. > Contrairement à une fonction, une procédure ne peut pas retourner de valeur. Elle peut cependant [[programmation.modification des paramètres|modifier ses paramètres]] -^definition \ No newline at end of file +^definition + +> [!definition] procédure +> Une procédure est l'encapsulation d'un ensemble d'instructions. +> Une procédure peut possèder des [[paramètre d'une fonction|paramètres]] qui peuvent influencer son exécution. +> Contrairement à une fonction, une procédure ne peut pas retourner de valeur. Elle peut cependant [[programmation.modification des paramètres|modifier ses paramètres]] +^definition-sicp \ No newline at end of file