Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Notion d' "algorithme" #112

Open
eythanlevy opened this issue Oct 28, 2015 · 5 comments
Open

Notion d' "algorithme" #112

eythanlevy opened this issue Oct 28, 2015 · 5 comments

Comments

@eythanlevy
Copy link
Contributor

Je propose de revenir au terme "module" (ou "fonction") au lieu de "algorithme" dans notre LDA, car plusieurs de nos "algorithmes" n'en sont pas vraiment (fonctions de test qui font juste un appel, etc...). je ressens un certain inconfort à chaque fois que j'appelle cela "algorithme" devant les étudiants. Qu'en pensez-vous?

@npettiaux
Copy link
Member

J'approuve la remarque. Je n'aime pas ce qui est dans le syllabus d'algorithmique la dénomination d'algorithme pour un module / fonction / groupment fonctionnel de code. Comment expliquer qu'un algorithme est lui-même rendu modulaire si chaque morceau est lui-même appelé algorithme ?

@mcodutti
Copy link
Contributor

Le terme "module" n'aide pas. Avant, quand on demandait à un étudiant d'écrire 'un module qui...", il ne décomposait pas car on demandait UN module.
Un algorithme est toujours, potentiellement, un sous-algorithme d'un algorithme plus général. Et, quand on décompose un algorithme, les parties résolvent un problème précis, ce sont donc aussi des algorithmes.
Un algorithme de test qui fait juste appel à un autre algorithme est bien l'algorithme à suivre pour tester un autre algorithme.
Je veux bien qu'on dise "procédure" comme ellipse de "procédure de résolution" mais "algorithme" me parait tellement plus précis.

@eythanlevy
Copy link
Contributor Author

Moi je suis ok pour "procédure" (cela renvoie au vieux C, mais en général les procédures étaient des fonctions qui ne renvoient rien, si je me souviens bien). Quoi qu'il en soit, je pense que procédure (ou tout autre terme) me convient mieux qu'algo, car un algorithme n'est pas un concept de langage de programmation (i.e. un concept contraint par des notions de types de paramétrage, localité des variables, etc..., ) cela reste le même algo qqe soit la manière dont vous l'implémentez: en un ou deux modules, avec des paramètres ou sans paramètres, avec des variables globales ou pas, etc... Donc nous confondons "algorithme" avec qqch du genre "méthode/fonction/module/procédure", qui sont des concepts de programmation (l' "algo" est juste la tecnique de résolution indépendamment de cela). J'ai vraiment bcp de mal à enseigner avec la nomenclature actuelle.

@npettiaux
Copy link
Member

J'apprécie bien la motivation de Eythan : cela reste le même algorithme, qu'il soit écrit en un ou plusieurs module(s)/procédure(s). Donc appelons module ou procédure ou fonction ... un élément qui est un morceau de programme et qui est un concept de programmation

@eythanlevy
Copy link
Contributor Author

Tout à fait d'accord avec Nico. Des notions comme le passage de paramètres
(entrant, sortant, etc...) sont des concepts de programmation, pas
d'algorithmique, de même que la localité/globalité des variables, etc...
Avec le terme d' "algorithme" , là on est obligé de dire des phrases comme
"un algorithme ne peut pas utiliser une variable déclarée dans un autre
algorithme", ce qui est tout bonnement faux, cela n'a rien à voir avec
l'algorithme, c'est simplement une spécificité du langage de programmation
choisi. Donc en donnant ce cours, je me suis toujours retrouvé à dire à mes
étudiants des phrases avec le mot "algorithme" qui sont tout à fait fausses
car elles expriment en réalités des choses imposées par le langage choisi
(qui diffèrent d'un langage à l'autre) et qui n'ont rien à voir avec les
algorithmes...

Le 6 septembre 2016 à 22:18, Nicolas Pettiaux [email protected] a
écrit :

J'apprécie bien la motivation de Eythan : cela reste le même algorithme,
qu'il soit écrit en un ou plusieurs module(s)/procédure(s). Donc appelons
module ou procédure ou fonction ... un élément qui est un morceau de
programme et qui est un concept de programmation


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#112 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFyRDc8yBskdpbIxeAWip59lWdaynVIkks5qncqTgaJpZM4GXKbG
.

Haute École de Bruxelles

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants