On me demande souvent ce que fait un informaticien théorique. Ce serait bien d'avoir de bonnes réponses à cette question. J'ai tendance à retomber dans le jargon technique et les yeux des gens brillent généralement à ce stade.
Que fait un informaticien théorique en termes compréhensibles par des non-informaticiens?
Une bonne réponse doit être vive, précise dans l’esprit, sans paraître vague ni banale. Pour les points bonus, la réponse devrait indiquer pourquoi un informaticien théorique n'est ni un mathématicien ni un praticien en informatique.
Cette question est inspirée de la question MO, https://mathoverflow.net/questions/3559/colloquial-catchy-statements-encoding-serious-mathematics, bien que l'intention soit différente.
la source
Je donne aux gens un exemple concret. Plus précisément, je motive souvent la théorie de la complexité avec le même problème très illustratif (mais simple). Je demande à mes auditeurs comment ils demanderaient à un petit enfant de savoir si son nom figure dans une liste alphabétique de noms (et leur dis que cela prend 3 secondes à l'enfant pour comparer un nom à un autre). Il arrive souvent que la personne / le groupe propose l’approche linéaire naïve. Je force la conversation à utiliser l'algorithme logarithmique (je pourrais utiliser un autre mot que logarithme) en demandant à la personne quelque chose de mieux ou en le mentionnant moi-même. Je leur montre que doubler la taille de la liste ne fait qu'ajouter trois secondes de travail à l'enfant avec cette nouvelle approche. Et je compare cela directement avec la version linéaire, qui semblera maintenant totalement idiote.
Bien sûr, je le ramène sur terre. Je leur dis que l'enfant en question est généralement un ordinateur, mais que ce peut être un enfant ou vraiment n'importe qui en général. Que les questions que nous posons ne concernent pas vraiment les ordinateurs, mais davantage l'espace, le temps et les informations dont vous avez besoin pour résoudre les problèmes. Et je motive l'analyse de complexité par analogie aux deux méthodes différentes pour résoudre le même problème.
Quand j'ai leur attention, je fais ressortir les gros frappeurs. Je leur demande "pouvez-vous prouver que la solution logarithmique est la meilleure que vous puissiez espérer faire ou pouvez-vous trouver quelque chose de mieux?" et je leur demande "existe-t-il des problèmes qu'aucun processus (algorithme) ne peut espérer résoudre?" J'ai été surpris de voir comment les gens essaient de résoudre ces questions lorsqu'ils n'ont pas de formation dans le SDC.
la source
J'aime ce billet de Scott Aaronson , qui explique la théorie de la complexité en tant que théologie quantitative. Voici un extrait:
la source
Un exemple de réponse, qui peut certainement être amélioré:
la source
Je pense qu'une excellente (non) réponse dans ce sens a été donnée par Dijkstra (toujours une bonne source de référence pour les déclarations croustillantes et absolutistes :)).
la source
Je aime vraiment l'introduction au problème Cloisonnement comme donné par Brian Hayes donnés ici .
Il utilise le problème de la partition d'un ensemble d'enfants en équipes d'habiletés totales égales (en supposant que vous puissiez quantifier l'aptitude de chaque enfant en utilisant un nombre), et explique également l'algorithme glouton habituellement utilisé par les enfants pour résoudre ce problème.
C'est un problème très simple à comprendre, il est facile de comprendre l'algorithme, surprenant qu'il soit (très probablement) très difficile en général et gênant que nous ne puissions toujours pas prouver le dernier bit.
la source
Je réponds habituellement par quelque chose comme: J'essaie de comprendre ce qu'il est possible de faire avec un ordinateur. Ce n'est pas tout à fait exact, mais c'est assez proche, et généralement les gens demandent quelque chose comme "Qu'est-ce que tu veux dire?" et je peux faire référence à quelque chose de spécifique, comme TSP. Bien que je reformule le vendeur itinérant en lui disant, par exemple, le problème des sauts, le problème des agents immobiliers, le problème du trop grand nombre de courses, du temps insuffisant, ou de tout ce qui me semble approprié.
Par exemple: «Eh bien, disons que vous devez faire des emplettes pour des chaussures, de l’épicerie et des vêtements, ramasser un gâteau, vous faire couper les cheveux et faire d’autres courses diverses avant le dîner. Ce serait bien si vous pouviez mettre tout ça dans votre GPS et il pourrait vous dire dans quel ordre faire toutes vos courses à faire avant 4 heures, mais si la liste des courses est assez longue, il n’est même pas possible, pour le moment, de déterminer si peuvent les faire faire par 4 du tout , beaucoup moins ce que vous devez les faire commander à, en tout temps raisonnable. Je veux savoir s'il est possible de résoudre ce problème rapidement avec un ordinateur « .
la source
Quels sont les meilleurs moyens de résoudre les problèmes et quels problèmes sont trop difficiles à résoudre? Il y a un mot dans les langues européennes - y compris l'anglais! - "informatique". La science de l'information. Aux États-Unis, nous appelons cela l'informatique théorique, en raison de la forte industrie informatique ici, mais pensons à la résolution de problèmes sans ordinateur pendant une minute. Considérons le corps humain. Il résout les problèmes presque miraculeusement. La lumière entre dans nos yeux et nous pouvons voir des choses que nous reconnaissons . Le son entre dans nos oreilles et nous entendons des mots que nous comprenons . Ce sont des problèmes d’information que nous résolvons facilement, des milliers de fois par jour, avec lesquels les meilleurs ordinateurs du monde luttent encore.
Il a fallu des millions d’années au processus d’évolution pour résoudre ces problèmes, en utilisant une stratégie d’essais et d’erreur et en éliminant les malchanceux. Imaginez ce que nous pourrions accomplir si nous adoptions une approche plus rationnelle et si nous investissions autant de créativité humaine dans cette nouvelle science de la résolution de problèmes que nous en avons investis dans la géométrie, la théologie ou le calcul. Ce que je fais est une petite partie de cet investissement.
En réponse à la question du profane, "Que faites-vous?" J'ai souvent répondu: "Je passe beaucoup de temps à regarder l'espace, à comprendre comment faire de la science-fiction une réalité." Ensuite, je donne un exemple spécifique de projet, expliqué en quelques phrases.
la source
L'informatique théorique est pour l'informatique ce que les mathématiques étaient pour la physique.
la source
Je donne généralement la réponse suivante, même si elle est axée sur la théorie de la complexité: "J'étudie les limites, en termes d'espace et de temps, pour résoudre un problème. Les problèmes incluent notamment trouver le chemin le plus court sur une carte ou gagner une partie d'échecs."
la source
D'habitude, je donne l'exemple du problème de l'affacturage; Je demande d’abord le nombre qui divise 15; habituellement, les gens peuvent répondre 3, 5 et s’amuser en se demandant si les réponses 1 et 15 sont correctes. Ensuite, je donne un nombre énorme (plus de 10 chiffres) et demande s'ils peuvent me dire quels sont les diviseurs; et j'explique que, même pour un informaticien, c'est une question vraiment difficile.
Ensuite, si j’ai le temps, j’essaie d’expliquer que la question est soit de savoir comment résoudre ce problème, soit de prouver qu’il faudra toujours beaucoup de temps (une notion que nous savons précisément comment définir). Et puis un petit mot de cryptographie, pour expliquer pourquoi il est utilisé, et un mot sur combien de temps il faut à une équipe de scientifiques pour casser la clé de nombre avec des centaines de chiffres (j'évite de parler de bits car les gens semblent mieux savoir quel chiffre est)
la source
La question posée est vraiment difficile car la plupart des gens n’ont aucune idée de ce que font les informaticiens en général. C'est très différent des autres disciplines.
J'aime utiliser l'analogie suivante: (T) CS est pour les ordinateurs ce que la physique est pour les lecteurs de CD (c.-à-d. Le laser). Cela fonctionne plutôt bien parce que la plupart des gens ont une idée de ce que le physicien traite, que ce soit correct ou non.
Des exemples plus spécifiques incluent ce que la plupart des gens peuvent comprendre
J'expliquerais ensuite que, si les responsables de PCS veillent à une mise en œuvre rapide ou à une bonne intégration dans des systèmes complexes, les responsables de TCS s'interrogent sur ce qui est possible et prouvent ce qui fournit des connaissances / techniques sûres et réutilisables à l'utilisation de PCS.
Vous pouvez également utiliser la frustration des gens envers les ordinateurs ("Cela ne fait pas ce que je veux!"). Vous pouvez souligner que (T) CS traite de la manière dont les ordinateurs peuvent être compris et traités efficacement (en se référant à la syntaxe, la sémantique, les infrastructures de données, les algorithmes).
la source
Lorsque quelqu'un vous pose une question, vous pouvez y répondre directement ou lui donner une procédure à suivre étape par étape et la preuve que si les étapes sont suivies correctement, la réponse sera obtenue dans un délai raisonnable. Étant donné que les étapes elles-mêmes ne sont pas trop compliquées et peuvent être effectuées rapidement par une entité capable d'exister dans cet univers, quels types de questions présentent de telles procédures? Je pense que c'est le sujet de l'informatique théorique.
la source
Ma réponse habituelle, qui n’est pas vif mais qui garantit l’arrêt de la conversation (bonus!), Est "comme la théorie quantique est le noyau mathématique de la physique, le TCS est le noyau mathématique de la science informatique".
la source
Nous étudions les limites du calcul. Combien de temps pouvez-vous résoudre un problème de calcul particulier? Combien de temps faut-il pour le résoudre, quelle que soit la solution que vous essayez? Ensuite, je leur donne ces exemples (qui sont faciles à expliquer à la plupart des laïcs - et de nombreux laïcs en ont une expérience directe - démontrent certaines propriétés des problèmes NP-complets, et ont en réalité pour objet de sauver des vies).
Il est évident que les gens (y compris moi-même) peuvent dire que j'ai ignoré d'autres ressources importantes telles que l'espace, le caractère aléatoire ou même le quantumness. Mais lorsque vous ne disposez que de 2 minutes pour parler à quelqu'un de tout un champ, certaines choses sont laissées de côté.
la source
Si vous souhaitez jeter un regard fantaisiste sur le passé, rappelez à votre public que "ordinateur" désignait autrefois une personne dont le métier était de calculer . (Et si vous voulez violer certains stéréotypes de genre qu’ils pourraient avoir, vous pouvez aussi souligner qu’il s’agissait souvent de femmes.)
Vous pouvez alors réaliser une poignée de choses à la fois:
la source
Je commence toujours par les diriger vers une vidéo ou un article créatif, intentionnellement irrévérencieux, qui explique un concept technique à un niveau intuitif. Voici un bon exemple: Griffonner les maths: Spirales, Fibonacci et être une plante
Une fois qu’ils ont compris le concept (et qu’ils se sont amusés avec un peu de chance), j’essaie de généraliser ce qu’ils ont appris à propos du SDC. Par exemple, la vidéo ci-dessus pourrait mener à une explication de base des algorithmes ou du calcul en tant que processus récursif - "quelque chose qui génère une structure complexe à partir de quelques règles simples". Les gens du SDC étudient donc simplement quels types de règles produisent quels types de structure!
À partir de là, il est généralement assez facile de passer du système de contrôle de version général à la tâche spécifique à un domaine. :)
la source
Suite à la suggestion de Ross Snider de commencer par un exemple spécifique, on peut aussi expliquer directement la question P vs NP. On peut décrire cette question à un non-initié comme à savoir s'il est manifestement plus facile de vérifier une solution que d'en trouver une, ou est-il vrai que chaque fois que nous pouvons vérifier une solution, nous pouvons également la trouver?
la source
Voici la mienne:
Cela nous amène joliment à parler de calcul en biologie, du rôle de la logique en informatique, etc.
la source
Peut-être qu'on pourrait dire ça
Le scientifique n'utilisera pas d'ordinateur en étant créatif, mais réfléchira beaucoup, gribouillera des formules et des dessins originaux sur papier et se promènera de temps en temps. De ce fait, la praticabilité immédiate n’est pas la chose la plus importante, c’est plutôt un artiste qui explore et tente de donner un sens aux mystères de ce monde.
On pourrait ensuite mentionner des éléments qui reposent sur des solutions élégantes de théoriciens, tels que l’ordinateur, Internet, les moteurs de recherche, les banques sécurisées, les films en 3D, le séquençage de l’ADN, etc. une partie peut être vue pour la première fois depuis plusieurs décennies.
D'après mon expérience, beaucoup de gens ont un moment AHA lorsqu'ils se rendent compte que l'informatique et la théorie en particulier sont si riches en questions et problèmes intéressants à étudier. Beaucoup d'entre eux peuvent être décrits à un niveau élevé! Ceci est une liste publiée par Prof. Wikipedia (via SIGACT), choisissez vos favoris: algorithmes, structures de données, théorie de la complexité computationnelle, calcul distribué, calcul parallèle, VLSI, apprentissage automatique, biologie computationnelle, géométrie algorithmique, théorie de l'information, cryptographie, calcul quantique , théorie numérique des nombres et algèbre, sémantique et vérification de programme, théorie des automates et étude du caractère aléatoire.
la source
À peu près la même chose qu'un réparateur de magnétoscope. Les deux solutions permettent d'optimiser les performances des machines qui lisent et écrivent des informations sur de très longs morceaux de bande.
C’est peut-être un peu plus bavard que ce que vous vouliez…
la source