¿La ciencia computacional involucra programación?

16

Leí sobre ciencia computacional en Wikipedia, pero mi comprensión no es muy clara.

¿La ciencia computacional involucra programación? ¿Cuán diferente es la ciencia computacional de la computacional _ ____ , donde el espacio en blanco podría ser cualquier disciplina (ciencia de materiales, ingeniería, química, biología, etc.)? (Haré ciencia computacional de materiales).

Sheryl
fuente
55
Te recomiendo que mires aquí: scicomp.stackexchange.com/questions/1148/… . Lo que pasa con la ciencia computacional es que es aplicable a la mayoría de las ciencias físicas de alguna forma (puede que no sea la forma más eficiente de manejar el problema, pero esa es otra pregunta por completo).
Godric Seer
Muchas cosas son difíciles de probar matemáticamente. Es bueno, cuando puedes programar cosas y probarlas. Ciertamente, la ciencia computacional no es fácil, pero con mucho trabajo, deberías poder hacerlo.
vanCompute
1
Bienvenido a scicomp, Sheryl. Creo que has hecho varias preguntas aquí. Edite lo que ha escrito para que sea solo una pregunta. Si lo desea, puede enviar las otras preguntas por separado, una a la vez.
David Ketcheson el
Dejé pasar esta pregunta por un momento porque Wolfgang la respondió muy bien, pero en este punto, debe cerrarse y editarse antes de volver a abrir, para darle más atención a la pregunta.
Geoff Oxberry

Respuestas:

14

El enlace que Godric señaló debajo de la pregunta es exactamente correcto. Ofrece una buena visión general de los muchos talentos que debe tener un científico computacional.

En general, la diferencia entre ser un X computacional (X = matemático, ingeniero civil, científico de materiales) y ser un X teórico o X experimental es que los primeros abordan problemas con las computadoras en lugar de experimentar o teoría. Obviamente, la capacidad de usar computadoras, en particular para programarlas, es una parte importante de esto, al igual que las habilidades y una buena comprensión de la propia X.

Los científicos computacionales son las personas que no son parte inmediata de la comunidad X pero que a menudo tienen experiencia en matemáticas o ciencias de la computación. Me consideraría uno solo. Diría que la mayoría de ellos no están tan interesados ​​en ninguna aplicación en particular (es decir, la X) en sí misma, sino que consideran resolver problemas en el campo X como una forma de desarrollar y aplicar nuevos métodos numéricos y computacionales, es decir, como casos de prueba para métodos que son de aplicación más amplia. Muchos científicos computacionales son excelentes programadores y, quizás más importante, diseñadores e ingenieros de software. Ser bueno en eso es ciertamente una parte importante de la descripción del trabajo de un científico computacional.

Wolfgang Bangerth
fuente
1
Muy bien dicho.
Jack Poulson
¿Qué es un matemático computacional?
Milind R
Alguien cuyo objetivo es desarrollar métodos matemáticos para problemas computacionales. Por ejemplo, para desarrollar métodos de elementos finitos, solucionadores lineales o no lineales, etc.
Wolfgang Bangerth
1
bueno, excepto que las computadoras pueden hacer "experimentos computacionales", por ejemplo, como en la investigación matemática o cs. (un tipo / tipo diferente de experimento). También llamado "investigación empírica" ​​en estos campos, quizás no sea el mejor término sino el que se utiliza. Este es un nuevo / gran paradigma emergente. especialmente con "big data", etc.
vzn
6

En pocas palabras, no serás un buen profesional si pretendes hacer 'ciencia computacional' pero no conoces la programación.

Para hacer el cálculo, necesitas una herramienta. Y la computadora es una herramienta. La programación es la única forma de enseñarle a la computadora cómo hacer una cosa. Por lo tanto, la programación es una parte esencial de la ciencia computacional. Esto no quiere decir que es la única parte de ella. La teoría tiene su propio lugar sagrado. Si eres muy bueno en teoría, diseñarás mejor y, lo que es más importante, corregirá los algoritmos.

Por lo que yo veo, puedes sobrevivir sin conocer la programación también: diseñando algoritmos teóricamente. Pero luego debe contratar a otra persona que conozca la programación para verificar si sus algoritmos funcionan en tiempo real o no.

Además, es un hecho del mundo moderno que a las personas que conocen la programación se les paga mejor. ¡EN MI HUMILDE OPINIÓN!

Dilawar
fuente
3

No conozco las versiones de libros de texto de definición o descripción de la ciencia computacional, pero aquí están mis dos centavos basados ​​en mi experiencia:

La ciencia computacional implica tratar con procesos computacionales. Uno de los procesos cruciales es la programación. Entonces, sí, implica la programación. Es un problema diferente si el científico computacional es un escritor de un programa o no, pero lo más probable es que sea el usuario de programas escritos para dominios científicos específicos. Y es cada vez más probable que tenga que escribir un código de "pegamento" para adaptarlo a sus necesidades. Espero que esto responda tu primera pregunta.

