Was brauchen Theoretische Physiker von Informatikern?

Ich habe kürzlich zusammen mit einigen Chemikern ein Papier verfasst (leider noch nicht online), das im Wesentlichen Antworten auf die Frage gab: "Was brauchen Chemiker von Informatikern?" Dazu gehörte die Lösung theoretischer Probleme wie kombinatorische Aufzählung und das Sampling bestimmter Klassen von Graphen; und praktische Programmierprobleme, wie Open-Source-Implementierungen von Algorithmen, die derzeit nur in teuren Softwarepaketen implementiert sind.

Das motiviert mich zu fragen: Was ist mit diesem Feld? Gibt es theoretische Probleme der Kombinatorik, der Algorithmenanalyse, für deren Lösung die Physik einen theoretischen Informatiker braucht? Oder wie wäre es mit der Schaffung praktischer Werkzeuge, die es einem theoretischen Physiker ermöglichen würden, eine bessere Arbeit zu leisten: "Wenn ich nur ein Programm hätte, das diese Art von Problem für mich löst!"

Als Community-Wiki gedacht.

Antworten (5)

Ich denke, vielleicht nehmen einige der anderen Antworten Informatik als Synonym für Berechnung. Ich schätze, das ist vielleicht nicht das, was Sie meinen, sondern eher die theoretische Informatik. Es gibt offensichtlich eine große Überschneidung mit der Quanteninformationsverarbeitung, von der ich denke, dass Sie sich bereits bewusst sind, also werde ich das ignorieren.

Ein Großteil der Physik (einschließlich der Quantenphysik) ist kontinuierlich, daher tendiert die Art der verwendeten Mathematik eher zu kontinuierlicher Mathematik (Lösen von PDEs, Auffinden von Geodäten usw.) im Vergleich zu den diskreten Strukturen, die in der theoretischen Informatik untersucht werden. Daher gibt es nicht so viele Überschneidungen. Die statistische Mechanik beschäftigt sich eher mit diskreten Strukturen, daher gibt es dort mehr Überschneidungen.

Ein großes Überschneidungsgebiet liegt tatsächlich in der Computerphysik, wo sich Menschen mit der Berechnung bestimmter Eigenschaften physikalischer Systeme befassen. Insbesondere die Simulation physikalischer Systeme ist ein riesiges Forschungsgebiet, und es wird viel Wert darauf gelegt, effiziente Algorithmen für die Simulation physikalischer Systeme zu finden. Insbesondere das Auffinden von Quantengrundzuständen und die Simulation der Quantendynamik sind diejenigen, mit denen ich die direkteste Erfahrung habe. Sowohl in Bezug auf den Nachweis von Härteergebnissen wurden ziemlich viele Fortschritte erzielt (z. B. Scott Aaronsons jüngste Arbeit über die Härte der Simulation linearer Optiken, die QMA-Vollständigkeit des Auffindens von Quantengrundzuständen selbst von ziemlich eingeschränkten Systemen , die Simulation von Pendeloperatorenetc.) sowie effiziente Algorithmen (zum Beispiel Match Gates , oder Theorem von Gottesman-Knill ).

