fig 01 compo bUn projet pédagogique se construit et s’ajuste souvent en se faisant.
Dans cet article du site MathemaTICE, on a présenté l’élaboration théorique d’un projet CARDIE de « programmation créative » du primaire au lycée.
Dans le présent article, on va décrire et analyser les pratiques et les réalisations qui ont été réellement effectuées dans le volet cycle 3 du projet (bilan d’étape).

mini site CMDans cette version de CaRMetal, on s'est attaché aux figures dans le disque de Poincaré (en géométrie non euclidienne hyperbolique), et en particulier on a implémenté une tortue dynamique dans cet espace.

  • Le rayon par défaut du disque de Poincaré a été fixé à 1 (auparavant il était égal à 4).
  • La distance hyperbolique a été ajustée.
  • De nouvelles CaRCommandes pour la tortue hyperbolique sont apparues :
    • AvancerDP().
      Cette CaRCommande s'utilise comme Avancer(), mais renvoie un tableau JS de type ["P1,P2,...,P10","c1"] alors que Avancer() renvoie un tableau JS de type ["P1","s1"].
    • ViserDP()
  • On a ajouté un opérateur distDP(,) sur les expressions (qui s'utilise comme d(,) en géométrie euclidienne)

Des exemples d'application sont donnés dans cet article MathémaTICE.

  • Amélioration du comportement de l'éditeur en mode pseudo-code : il s'agit en particulier de la traduction automatique en direct du signe de la multiplication (* en \(\times\) et réciproquement).
    Dans la version 4.2.8, le signe * était automatiquement transformé en \(\times\) dans les passages qui n'étaient pas entre guillemets. Ce comportement pouvait poser problème en phase de rédaction, certains passages par nature entre guillemets pouvant temporairement apparaître en dehors des guillemets et subir la transformation. Or, quand on a une multiplication en programmation dynamique (= dans une expression entre guillemets) le signe \(\times\) ne fonctionne pas, il faut impérativement utiliser le signe *.
    Dans la version 4.2.9, on a ajouté un comportement : le signe \(\times\) est automatiquement transformé en * dans les passages entre guillemets. Cela permet d'avoir toujours le bon symbole.
  • Correction d'un bug de l'interpréteur en mode pseudo-code : les fonctions trigonométriques inverses étaient mal interprétées (comme on pouvait le voir avec la CaRCommande getRealScript).
  • Ajout de la CaRCommande AutoriserRentrant (doublon de AngleRentrant qui exprime plus clairement que cette CaRCommande s'applique aussi à des arcs).

NB : les scripts présentés dans cet article nécessitent CaRMetal version \(\geqslant\) 4.2.9

La courbe de Gosper est une courbe de Peano qui couvre le plan.

01b courbe gosper
C'est une courbe fractale. On va la construire par récursivité et macro (cette macro étant définie en utilisant la géométrie de la tortue).

Remarques :

  • La partie importante de cet article concerne la représentation graphique d'une fonction définie par un algorithme.
  • Comme pour CaRMetal, on (= le développeur Eric Hackenholz) a fait le choix de ne pas autoriser le passage à un repère natif qui ne serait pas orthonormé (le passage à ce type de de repère pervertit les outils, l'outil cercle ne produisant plus un cercle, etc). Quand on veut utiliser un repère non orthonormé, la pratique recommandée est de créer un repère flottant (voir la partie 3)).

flottant 03

Résumé de l'épisode précédent :

Fin 2017, l'inspection générale recommandait

  • de ne plus mettre d'affichage dans les algorithmes
  • de ne plus mettre d'instruction d'entrée de données dans les algorithmes
  • de noter l'affectation par une flèche vers la gauche
  • de définir les variables dans l'énoncé, en dehors de l'algorithme, et d'y poser des questions comme «quelle est la valeur de telle variable à la fin de l'exécution de l'algorithme ?»

Cette recommandation a été peu suivie au BTS 2018 mais assez largement au bac 2018, comme on l'a vu dans cet article. Dans l'épisode d'aujourd'hui, on va voir dans quelle mesure la recommandation a été suivie lors de la session de septembre. Les algorithmes du bac seront rédigés avec l'outil pseudo-code de CaRMetal, lequel présente ces différences minimes par rapport à la rédaction directe de l'algorithme:

  • On bénéficie de la coloration syntaxique qui fournit, en quelque sorte, des sujets en couleur
  • Les algorithmes sont exécutables et on a, en prime, la réponse à la question, en plus du sujet en couleur
  • Les sous-structures (instructions répétées en boucle par exemple) sont indentées (reculées, en l'ocurrence, de 3 espaces) ce qui permet de considérer le pseudocode de CaRMetal comme une transition entre le pseudocode et Python, qui utilise une syntaxe similaire.

Introduction

Une caustique désigne une fille à l'humour corrosif, mais pas que.
Une caustique désigne aussi l'enveloppe des rayons lumineux subissant une réflexion ou une réfraction sur une surface ou une courbe.

Si la source lumineuse est ponctuelle et située à une distance finie, on parle de caustique au flambeau.
Si la source lumineuse se trouve à une distance infinie (flux de rayons parallèles), on parle de caustique au soleil.

Une caustique par réflexion est aussi appelée catacaustique, tandis qu'une caustique par réfraction est appelée diacaustique.

1) Construction d'une semi-néphroïde comme caustique de cercle au soleil