No conozco la ciencia de los materiales computacionales, pero supongo que es una rama de la ciencia que tiene necesidades computacionales, por ejemplo, para simulaciones de energía e interacciones entre elementos, etc. Entonces, sí, involucrará los mismos principios generales de la ciencia computacional como otros dominios científicos: algoritmos, procedimientos, códigos de pegamento, manipulación de archivos, configuración, visualización, etc. Espero que esto esté cerca de responder tu segunda pregunta.

La formación en informática de ustedes definitivamente debería ayudar. Ya sea que esté dentro del alcance o no, es un poco subjetivo. Sin embargo, diría que debería estar en su zona de confort, dadas las materias que ha estudiado.

mkc
fuente
Bien. En realidad, con respecto a temas como Ingeniería Física, Química, no soy tan científico. En los últimos años, mi enfoque principal son las ciencias de la computación: la programación es específica. Si alguien me pregunta física cuántica y todo eso, no soy tan bueno.
Sheryl
Si este proyecto se trata principalmente de "programación" con un buen sentido de la física; Supongo que puedo manejarlo. (Además, la mecánica es mi parte favorita de la física donde tengo bases sólidas.)
Sheryl
55
No existe una definición de libro de texto de ciencia computacional, pero esto es lo que el Departamento de Energía de EE. UU. Tiene que decir La ciencia computacional es un enfoque interdisciplinario que utiliza algoritmos, matemáticas y computadoras para analizar y resolver problemas científicos y de ingeniería.
Aron Ahmadia
3

Aquí hay un tipo diferente de respuesta, pero en mi opinión, bastante interesante.

Eché un vistazo a todos los usuarios de esta versión beta con más de 1000 reputación. Creo que se puede considerar que estas personas hacen ciencia computacional. Para cada uno de ellos, miré el perfil y vi si tienen una cuenta en StackOverflow, lo que puede verse como un signo de estar interesado en la programación. Aquí están los resultados:

En el 25 users having more than 1000 reputation:

  • 4 (16%)no tienen una cuenta.
  • 5 (20%)acaba de abrir la cuenta sin ganar reputación.
  • 16 (64%)contribuyeron en StackOverflow.

Entonces, al menos 84%a ellos les interesa la programación. En mi opinión, esto muestra que la programación es una parte esencial del trabajo de la informática científica :-) ¡Eso es solo una confirmación de las otras respuestas!

Otro hecho interesante (que no cuantifiqué) es que todos estos usuarios tienen cuentas sobre muchos temas, ¡no solo sobre Computational Science y StackOverflow! Creo que esto solo va en la dirección de la respuesta de Wolfgang Bangerth.

Dr_Sam
fuente
2

Hablando desde mi experiencia personal, conozco científicos computacionales excelentes que tienen poco o ningún conocimiento o experiencia en programación. Por otro lado, la mayoría de los científicos computacionales que conozco saben cómo programar una computadora.

No hay una respuesta final a esa parte de su pregunta. La pregunta que debe hacerse es: ¿Tengo un software disponible para mí que me permita resolver mi problema o es parte de mi trabajo el escribir el software que puede resolver el problema primero y luego usarlo para resolver el problema? problema real La respuesta a esto determinará si necesita saber programación o no.

Tanith Rosenbaum
fuente
1

Pregunta interesante: estoy estudiando ciencias de los materiales computacionales y soy un estudiante graduado de una especialización en física. Hasta ahora, la cantidad de programación que he hecho es mínima, pero eso está hablando por mí mismo. A menudo, los objetivos específicos de su proyecto determinarán la cantidad exacta de codificación que realizará. Si se trata de un compuesto en particular utilizando técnicas y software estándar, en el peor de los casos, terminará escribiendo scripts de Bash / Python para automatizar las cosas en torno al código que está utilizando. Soy de la opinión de que harás algo de programación posiblemente para implementar las cosas que buscas validar, así que una respuesta corta: no puedo hablar por la ciencia computacional, pero por la ciencia de los materiales computacionales, la cantidad de programación si alguna estará determinada por tu proyecto.

Miguel
fuente
1

Voy a responder la segunda parte. Si bien puede haber muchas coincidencias entre un científico computacional general y una X computacional especializada según el interés de una persona, la principal preocupación del científico computacional es la introducción de nuevas técnicas computacionales para estudiar un problema en un campo de dominio. Una cosa nueva en la técnica computacional puede ser un nuevo cálculo que no fue posible debido a la falta de herramientas computacionales apropiadas o una forma más rápida. La X computacional, por otro lado, estará principalmente interesada en usar estas nuevas herramientas para estudiar nuevos problemas. Por lo tanto, en general, un científico computacional primero establecerá un enunciado del problema, explicará el marco general para resolverlo, impondrá algunas limitaciones en la aplicabilidad de la herramienta (velocidad / error, etc.) y resolverá un problema como prueba de concepto. En cuanto a la primera parte,

Kaustubh Kaluskar
fuente