Die Mainstream-Modelle sind diskret, aber es gibt andere Modelle, die sich mit Kontinuität befassen. Ein gutes altes Beispiel ist hier . Außerdem gibt es eine interessante Interaktion zu Fragen im Zusammenhang mit zufälligem k-SAT.
@Kaveh: Ja, ich weiß. Ich meinte einfach, dass die Mathematik auf hohem Niveau anders ist.
Obwohl mir diese Antwort auf jeden Fall gefällt, finde ich in der Frage keinen Hinweis darauf, dass Aaron beabsichtigt, sie hauptsächlich auf den Bereich der theoretischen Informatik zu richten. er fragt sogar nach der „Schaffung praktischer Werkzeuge“. Natürlich ist der Fragesteller ein theoretischer Informatiker, aber soweit ich das beurteilen kann, bezieht sich die Frage gleichermaßen auf alle Zweige der Informatik.
@Logan: Er sagt ausdrücklich: "Gibt es theoretische Probleme der Kombinatorik, der Algorithmusanalyse, für deren Lösung die Physik einen theoretischen Informatiker braucht?"
@Joe: Ja, aber gleich im nächsten Satz fragt er nach praktischen Problemen, was für mich ein Hinweis darauf war, dass er sowohl aus theoretischer als auch aus angewandter Sicht nach Antworten suchte. Um das klarzustellen, ich habe Berechnung und Informatik nicht als Synonyme genommen, aber ich muss zugeben, dass ich nicht viel darüber weiß, woraus die theoretische Informatik jenseits von, sagen wir, Hopcroft & Ullman besteht. Die theoretischen Informatiker hier forschen in Sachen wie Biological Computing, was, soweit ich das beurteilen kann, nicht das ist, was die meisten Leute meinen, wenn sie von theoretischer Informatik sprechen.
@LoganMaingi: Vielleicht hat dieses Zitat in Verbindung mit meinen früheren Interaktionen mit Aaron meine Interpretation seiner Frage beeinflusst.

BEARBEITEN: Diese Antwort ist speziell aus der Perspektive sehr rechnerorientierter Bereiche wie der theoretischen Plasmaphysik.

Die meisten Physiker können programmieren, und tatsächlich sind viele ziemlich gute Programmierer. Es wäre schwierig, in der modernen Physik zu arbeiten, ohne programmieren zu können. Leider sind viele auch keine besonders guten Programmierer (ich habe viele Fortran-Codes gelesen, in denen goto die primäre Methode der Flusskontrolle war).

Es ist immer wünschenswert, schnellere Algorithmen zu haben, und daher ist die Algorithmusanalyse nützlich. In vielen Fällen ist die Algorithmusgeschwindigkeit jedoch nicht der begrenzende Faktor, sodass sie nicht so nützlich ist, wie man hoffen könnte. Dazu später mehr.

Eine Sache, die ich in der High School in einem Labor gemacht habe, war im Wesentlichen die Entwicklung von GUIs für bestehende Programme. In der theoretischen Plasmaphysik gibt es eine große Anzahl von Codes, die man laufen lässt, um eine Vorstellung davon zu bekommen, was im Reaktor vor sich geht. Die Entwicklung einer GUI dafür ist nicht so trivial, wie Sie vielleicht denken; Die Integration von Parametereingabe, Datenvisualisierung und die Verknüpfung der Codes auf nette Weise erfordert tatsächlich einige Kenntnisse darüber, was physikalisch vor sich geht. Dies richtet sich eher an Programmierer als an Informatiker, sollte aber dennoch nützlich sein.

Ein weiterer Bereich, in den sich die Computerphysik begeben muss, ist die Richtung datengetriebener Theorien. Informatiker kennen das besser als maschinelles Lernen. Ich gebe Ihnen nur ein Beispiel für ein Projekt, das ich durchgeführt habe, wieder in Plasmaphysik. Bei der Berechnung des turbulenten Transports für Stellaratoren sind sogenannte gyrokinetische Simulationen der Goldstandard. Diese können 100 Millionen CPU-Stunden oder mehr verbrauchen und riesige Datenmengen erzeugen. Mein Berater (ich war damals Praktikant) schlug vor, die Ausgabe der Dateien mit neuronalen Netzen zu untersuchen. Die Idee war, ein neuronales Netzwerk mit so vielen gyrokinetischen Simulationen wie möglich zu trainieren und dann zu sehen, was es tun kann. Wir erwarteten, dass es wahrscheinlich nicht viel von irgendetwas tun könnte.

