Umfasst Computational Science Programmierung?


16

Ich habe in Wikipedia über Computerwissenschaften gelesen, aber mein Verständnis ist nicht sehr klar.

Umfasst die Computerwissenschaft das Programmieren? Wie unterschiedlich ist die Computerwissenschaft von der Computerwissenschaft _ ____ , bei der es sich um eine beliebige Disziplin handeln kann (Materialwissenschaften, Ingenieurwissenschaften, Chemie, Biologie usw.)? (Ich werde rechnergestützte Materialwissenschaften betreiben.)


5
Ich empfehle, dass Sie hier schauen: scicomp.stackexchange.com/questions/1148/… . Die Sache mit der Computerwissenschaft ist, dass sie in irgendeiner Form auf die meisten physikalischen Wissenschaften anwendbar ist (es ist möglicherweise nicht die effizienteste Art, das Problem zu lösen, aber das ist eine ganz andere Frage).
Godric Seer

Viele Dinge sind mathematisch schwer zu beweisen. Es ist gut, wenn man Dinge programmieren und ausprobieren kann. Computational Science ist zwar nicht einfach, aber mit viel Arbeit sollten Sie es schaffen.
vanCompute

1
Willkommen bei scicomp, Sheryl. Ich denke, Sie haben hier mehrere Fragen gestellt. Bitte bearbeiten Sie das, was Sie geschrieben haben, so dass es sich nur um eine einzige Frage handelt. Wenn Sie möchten, können Sie die anderen Fragen einzeln einreichen.
David Ketcheson

Ich habe diese Frage eine Weile stehen lassen, weil Wolfgang sie so gut beantwortet hat, aber zu diesem Zeitpunkt muss sie vor dem erneuten Öffnen geschlossen und bearbeitet werden, um die Frage genauer zu betrachten.
Geoff Oxberry

Antworten:


14

Der Link, auf den Godric unter der Frage hingewiesen hat, ist genau richtig. Es gibt einen guten Überblick über die vielen Talente, die ein Informatiker haben muss.

Im Allgemeinen besteht der Unterschied zwischen einem Computer-X (X = Mathematiker, Bauingenieur, Materialwissenschaftler) und einem theoretischen X oder experimentellen X darin, dass erstere Probleme mit Computern angehen und nicht mit Experimenten oder Theorien. Natürlich ist die Fähigkeit, Computer zu benutzen - insbesondere um sie zu programmieren - ein wichtiger Teil davon, ebenso wie Fähigkeiten und ein gutes Verständnis des X selbst.

Computerwissenschaftler sind die Personen, die nicht unmittelbar Teil der X-Community sind, aber häufig einen Hintergrund in Mathematik oder Informatik haben. Ich würde mich als eins betrachten. Ich würde sagen, dass die meisten von ihnen nicht so sehr an einer bestimmten Anwendung (dh dem X) an sich interessiert sind, sondern vielmehr die Lösung von Problemen in Feld X in Betracht ziehen, um neue numerische und rechnerische Methoden zu entwickeln und anzuwenden - dh als Testfälle für Methoden, die allgemein anwendbar sind. Viele Computerwissenschaftler sind ausgezeichnete Programmierer und vor allem Softwareentwickler und -ingenieure. Gut darin zu sein, ist sicherlich ein wichtiger Teil der Berufsbeschreibung eines Informatikers.


1
Sehr gut gesagt.
Jack Poulson

Was ist ein rechnergestützter Mathematiker?
Milind R

Jemand, dessen Ziel es ist, mathematische Methoden für Rechenprobleme zu entwickeln. ZB zur Entwicklung von Finite-Elemente-Methoden, linearen oder nichtlinearen Lösern usw.
Wolfgang Bangerth

1
schön, außer dass Computer "Computerexperimente" durchführen können, zB wie in Mathematik oder CS-Forschung. (eine andere Art / Art von Experiment) wird in diesen Bereichen auch als "empirische Forschung" bezeichnet, möglicherweise nicht der beste, sondern der verwendete Begriff. Dies ist ein neues / großes aufstrebendes Paradigma. vor allem mit "big data" etc
vzn

