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).
Respuestas:
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.
fuente
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!
fuente
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.
fuente
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
:(16%)
no tienen una cuenta.(20%)
acaba de abrir la cuenta sin ganar reputación.(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.
fuente
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.
fuente
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.
fuente
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,
fuente