Alle vorhandenen Pakete für neuronale Netze, sowohl kommerzielle als auch kostenlose, reichten für unsere Anforderungen nicht aus. Es gibt eingebaute Symmetrien und ungefähre Symmetrien für das System, die oft nicht offensichtlich sind. Dies in eine Funktionsweise eines neuronalen Netzwerks zu übersetzen, war nicht einfach. Am Ende habe ich den Code komplett selbst geschrieben, indem ich einfach so viel von der Physik hineingetan habe, wie ich konnte. Es funktionierte überraschend gut, und sowohl mein Berater als auch ich dachten, dass dies eine sehr interessante Richtung für die Zukunft sein würde. Leider überstiegen meine Programmierfähigkeiten die Möglichkeiten, darüber hinauszugehen, und es würde wahrscheinlich einen Experten für neuronale Netze erfordern, der sich mit Plasmaphysik auskannte.

Ich erwarte nicht, dass man einen neuronalen Netzwerkcode herstellen könnte, der für einen breiten Bereich von Disziplinen nützlich wäre. Wenn es eine Möglichkeit gäbe, Symmetrien in den Code einzubauen, denen das Netzwerk folgen müsste, wäre das für die datengesteuerte Theorie äußerst nützlich. Ich würde jedoch vermuten, dass jeder wahrscheinlich einzeln hergestellt werden müsste. Dies ist ein Bereich, in dem theoretische (Computer-)Physiker und Informatiker wahrscheinlich stärker zusammenarbeiten können und sollten. Neuronale Netze sind offensichtlich auch nicht das einzige; Ich könnte mir vorstellen, dass in Bereichen wie der computergestützten Plasmaphysik die datengesteuerte Theorie einen großen Aufschwung erleben würde, wenn wir maschinelles Lernen mit einem Teil der eingebauten Physik verwenden könnten.

Ich sollte wahrscheinlich hinzufügen, dass ich streng genommen keine datengetriebene Theorie, sondern eher eine simulationsgetriebene Theorie anstrebte. Echte datengesteuerte Theorie würde experimentelle Daten verwenden, aber dies ist bei weitem die kostspieligere Option (da jede Konfiguration dem Bau eines Stellarators im Wert von über 1 Milliarde USD entspricht). Es war im Wesentlichen ein Proof-of-Concept-Projekt.

Was die Algorithmusgeschwindigkeit betrifft, so ist im Fall der Plasmaphysik der begrenzende Faktor nicht unbedingt die Fähigkeit, die Simulationen durchzuführen. Selbst die kostspieligsten Simulationen, an denen wir interessiert sind, können heute vernünftig auf Supercomputern durchgeführt werden. Sogenannte "vollständige" Simulationen würden einige erfordern 10 30 mehr Berechnung, was wahrscheinlich nie machbar sein wird. Die Region dazwischen hat sich bisher als ziemlich chaotisch erwiesen, und es scheint nicht, dass die Antworten sich wesentlich verbessern, indem man einfach zufällig mehr Gitterpunkte auf das Problem wirft. Wir müssen zuerst verstehen, was im Kleinen passiert, und dann können wir das anwenden. Es gibt eine Reihe von Techniken, um solche Berechnungen durchzuführen, wie die oben erwähnten gyrokinetischen Simulationen, aber diese sind im Wesentlichen nur unsere beste Vermutung und stimmen nur ungefähr mit dem Experiment überein.

In einem Stellarator hängt der turbulente Transport entscheidend von der Geometrie der Reaktorgeometrie ab, und als solche gibt es im Wesentlichen einen unendlich dimensionalen Parameterraum zu erforschen. Zumindest um diesen Parameterraum perturbativ zu untersuchen, scheint die beste Richtung eine hybridisierte daten-/simulationsgetriebene Theorieentwicklung unter Verwendung von maschinellem Lernen zu sein. Schnellere Codes würden helfen, aber es ist nicht klar, ob sie uns grundsätzlich zur richtigen Physik bringen würden; Das Problem scheint vielmehr zu sein, dass wir nicht sicher sind, wie wir solche Algorithmen entwickeln sollen, um das zu bekommen, was wir von ihnen wollen. Zugegeben, das ist schon einige Jahre her, und ich habe die Literatur nicht mitverfolgt, und es gab nur wenige Leute, die diese Richtung verfolgten, also weiß ich nicht, ob es noch offen ist.