6

Um es grob auszudrücken, Sie werden kein guter Profi sein, wenn Sie behaupten, "Computational Science" zu betreiben, aber keine Programmierkenntnisse haben.

Für die Berechnung benötigen Sie ein Tool. Und der Computer ist so ein Werkzeug. Die Programmierung ist die einzige Möglichkeit, dem Computer beizubringen, wie man etwas macht. Daher ist die Programmierung ein wesentlicher Bestandteil der Computerwissenschaft. Das soll nicht heißen, dass es der einzige Teil davon ist. Die Theorie hat ihren eigenen heiligen Ort. Wenn Sie in der Theorie sehr gut sind, werden Sie besser entwerfen und was wichtiger ist, korrekte Algorithmen.

Soweit ich weiß, kann man auch ohne Programmierkenntnisse überleben: indem man Algorithmen theoretisch entwirft. Aber dann müssen Sie jemanden einstellen, der sich mit Programmierung auskennt, um zu überprüfen, ob Ihre Algorithmen in Echtzeit funktionieren oder nicht.

Außerdem ist es eine Tatsache der modernen Welt, dass Menschen, die sich mit Programmierung auskennen, besser bezahlt werden. MEINER BESCHEIDENEN MEINUNG NACH!


3

Ich kenne keine Lehrbuchversionen der Definition oder Beschreibung von Computerwissenschaften, aber hier sind meine zwei Cent, die auf meinen Erfahrungen basieren:

In der Computerwissenschaft geht es um rechnerische Prozesse. Einer der entscheidenden Prozesse ist die Programmierung. Also, ja, es geht um Programmierung. Es ist eine andere Frage, ob die Computerwissenschaftlerin ein Programm schreibt oder nicht, aber sie wird höchstwahrscheinlich die Benutzerin von Programmen sein, die für bestimmte wissenschaftliche Bereiche geschrieben wurden. Und es wird immer wahrscheinlicher, dass sie "Klebe" -Code schreiben muss, um die Dinge an ihre Bedürfnisse anzupassen. Hoffe das beantwortet deine erste Frage.

Ich kenne die rechnergestützte Materialwissenschaft nicht, gehe aber davon aus, dass es sich um einen Wissenschaftszweig handelt, der rechnergestützte Anforderungen hat, z. B. für Simulationen von Energie und Wechselwirkungen zwischen Elementen usw. Es werden also dieselben allgemeinen Prinzipien der rechnergestützten Wissenschaft einbezogen wie in anderen wissenschaftlichen Bereichen: Algorithmen, Prozeduren, Klebecodes, Dateimanipulation, Konfiguration, Visualisierung und so weiter. Hoffe, dies ist kurz vor der Beantwortung Ihrer zweiten Frage.

Ihr Informatik-Hintergrund sollte auf jeden Fall helfen. Ob es im Rahmen liegt oder nicht, ist etwas subjektiv. Ich würde jedoch sagen, dass es in Anbetracht der Fächer, die Sie studiert haben, sehr in Ihrer Komfortzone liegen sollte.


Gut. Eigentlich bin ich in Bezug auf Fächer wie Technische Physik, Chemie nicht so wissenschaftlich. In den letzten Jahren lag mein Hauptaugenmerk auf Computerwissenschaften - Programmierung um genau zu sein. Wenn mich jemand nach Quantenphysik fragt, bin ich nicht so gut.
Sheryl

Wenn es in diesem Projekt hauptsächlich um "Programmieren" mit einem guten Sinn für Physik geht; Ich schätze, ich kann damit umgehen. (Außerdem ist die Mechanik mein bevorzugter Teil der Physik, wo ich starke Grundlagen habe.)
Sheryl

5
Es gibt keine Lehrbuchdefinition für Computerwissenschaften, aber das US-Energieministerium gibt an, dass Computerwissenschaften ein interdisziplinärer Ansatz sind, der Algorithmen, Mathematik und Computer zur Analyse und Lösung wissenschaftlicher und technischer Probleme verwendet.
Aron Ahmadia

3

