Qu'implique la recherche en informatique théorique?


11

J'essaie de comprendre ce qui est impliqué dans la recherche théorique en informatique. Que font les informaticiens théoriques?

Je sais que l'on consacre beaucoup de temps à l'enseignement, à la supervision des étudiants des cycles supérieurs, à la demande de financement et aux fonctions ministérielles. Les mettre de côté comment passez-vous votre temps de recherche? Quelles sont les principales activités que vous faites généralement? Je suppose que vous lisez des articles, pensez, tenez des réunions et rédigez des documents. Y en a-t-il d'autres?


4
"Comment passez-vous votre temps de recherche?" ... face à des problèmes que je ne pourrai probablement jamais résoudre :-) :-)
Marzio De Biasi

7
C'est comme décrire la peinture comme «mélanger les peintures, monter une toile, peindre et nettoyer vos instruments». En d'autres termes, il décrit à quoi cela pourrait ressembler pour quelqu'un qui regarde, mais n'a aucun rapport avec ce que le champ concerne :)
Suresh Venkat

1
Autres activités: sport, randonnées, activités culturelles, et plus généralement avoir une vie. Faire autre chose aide votre réflexion (et votre santé).
babou

7
Je pense que la question ne concerne pas la philosophie de la recherche TCS ou ce qui fait de vous un meilleur chercheur, mais vraiment quel type d'activités concrètes un chercheur TCS fait pendant les heures de travail. En plus de ce qui apparaît déjà dans la question, j'ajouterais la préparation de conférences, la présentation de conférences, la participation à des conférences, la relecture de leurs propres articles, la révision des articles des autres.
Daniel Marx

2
Je vous remercie. J'ai une idée du type de questions de recherche que vous étudiez. Je veux en savoir plus sur vos activités quotidiennes. La recherche en génie logiciel implique le développement de programmes informatiques, la réalisation d'expériences, la collecte et l'analyse de données, ... Je veux savoir ce qu'implique la recherche théorique. À quoi ressemble votre journée de travail typique?
étudiant de premier cycle cs

Réponses:


12

Concernant les sujets

Il existe différents types de problèmes qui peuvent être considérés comme de l' informatique théorique . Le mot important ici est « théorique » (car nous avons tous une idée de ce que l'informatique traite). Comprendre le mot théorique n'est pas si évident. Pendant longtemps, je l'ai pris pour signifier mathématique, par opposition au "piratage" par exemple. J'ai mieux appris des gens en linguistique: théoriquepour eux, cela ne signifie clairement pas mathématique, mais basé sur une théorie qui peut être quelque peu informelle (même si elle peut aussi être mathématique), et est un ensemble organisé de connaissances et de concepts qui structurent la compréhension des phénomènes observables et, espérons-le, permettent une utilisation déductive et prédictive des connaissances acquises. Il réduit également la quantité à apprendre et à enseigner en réduisant le nombre de concepts primitifs dont le reste peut être déduit.

La théorie peut être opposée à la pratique , c'est-à-dire comment ces connaissances sont utilisées pour faire fonctionner des moteurs informatiques, pour construire des systèmes, etc. Je peux également être opposé à l' application qui est l'utilisation de ces connaissances pour résoudre des problèmes dans d'autres domaines de la science et de l'homme. Activités.

Mais je doute qu'il y ait des limites bien définies.