Okay, ich muss zugeben, dass das nicht genau zu deinem Kommentar zu Michaels Post passt, aber ich denke, es ist ein Anfang.
Ich denke, Sie können Ihre Antwort auf Ideen für maschinelles Lernen und nicht nur auf neuronale Netze verallgemeinern.
Da ich meinen Beitrag zurückgezogen habe, nur um zu verdeutlichen, was Logan Maingi mit "Kommentar zu Michaels Beitrag" gemeint hat: Ich habe ein Beispiel mit einem sehr allgemeinen Bedarf an Informatik gepostet, aber die Frage bezieht sich auf ein explizites Problem / Beispiel in TP, das dies erfordert CS
Ich habe maschinelles Lernen in einem breiteren Kontext erwähnt, siehe zum Beispiel den letzten Satz. Ich kann nicht behaupten, auf diesem Gebiet etwas zu wissen, außer ein wenig über neuronale Netze, weshalb sie in der Antwort fast ausschließlich behandelt werden. Ich würde zustimmen, dass es über neuronale Netze hinaus viel zu gewinnen gibt, aber ich weiß nicht genau, was es ist.
Ich muss widersprechen. Es sind genau die Algorithmen, die auf Supercomputern laufen, die Sie beschleunigen müssen. (Ich sage nicht, dass theoretische Informatiker helfen können, aber zu sagen "wir können die Dinge immer nur auf schnelleren Computern ausführen", ist definitiv die falsche Einstellung.) Irgendwann sah ich eine Analyse der Beschleunigung beim Lösen linearer Programme über einen Zeitraum von einigen Jahrzehnten. Es gab einen Faktor von mehreren Millionen, der von schnelleren Maschinen kam. Es gab einen wesentlich größeren Faktor, der aus der Verbesserung der Algorithmen stammte. Und man möchte lineare Programme immer noch schneller lösen.
Obwohl ich nicht widersprechen kann, dass es schön wäre, diese zu beschleunigen, wäre ich überrascht, wenn man bedenkt, wie viel Arbeit in die Optimierung jedes Aspekts der bestimmten Codes gesteckt wurde, mit denen ich gearbeitet habe (sowohl von professionellen Programmierern als auch von Physikern). wenn sie mehr als linear beschleunigt werden könnten. Während eine millionenfache Beschleunigung sicherlich die Qualität der Simulation erhöhen würde, ist das System in diesem Fall an sich chaotisch und selbst eine millionenfache Berechnung würde Sie nicht so weit bringen. In solch komplizierten Systemen scheint die datengetriebene Theorie der beste Ansatz zu sein.
Lassen Sie mich außerdem hinzufügen, dass es großartig ist, einen so bemerkenswerten Forscher auf dieser Seite zu sehen. Wenn Sie Ihre eigenen Erfahrungen als Antwort detaillierter aufschreiben könnten, wäre ich sicher, dass jeder hier sehr dankbar wäre.
@Peter Nachdem ich mein Schreiben noch einmal gelesen habe, kann ich sehen, womit Sie nicht einverstanden waren. Ich habe den zweiten Absatz entfernt, der besagte, dass die Algorithmusanalyse nicht nützlich ist. Ich meinte das nur in dem sehr engen Kontext, mit dem ich es zu tun hatte, und selbst dann war es nicht gut erklärt. Ich denke immer noch, dass schnellere Algorithmen die hier gestellten Probleme nicht lösen würden, aber natürlich würden sie helfen.
@LoganMaingi: Das Finden eines besseren Algorithmus für ein Problem geht weit über das Optimieren von Code für einen bestimmten Algorithmus hinaus. Ein Beispiel dafür ist die Matrizenmultiplikation: Egal, wie gut Sie die in der Schule oder Universität gelernte Multiplikation umsetzen, es dauert Ö ( n 3 ) . Es gibt jedoch bessere Algorithmen, die eine Skalierung von ergeben Ö ( n k ) zum k < 3 , die Sie niemals erhalten würden, wenn Sie versuchen würden, die Implementierung der naiven Multiplikation zu optimieren. Siehe en.wikipedia.org/wiki/…
Ich bin mir des Problems der Optimierung der Matrixmultiplikation bewusst, aber ich bin nicht davon überzeugt, dass dies etwas ist, das von Physikern speziell oder besonders gewollt ist. Praktisch jeder auf der Welt, der irgendwelche Berechnungen durchführt, möchte Matrizen schneller multiplizieren. Wenn jemand einen schnelleren Algorithmus für die Matrixmultiplikation, die Singulärwertzerlegung, die Fourier-Transformation usw. finden könnte, würde dies natürlich den Physikern sehr zugute kommen, aber das ist ziemlich offensichtlich. Als ich diese Antwort gepostet habe, hat Aaron außerdem nach konkreten Beispielen gefragt; Daher habe ich versucht, das Problem ziemlich konkret anzugehen.
@LoganMaingi: Ich habe nicht über Matrixmultiplikation gesprochen. Es war einfach ein Beispiel für den Unterschied zwischen einem besseren Algorithmus und optimiertem Code.
Ich fürchte, ich verstehe nicht, worauf Sie hinaus wollen. Ich stimme zu, dass Algorithmen verbessert werden können, aber abgesehen von einem ziemlich drastischen und unwahrscheinlichen Fortschritt scheint es nicht so, als würde die programmatische Berechnung allein die gestellten Probleme lösen. Widersprichst du mir hier? Oder sind Sie anderer Meinung, wenn ich sage, dass die Verwendung von maschinellen Lerntechniken helfen kann, das Problem zu lindern? Ich stimme dem zu, was Sie sagen, also bin ich mir nicht sicher, was ich gesagt habe, womit Sie nicht einverstanden sind. Ich vermute, dass es sich um ein Missverständnis handeln könnte. Können Sie zitieren, welche Aussage ich gemacht habe, der Sie nicht zustimmen?
Ich dachte an Ihren Kommentar an Peter, wo Sie sagten: "Obwohl ich nicht widersprechen kann, dass es schön wäre, diese zu beschleunigen, wenn man bedenkt, wie viel Arbeit in die Optimierung jedes Aspekts der bestimmten Codes gesteckt wurde, mit denen ich gearbeitet habe (von professionellen Programmierer sowie Physiker), ich wäre überrascht, wenn sie mehr als linear beschleunigt werden könnten." Mir schien, Sie konzentrierten sich auf die Optimierung Ihres Programms, während er über bessere Algorithmen sprach.
Okay, jetzt verstehe ich, wovon du sprichst, und ich sehe, dass du recht haben könntest. Wenn er das jedoch mit diesem Kommentar gemeint hat, denke ich, dass es auf dieser Seite und dieser Frage kein Thema ist. Die Frage ist, was theoretische Physiker besonders wollen, nicht, was jeder, der Computer macht, im Allgemeinen will. Ich wäre begeistert Ö ( n 2 ) Matrixmultiplikation, aber ich denke nicht, dass das eine vernünftige Frage ist. Es wäre, als würde man Mathematiker bitten, die Hodge-Vermutung zu beantworten. Es ist bereits gut bekannt und es wird daran gearbeitet, aber es ist kein einfaches Problem.
Was ich wirklich gerne sehen würde, ist, ob jemand eine Liste häufig verwendeter Algorithmen in der Physik finden könnte, die außerhalb der Physik nicht sehr bekannt sind. Das wäre ein Beitrag im Bereich Algorithmusanalyse, den ich unterstützen würde. Aber ich denke, so allgemeine Dinge wie „Verbessere deine Algorithmen“ oder „Gib uns Ö ( n 2 ) Matrixmultiplikation" sind keine besonders guten Beispiele für diese Frage. Ersteres ist etwas unverantwortlich, ohne den Algorithmus selbst gelesen zu haben. Woher wissen Sie, dass eine Verbesserung des Algorithmus das Problem besser löst als maschinelles Lernen? Letzteres wird im vorherigen Kommentar besprochen .
Ich sollte einen Vorbehalt hinzufügen, dass ich Peters ursprünglichem Kommentar völlig zustimme, während ich ihn lese. Ich dachte, er kommentierte die Idee, dass "leistungsstärkere Computer immer verfügbar sein werden", unverantwortlich. Wenn ich eine solche Position zu unterstützen scheine, tue ich das tatsächlich nicht. Dass einige meiner Colleges so dachten, ist einer der Gründe, warum ich mich von der Berechnung in mathematischere Bereiche begeben habe. Es lässt die Algorithmusanalyse sinnlos erscheinen, was sie nicht ist. Allerdings denke ich auch, dass prozedurales und algorithmenbasiertes Programmieren seine Grenzen hat. Maschinelles Lernen und datengesteuerte Theorie sind der nächste Schritt, wenn Dinge an eine Wand stoßen.
@LoganMaingi: Ich denke, du verfehlst immer noch meinen Punkt. Zu sagen „Wir wollen bessere Simulationsalgorithmen“ ist eine durchaus vernünftige Forderung. Wie gesagt, ich habe die Matrixmultiplikation nur als Beispiel verwendet, um den Unterschied zwischen besseren Algorithmen und schnellerem Code zu verdeutlichen.
„Was ich wirklich gerne sehen würde, ist, ob jemand eine Liste häufig verwendeter Algorithmen in der Physik aufstellen könnte, die außerhalb der Physik nicht sehr bekannt sind.“ – Ich auch! ... aber ich werde bis zur öffentlichen Beta warten, um diese Frage zu stellen. :-)
@Aaron: Wissen Sie, dass Physiker seit den 40er Jahren randomisierte Algorithmen verwenden?
@Joe: Ich würde sagen, mein "Wissen" über Algorithmen in der Physik ist auf einem Niveau, auf dem es eher irreführend ist, als mich zu informieren.