Hier ist eine andere Art der Antwort, aber meiner Meinung nach sehr interessant.

Ich habe mir alle Benutzer dieser Beta mit mehr als 1000 Reputationen angesehen. Ich denke, dass diese Leute als Computerwissenschaftler betrachtet werden können. Für jeden von ihnen habe ich mir das Profil angesehen und herausgefunden, ob er ein Konto bei StackOverflow hat, was als Anzeichen für Programmierinteresse gewertet werden kann. Hier sind die Ergebnisse:

Auf dem 25 users having more than 1000 reputation:

  • 4 (16%)Ich habe kein Konto.
  • 5 haben (20%)gerade das Konto eröffnet, ohne an Ansehen zu gewinnen.
  • 16 (64%)haben zu StackOverflow beigetragen.

Zumindest 84%einige von ihnen interessieren sich für die Programmierung. Dies zeigt meiner Meinung nach, dass das Programmieren ein wesentlicher Bestandteil des wissenschaftlichen Rechnens ist :-) Das ist nur eine Bestätigung der anderen Antworten!

Eine weitere interessante Tatsache (die ich nicht quantifiziert habe) ist, dass all diese Benutzer Konten zu vielen Themen haben, nicht nur zu Computational Science und StackOverflow! Ich denke, dass dies nur in die Richtung der Antwort von Wolfgang Bangerth geht.


2

Ich spreche aus meiner persönlichen Erfahrung und kenne ausgezeichnete Computerwissenschaftler, die wenig oder gar keine Programmierkenntnisse oder -erfahrung haben. Andererseits wissen die meisten mir bekannten Computerwissenschaftler, wie man einen Computer programmiert.

Auf diesen Teil Ihrer Frage gibt es keine endgültige Antwort. Die Frage, die Sie sich stellen müssen, lautet: Steht mir Software zur Verfügung, mit der ich mein Problem lösen kann, oder gehört es zu meiner Aufgabe, die Software zu schreiben, mit der das Problem zuerst gelöst werden kann, und sie dann zur Lösung des Problems zu verwenden tatsächliches Problem. Die Antwort darauf bestimmt, ob Sie programmieren müssen oder nicht.


1

Interessante Frage, ich studiere Computational Material Science und ich bin ein Doktorand mit einem großen Hintergrund in Physik. Bisher habe ich nur wenig programmiert, aber das spricht für mich. Häufig bestimmen die spezifischen Ziele Ihres Projekts den genauen Umfang der Codierung, die Sie durchführen werden. Wenn es um eine bestimmte Verbindung mit Standardtechniken und -software geht, schreiben Sie schlimmstenfalls Bash / Python-Skripte, um den Code zu automatisieren, den Sie verwenden. Ich bin der Meinung, dass Sie möglicherweise etwas programmieren werden, um das Zeug zu implementieren, das Sie validieren möchten, also kurze Antwort: Ich kann nicht für Computerwissenschaften sprechen, aber für Computer-Materialwissenschaften wird der Umfang der Programmierung, falls vorhanden, von bestimmt dein Projekt.


1

Ich werde den zweiten Teil beantworten. Während es je nach Interesse einer Person viele Überschneidungen zwischen einem allgemeinen Computerwissenschaftler und einem spezialisierten Computerwissenschaftler geben kann, liegt das Hauptanliegen des Computerwissenschaftlers in der Einführung neuer Computertechniken zur Untersuchung eines Problems in einem Domänenfeld. Neu in der Rechentechnik kann eine neue Berechnung sein, die mangels geeigneter Rechenwerkzeuge oder auf schnellere Weise nicht möglich war. Auf der anderen Seite wird Computational X hauptsächlich daran interessiert sein, mit diesen neuen Tools neue Probleme zu untersuchen. So legt ein Informatiker im Allgemeinen zunächst eine Problemstellung fest, erläutert den allgemeinen Rahmen für die Lösung, schränkt die Anwendbarkeit des Werkzeugs ein (Geschwindigkeit / Fehler usw.) und löst ein Problem als Proof-of-Concept. Wie für den ersten Teil,

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.