Cela dit, l'informatique théorique couvre divers domaines, et je vais essayer d'en donner certains, alors que je suis sûr que j'en oublie d'autres, et aussi que d'autres personnes peuvent être en désaccord avec cette organisation.

  • un domaine est la calculabilité , qui étudie ce qui peut être calculé, et comment dans un sens plutôt abstrait: en grande partie ce qui est décrit dans la réponse de Suresh Venkat.

  • une autre est l' algorithmique , qui trouve des moyens efficaces pour calculer les réponses à des problèmes spécifiques, avec des contraintes spécifiques. La calculabilité est un contexte théorique pour l'algorithmique.

  • sémantique (faute d'un meilleur nom), analyse l'organisation conceptuelle des problèmes de calcul et des algorithmes, en concepts de niveau supérieur, afin de factoriser les techniques qui se sont avérées utiles et sont souvent réutilisées, comme le concept de sous-programme, de données- structures, modules, information se cachant. Il comprend le développement d'outils mathématiques qui formalisent adéquatement ces concepts pour permettre un raisonnement de haut niveau (sémantique Scott par exemple). Il touche également à la manière dont cela s'exprime, donc à la séparation et à la relation entre syntaxe et sémantique. Les concepts des langages de programmation en font partie (bien que la conception du langage soit probablement l'application pratique de ces connaissances). Il peut également inclure la relation entre la théorie de la preuve et la théorie du calcul, et le rôle moderne des systèmes de types.

  • un autre sujet, qui pourrait se développer plus qu'il ne l'a fait jusqu'à présent, est la relation entre le calcul et la physique fondamentale. Par exemple. existe-t-il une relation entre les limites du calcul et les propriétés du monde physique, telles que la densité de l'information physique ou les lois de la thermodynamique. L'informatique quantique peut améliorer un peu nos prouesses informatiques; Pouvons-nous en espérer davantage? Certains peuvent contester qu'il s'agit toujours de TCS, bien qu'il existe des études TCS sur l' hypercalcul .

Concernant des activités spécifiques

Je saute les activités évidentes requises par la vie universitaire. ou la vie scientifique dans l'industrie: enseigner, publier, réviser des articles, rédiger des demandes de subvention, prendre des responsabilités académiques, gérer des personnes, conseiller des étudiants ou des décideurs. Mais même alors, il n'y a pas de réponse simple à votre question. Je ne fais qu'esquisser ici quelques aspects qui me viennent à l'esprit, mais je suis sûr qu'il y a encore beaucoup à dire. Et je ne suis pas sûr de vous répondre. Certains des meilleurs scientifiques ont écrit des livres sur leur travail, et cela peut vous donner des indices sur les activités scientifiques.

La recherche en théorie peut impliquer une variété de choses, selon vos compétences et vos intérêts qui varient beaucoup d'un scientifique à l'autre. Il est quelque peu difficile d'en parler, car chaque personne perçoit plus son activité et ses intérêts que ceux des autres. La plupart des recherches nécessitent une vaste connaissance, car des résultats intéressants et vraiment originaux proviennent souvent de la mise en relation, du transfert d'une technique d'un (sous) domaine à un autre ou de l'obtention de vues techniques différentes du même problème. Il est donc important d'apprendre autant que vous le pouvez autant en profondeur qu'en profondeur. N'oubliez pas que si vous en avez le temps et les capacités en tant qu'étudiant, ou en tant que professeur / scientifique débutant, les deux seront réduits plus tard, en raison des responsabilités et de la vie en général. Enseigner ce dans quoi vous n'êtes pas spécialisé peut être un moyen de continuer à apprendre.

Le genre de travail que les gens font peut varier beaucoup, parce que les gens sont heureusement très différents, avec une grande variété d'intérêts et de capacités techniques, se complétant ainsi les uns les autres. Certaines personnes résolvent les problèmes. Ils examinent les questions théoriques ou pratiques soulevées par d'autres personnes ou par eux-mêmes et essaient de les résoudre ou de se rapprocher d'une solution complète ou partielle. D'autres personnes seront mieux à même de structurer les connaissances existantes, de mettre les choses en relation, puis de trouver de nouvelles questions à poser. Les deux sont essentiels.

Il est important de trouver des preuves de résultats techniques plus simples, ou des présentations de théories plus simples, ou de fusionner des concepts. Il généralise les résultats, réduit le nombre de choses à apprendre, met l'accent sur les idées essentielles et apporte éventuellement une nouvelle compréhension. Puisque notre temps d'apprentissage est limité, le progrès n'est possible que lorsque nous condensons les connaissances.

Un exemple simple est l'étude des familles abstraites de langages formels. Lorsque la théorie du langage s'est développée pour la première fois, les propriétés de fermeture sous diverses opérations ont été prouvées à maintes reprises pour chaque famille de langues (régulière, sans contexte, RE, ...), avec des techniques ad hoc en fonction de la famille. Il s'est alors avéré que ces propriétés de fermeture avaient des relations intrinsèques indépendamment des familles concernées, et elles ont été étudiées en tant que telles. Aujourd'hui, nous n'avons qu'à vérifier quelques-unes des propriétés de fermeture les plus simples pour une famille donnée, et nous obtenons "gratuitement" tout un ensemble d'autres propriétés.

Un autre point important est qu'il n'y a pas une telle distinction claire entre le travail théorique, pratique ou expérimental. Une bonne théorie peut conduire à la mise en place de systèmes capables de mécaniser la résolution des problèmes. Et il faudra un bon théoricien pour mettre en œuvre un tel système, avec un mélange de travaux théoriques et pratiques, y compris la mise en œuvre du système ou la conception du langage. De nombreux exemples viennent à l'esprit, tels que les systèmes de synthèse de preuve et / ou de programme, le langage spécialisé pour les systèmes parallèles synchrones, un langage algorithmique restreint pour lequel la complexité de calcul peut être systématiquement dérivée. Non seulement il est important de pouvoir produire de tels systèmes pratiques, ce qui rend les résultats théoriques plus largement disponibles et utilisables, mais il est souvent très important pour le théoricien d'utiliser ces systèmes avec compétence, ne serait-ce que pour décharger les parties désormais moins créatives de son travaux, ou pour contribuer au développement et à l'extension de ces systèmes.

Un autre aspect est de pouvoir comparer des approches théoriques par expérimentation pratique. Ici, l'enjeu est de comparer différentes techniques pour atteindre le même objectif. La comparaison des implémentations n'a souvent aucun sens car leur efficacité dépend souvent du langage de programmation ou des compétences en programmation de l'implémenteur. Mais si elles peuvent toutes s'exprimer dans un cadre théorique commun, il est parfois possible de les comparer expérimentalement dans ce cadre. Ici, la théorie et la pratique se soutiennent, comme elles le font souvent en science. Une analyse théorique pure n'est pas toujours facile à réaliser. De plus, l'analyse expérimentale, lorsqu'elle est bien menée, peut présenter un comportement inattendu susceptible de motiver une meilleure analyse théorique.

Le monde n'est ni simple ni clair. C'est pourquoi cela peut être amusant, avec de la place pour toutes sortes de compétences. Remettre en question vos propres connaissances et répondre aux questions des autres, par quelque moyen que ce soit.

Deux choses souvent oubliées: l'éthique des sciences, et l'expliquer aux gens. Les deux sont essentiels et difficiles.


comme le ref à la théorie vs l'expérience mais en fait il semble y avoir une séparation assez stricte entre le travail théorique / expérimental dans TCS favorisant / soulignant le premier au moins sur ce site .... le travail empirique n'est pas grand en comparaison et devient lentement plus accepté ....
vzn

8

Dans un sens, la navigation sur ce site vous indiquera le type de questions auxquelles les informaticiens théoriques pensent (à un niveau bas). À un très haut niveau, l'informaticien théorique pose des questions sur les fondements mathématiques du calcul:

  • que pouvons-nous calculer?
  • comment le calculer?
  • À quelle vitesse ?
  • que se passe-t-il lorsque nous avons des ressources limitées pour calculer?
  • quelles sont les limites de ce que nous pouvons calculer?

À partir de ces questions, une foule d'autres sujets surgissent, touchant des domaines d'applications, les mathématiques, d'autres parties de l'informatique, etc.


Cela me semble être les questions clés de la "Théorie A" (calculabilité, complexité, algorithmes), et non de la "Théorie B" (logique, sémantique, théorie du langage de programmation). (Voir cstheory.stackexchange.com/q/1521/989 sur la terminologie).
Blaisorblade

4

il m'est venu à l'esprit que les récits de première main pourraient être utiles, mais ceux-ci semblent être quelque peu rares en CS (contrairement par exemple aux mathématiques, à l'écriture biographique / de type mémoire, etc.). voici deux références en ligne qui répondent à la question et peuvent être utiles. ils sont plus axés sur la vie des doctorants et les CS, mais la plupart porteront sur la recherche au niveau du professeur (autre que l'enseignement, mais ce que font également de nombreux doctorants). [& à certains égards, les professeurs peuvent être considérés comme rédigeant continuellement / à plusieurs reprises de nombreuses "mini-" thèses (articles de recherche) ou, dans certains cas, des "super-" thèses (livres) au cours de leur carrière.] il existe également plusieurs livres décents sur le sujet, en ajoutera si vous indiquez que ce serait une réponse acceptable à votre question.

  • Comment faire de la recherche au MIT AI Lab "par toute une série d'étudiants diplômés actuels, anciens et honoraires du MIT AI Lab" / David Chapman, rédacteur en chef

    Ce document prétend supposément expliquer comment faire de la recherche. Nous fournissons des heuristiques qui peuvent être utiles pour acquérir les compétences spécifiques nécessaires à la recherche (lecture, écriture, programmation) et pour comprendre et apprécier le processus lui-même (méthodologie, sélection de sujets et de conseillers et facteurs émotionnels).

  • Comment réussir son doctorat (en informatique) Mark Dredze (Johns Hopkins University), Hanna M. Wallach (University of Massachusetts Amherst)


un certain nombre de recherches quotidiennes peuvent également être tirées de certains blogs informatiques écrits avec des "regards
cachés
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.