Haftungsausschluss: Ich bin mit der Literatur zur numerischen Analysis nicht sehr vertraut, daher ist es durchaus möglich, dass die Probleme, die ich erwähnen werde, bereits gelöst sind.

Vielleicht ist dies ein banalerer Vorschlag, aber ich denke, dass eine bessere Software für numerische differentielle (und in einigen Fällen algebraische) Geometrie erstaunlich wäre. Dies erscheint wahrscheinlich "offensichtlich" und für viele Leute könnte dies bereits ein gelöstes CS-Problem sein, aber ich möchte dieses Problem lieber mit einem Beispiel veranschaulichen.

Ich musste einmal eine 10-dimensionale Metrik berücksichtigen d s 10 = d s S 5 + d s M und lösen Sie ein vereinfachtes Eigenwertproblem: Womit ist der niedrigste Eigenwert des Laplace-Beltrami-Operators verbunden? d s 10 . Als physikalische Relevanz des Problems stellte sich heraus, dass wir eine Dipol-ähnliche Näherung verwenden könnten, die nur vom niedrigsten Nicht-Null-Eigenwert abhängt. Nachdem ich einige Wochen damit verbracht hatte, diesen Eigenwert analytisch zu finden, beschloss ich, es numerisch zu versuchen. Mein Berater hatte mich davon überzeugt, dass die numerischen Werkzeuge dafür vorhanden sein würden und dass es sich um ein einfaches Problem handeln sollte. Unglücklicherweise erkannte ich drei Monate später, dass es nur wenige Open-Source-/kommerzielle Programme gab, die diese Aufgabe erledigen konnten, und darüber hinaus gab es nur wenige Algorithmen, die entwickelt wurden, um etwas höherdimensionale (nichtlineare) PDEs zu approximieren. Ich glaube, dass die numerischen Methoden existieren (ich habe mit einigen numerischen Analysten bei Courant gesprochen, die sagten, sie glaubten, dass dieses Problem gelöst sei,

Ich denke, während theoretische Physiker oft darauf trainiert sind, Dinge nur analytisch zu lösen, wäre es schön, etwas Intuition aus den numerischen Lösungen zu gewinnen. Darüber hinaus gibt es viele Algorithmen von Mathematikern wie Robert Ghrist zur Berechnung wichtiger Invarianten wie der Morse-Homologie, und ich denke, es wäre großartig, wenn wir das richtige Gleichgewicht zwischen Informatik und Physik finden könnten, um solche Techniken zu implementieren. Ich habe einige Hintergrundkenntnisse in CS und paralleler Programmierung und habe immer noch das Gefühl, dass die beiden Seiten (CS, theoretische Physik) so voneinander getrennt sind, dass es schwierig ist, solche Lösungen zu implementieren.

Vielen Dank. Das ist genau das, wonach ich gesucht habe.

Mein alter Berater, ein Physiker, der in CS arbeitete, schrieb eine Arbeit, die zeigte, dass Raumzeiten kategorisch äquivalent zu Intervalldomänen sind. Sein Name ist Panangaden. Domänen sind in CS als Semantik für Programmiersprachen nützlich. In kausalen Ansätzen zur Quantengravitation (die ich allgemein für einzigartige Formen neuartiger, relevanter Physik nehme) sieht die Zeit viel mehr wie logische Uhren aus, die wir in der Analyse verteilter und gleichzeitiger Computersystemanalysen sehen. Einige Aspekte von cs sind nützlich für die neuesten Dinge, die in der Physik gemacht werden, wie die kategorische Quantenmechanik.

Prakash ist so etwas wie ein Sonderfall, da er einen bedeutenden Hintergrund in Physik hat.

Mathematik ist für die Physik, was Masturbation für Sex ist - Richard Feynman. Dies bedeutet, dass es in der Physik um reale Interaktionen im Gegensatz zu einfachen abstrakten Konzepten geht. Dasselbe gilt für Wissenschaft versus Ingenieurwesen: Die Wissenschaft entwickelt abstrakte Werkzeuge, die Ingenieure verwenden, um reale Rechenmodelle darzustellen.

Informatik ist keine Wissenschaft, sondern eine Ingenieurdisziplin. Es geht nicht einmal um Computer; es geht um Modellrechnungen. Der Computer ist das Medium, das Gedanken in Form von Programmen an die Physik bindet.

Die offensichtlichste Fähigkeit, die ein Physiker von der Informatik profitieren würde, ist das Wissen über Algorithmen und Datenstrukturen. Algorithmen sind allgemeine Beschreibungen der Durchführung einer bestimmten Aufgabe. Diese Aufgaben können mit vielen Algorithmen ausgeführt werden. Es geht darum, die Aufgabe möglichst prägnant, einfach und effizient zu lösen. Kenntnisse über Algorithmen helfen bei der Auswahl des richtigen Algorithmus für die richtige Datenstruktur. Datenstrukturen sind Möglichkeiten zum Speichern von Daten. Beispiele hierfür sind Listen, Arrays, Zahlen, Strings, Vektoren, Matrizen und sogar Funktionen (wenn die verwendete Sprache die Verwendung von Funktionen als zu übertragende Daten zulässt). Bei der Kategorientheorie geht es um Mathematik, Physik, Datentypen usw. Es ist alles miteinander verbunden. Ich schlage vor, dass Physiker Haskell lernen, um die Verbindung selbst herzustellen.

Zusammenfassend lässt sich sagen, dass die Fähigkeit der Informatik die Fähigkeit hat, besser darin zu sein, reale Probleme zu lösen. Programmieren wird jeden Wissenschaftler dazu bringen, Probleme mit der Geschwindigkeit eines Elektrons zu lösen, während es einfacher wird, Gedanken und Modelle zu überprüfen.

Programmieren ist praktisch, also worauf warten Sie noch? Lass deine Finger laufen!

Ich habe dies abgelehnt, weil ich es für nicht hilfreich und keine echte Antwort halte.