XCas et Python

Discussion sur l'enseignement de l'algorithmique avec Xcas au lycee
fred
Messages : 46
Inscription : mer. sept. 09, 2009 7:29 pm

XCas et Python

Message par fred » ven. févr. 17, 2017 3:04 pm

Bonjour
Suite à l'évolution des programmes au lycée (et pour compléter le post précédent) je me demande donc s'il est possible de programmer en Python dans Xcas ?
Le module programme acceptant déjà différents langages, serait-il possible d'ajouter Python et sa syntaxe ? (En tant que prof de maths, je n'aime pas l'affectation par =, mais je trouve le code propre grâce à l'indentation).
A travers différentes discussions, j'ai l'impression que Python va s'imposer comme LE langage de programmation au lycée. Comme je veux continuer à présenter Xcas aux élèves, je me dis que si Xcas permet de programmer en Python, je ne présente qu'un environnement de travail. Je ne sais pas si c'est une bonne idée ?

parisse
Messages : 5731
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: XCas et Python

Message par parisse » ven. févr. 17, 2017 4:43 pm

C'est possible dans l'autre sens, c'est-a-dire appeler les commandes xcas depuis python, avec giacpy. Mais dans ce sens-la, ce serait un gros travail, parce qu'il faudrait realiser un interpreteur qui comprenne au moins l'essentiel de la syntaxe python, or je ne sais pas faire cela avec flex et bison, en particulier parce que les espaces, tabulations et sauts de ligne sont ignores par l'interpreteur, donc ce n'est pas aussi simple que de rajouter de la compatibilite TI ou maple. Et puis, il est quand meme probable que les amateurs de syntaxe Python prefereront l'original quitte a utiliser giacpy depuis python.
Sinon, le projet de programme n'impose pas de langage, je ne vois pas pourquoi vous ne pourriez pas continuer a utiliser Xcas comme maintenant, c'est d'ailleurs tres formatteur pour des eleves d'apprendre plusieurs langages au cours de leur scolarite en fonction de leur enseignant, et le passage de Python a Xcas ou javascript est facile pour un eleve, les concepts sont les memes et il peut appeler le prof en cas d'erreur de syntaxe (c'est plus difficile pour le prof bien sur, encadrer un TP necessite une maitrise bien plus grande du langage).
Il faut se mefier des effets de mode, qui sait quel sera le langage a la mode dans 10 ans? D'ailleurs javascript est probablement plus utilise que Python a l'heure actuelle et accessible depuis n'importe quel navigateur. Python a ses propres inconvenients, dont d'ailleurs l'indentation qui peut rendre l'echange de code difficile avec certains lecteurs de mail, et il est tout-a-fait possible d'indenter son code proprement en Xcas (touche tab dans l'editeur de programme) meme si ce n'est pas impose. L'interface de Xcas utilisable hors-ligne depuis un smartphone ou une tablette a aussi un atout sur l'utilisation de Python, pas besoin d'aller en salle info pour faire un exercice d'algorithmique articule avec le reste du cours de maths. Et le debuggueur de Xcas fonctionne aussi dans cette interface...

parisse
Messages : 5731
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: XCas et Python

Message par parisse » dim. nov. 12, 2017 11:07 am

Finalement j'ai change d'avis devant la deferlante Python de cette rentree. Il est donc possible de selectionner une syntaxe compatible Python dans Xcas. Il y a bien sur des differences:
- la syntaxe de base est supportee (boucle, test, definition de fonction), mais pas la syntaxe avancee
- il n'y a pas de modules importables, mais on a acces a toutes les commandes de Xcas.
- les variables peuvent etre symboliques ou contenir des expressions
- on peut typer les variables locales et les arguments, pour etre sur par exemple qu'une variable donnee contient un entier ou un reel ou une chaine de caracteres. Par exemple dans Xcas pour Firefox et bientot dans les versions natives de Xcas

Code : Tout sélectionner

def pgcd(a:integer,b:integer):
    while b!=0:
        a,b=b,a%b
    return abs(a)
Ca pourrait etre un plus utile pour l'enseignement. Ailleurs ce sera aussi utile pour convertir du code Xcas en code C++ pour accelerer l'execution (commande cpp qui commence a fonctionner dans certains cas simples).

Répondre