Chemin vers les méthodes formelles

20

Il n'est pas rare de voir des étudiants commencer leur doctorat avec seulement une formation limitée en mathématiques et en aspects formels de l'informatique. De toute évidence, il sera très difficile pour ces étudiants de devenir des informaticiens théoriques, mais il serait bon qu'ils deviennent avertis en utilisant des méthodes formelles et en lisant des articles contenant des méthodes formelles.

Quel est un bon chemin à court terme que les étudiants débutants au doctorat pourraient suivre pour obtenir l'exposition nécessaire pour les amener à lire des articles impliquant des méthodes formelles et éventuellement à écrire des articles qui utilisent de telles méthodes formelles?

En termes de contexte, je pense plus en termes de théorie B et de vérification formelle que le genre de choses qu'ils devraient apprendre, mais aussi de sujets TCS classiques tels que la théorie des automates.

Dave Clarke
la source
9
«Jeune homme, en mathématiques on ne comprend pas les choses. On s'y habitue. »- John von Neumann Malheureusement, il faut des années pour s'y habituer, du moins dans mon cas :)
uli
1
Je me demande pourquoi certaines personnes (pas nécessairement vous, Dave) pensent qu'une formation complète de Bachelor / Master en CS (environ cinq ans) peut être remplacée par quelques crédits de cours.
Raphael
Par «théorie B», faites-vous référence à la «méthode B»? en.wikipedia.org/wiki/B-Method
Steven Shaw
@StevenShaw: Non. La théorie B couvre la sémantique et ainsi de suite, contrairement aux automates / complexité.
Dave Clarke
Je n'avais jamais entendu parler de "Theory B" auparavant. J'ai pu trouver cette réponse utile sur cstheory cstheory.stackexchange.com/a/1523/9552
Steven Shaw

Réponses:

14

Dans la préface de son livre «Découverte mathématique, Comprendre, apprendre et résoudre les problèmes pédagogiques», George Pólya écrit:

La résolution de problèmes est un art pratique, comme la natation, le ski ou le piano: vous ne pouvez l'apprendre que par l'imitation et la pratique. Ce livre ne peut pas vous offrir une clé magique qui ouvre toutes les portes et résout tous les problèmes, mais il vous offre de bons exemples d'imitation et de nombreuses possibilités de pratique: si vous souhaitez apprendre la natation vous devez aller dans l'eau, et si vous souhaitez devenir un résolveur de problèmes, vous devez résoudre les problèmes.

Je pense qu'il n'y a pas de chemin court, surtout pour atteindre l'état des papiers d'écriture. Cela demande beaucoup de pratique.

Quelques conseils:

Si «une formation limitée en mathématiques et les aspects formels» signifie «n'a jamais conçu une preuve et l'a écrite», alors quelque chose comme ça pourrait être un début.

Si quelque chose sur la feuille de triche de l'informatique théorique rend l'élève mal à l'aise, alors un cours de recyclage de la branche correspondante des mathématiques serait souhaitable.

Il existe de nombreuses sources pour l'écriture mathématique: les notes de cours du cours CS209 de l'Université Stanford de 1978, peut-être. Ou cet article de Paul Halmos.

uli
la source
3
Je ne demande pas de raccourci; plutôt un chemin (qui est court).
Dave Clarke
@JD La question du PO dit «une formation limitée en mathématiques et les aspects formels de l'informatique» et «devenir averti en utilisant des méthodes formelles et en lisant des articles». Si un élève n'a qu'une exposition limitée aux formalismes utilisés en mathématiques et en tcs, il n'est pas bon de travailler sur un sujet théorique. Il doit d'abord travailler sur les bases avant de passer à l'étape suivante. Je pointais juste au début du chemin.
uli
9

Les méthodes formelles telles que Z, B, TLA, CafeObj s'appuient fortement sur la théorie des ensembles, la logique, la théorie des catégories, le calcul lambda et les automates pour modéliser les concepts de types, de données et de calcul.

Vous pouvez soit sauter dans une monographie complète telle que Logics of Specification Languages, par Dines Bjørner et Martin C. Henson éd., Monographs in Theoretical Computer Science, Springer Verlag, 2008 et apprendre selon vos besoins et utiliser les références citées. Ou apprenez un sujet à la fois:

  1. Théorie des ensembles
  2. Logique mathématique
  3. Logique temporelle
  4. Algèbre universelle
  5. Calcul lambda
  6. Théorie des catégories

la source
Bonne suggestion, bien que je me demande si cette monographie est un peu trop dense pour commencer. C'est certainement lourd.
Dave Clarke
5

Je pense vraiment que les méthodes "formelles" ne sont pas une très bonne idée à des fins éducatives. D'ailleurs, la programmation d'un ordinateur est une méthode "formelle". Réussit-il comme outil pédagogique?

Ce qu'il faut, c'est la compréhension, l'intuition et la capacité de gérer l'abstraction. Les méthodes formelles entravent tout cela. Ils favorisent plutôt les essais et les erreurs, le piratage, la mise en correspondance de modèles, l'imitation, en se concentrant sur la syntaxe. La liste se rallonge de plus en plus.

N'importe quel morceau de mathématiques rigoureuses apprendra aux gens à raisonner correctement. Plus le domaine est simple, mieux c'est. Tout ce que j'ai appris sur le raisonnement, j'ai appris au lycée quand je faisais la géométrie euclidienne sérieusement. Le calcul et l'algèbre linéaire à l'Université ont fait le reste.

Une autre alternative intéressante est la logique philosophique, où ils enseignent aux gens comment penser les déclarations et comprendre quel est le contenu de l'information et quelle est la conséquence de quoi. Ils le font sans noyer les étudiants dans des symboles.

Si vous faites le bilan de tous les meilleurs informaticiens, vous seriez étonnés de voir combien d'entre eux ont une formation officielle en philosophie. Nous perdons tout cela maintenant parce que les étudiants en philosophie considèrent désormais l'informatique comme un sujet banal. Faire en sorte que nos étudiants apprennent une certaine philosophie pourrait contrer cela dans une certaine mesure. Faites-les travailler à travers l' histoire de la philosophie occidentale de Bertrand Russell . Cela fera des merveilles.

S'ils travaillent dans la théorie des langages de programmation, vous pouvez aussi leur faire lire Quine, que je considère comme le "dieu-père" de la sémantique dénotationnelle. (Quine faisait essentiellement de la sémantique dénotationnelle du langage naturel dans Word and Object , ce qui était une énorme source d'inspiration pour Christopher Strachey. Mais ce livre est assez difficile.) La collection éditée Quintessence est une belle source d'idées de Quine pour un débutant.

[Note ajoutée: L'un des avantages de la philosophie par rapport aux mathématiques est que les élèves voient le débat , c'est-à-dire qu'ils voient le «bon» argument et le «mauvais» argument et voient les experts démolir les mauvais. En mathématiques, on ne voit jamais un mauvais argument, ce qui limite sa valeur éducative.]

Uday Reddy
la source
J'ai eu une réponse intelligente et ironique à cela impliquant le calcul de la durée et un jeu de mots sur le nom de Quine ... mais malheureusement je l'oublie ....
Dave Clarke