La scienza computazionale implica la programmazione?


16

Ho letto della scienza computazionale su Wikipedia, ma la mia comprensione non è molto chiara.

La scienza computazionale implica la programmazione? Quanto è diversa la scienza computazionale dalla computazionale _ ____ , dove il vuoto potrebbe essere una qualsiasi disciplina (scienza dei materiali, ingegneria, chimica, biologia e così via)? (Farò scienza dei materiali computazionali.)


5
Ti consiglio di guardare qui: scicomp.stackexchange.com/questions/1148/… . La cosa sulla scienza computazionale è che è applicabile alla maggior parte delle scienze fisiche in qualche forma (potrebbe non essere il modo più efficiente per gestire il problema, ma questa è un'altra domanda del tutto).
Godric Seer,

Molte cose sono difficili da dimostrare matematicamente. Va bene, quando puoi programmare cose e provarle. Certamente, la scienza computazionale non è facile, ma con molto lavoro, dovresti essere in grado di farlo.
vanCompute il

1
Benvenuto in Scicomp, Sheryl. Penso che tu abbia fatto diverse domande qui. Modifica ciò che hai scritto in modo che sia solo una domanda. Se lo desideri, puoi inviare le altre domande separatamente, una alla volta.
David Ketcheson,

Ho lasciato andare questa domanda per un po 'perché Wolfgang ha risposto così bene, ma a questo punto, deve essere chiuso e modificato prima di riaprire, per dare maggiore attenzione alla domanda.
Geoff Oxberry,

Risposte:


14

Il link che Godric ha sottolineato sotto la domanda è esattamente giusto. Fornisce una buona panoramica dei molti talenti che uno scienziato computazionale deve avere.

In generale, la differenza tra l'essere un X computazionale (X = matematico, ingegnere civile, scienziato dei materiali) e l'essere un X teorico o X sperimentale è che i primi affrontano i problemi con i computer piuttosto che con l'esperimento o la teoria. Ovviamente, la capacità di usare i computer - in particolare per programmarli - è una parte importante di questo, così come le abilità e una buona comprensione della X stessa.

Gli scienziati computazionali sono le persone che non fanno immediatamente parte della comunità X ma spesso hanno un background in matematica o informatica. Mi considererei uno di questi. Direi che la maggior parte di loro non è tanto interessata a nessuna particolare applicazione (cioè la X) in sé, ma piuttosto considera la soluzione dei problemi nel campo X come un modo per sviluppare e applicare nuovi metodi numerici e computazionali - cioè, come test per metodi che sono più ampiamente applicabili. Molti scienziati computazionali sono eccellenti programmatori e, forse ancora più importante, progettisti e ingegneri del software. Essere bravo in questo è sicuramente una parte importante della descrizione del lavoro di uno scienziato computazionale.


1
Davvero ben detto.
Jack Poulson,

Che cos'è un matematico computazionale?
Milind R

Qualcuno il cui obiettivo è sviluppare metodi matematici per problemi computazionali. Ad esempio, per sviluppare metodi ad elementi finiti, solutori lineari o non lineari, ecc.
Wolfgang Bangerth,

1
bello, tranne che i computer possono fare "esperimenti computazionali" come ad esempio nella ricerca matematica o CS. (un diverso tipo / tipo di esperimento) chiamato anche "ricerca empirica" ​​in questi campi, forse non il termine migliore ma quello usato. questo è un nuovo / grande paradigma emergente. esp con "big data" ecc
vzn

6

Per dirla in parole povere, non sarai un buon professionista se affermi di fare "scienza computazionale" ma non conosci la programmazione.

Per eseguire il calcolo, è necessario uno strumento. E il computer è un tale strumento. La programmazione è l'unico modo per insegnare al computer come fare una cosa. Pertanto la programmazione è una parte essenziale della scienza computazionale. Questo non vuol dire che è l'unica parte di esso. La teoria ha il suo posto sacro. Se sei molto bravo in teoria, progetterai meglio e quali sono gli algoritmi corretti più importanti.

A mio avviso, puoi sopravvivere senza conoscere anche la programmazione: progettando algoritmi teoricamente. Ma poi devi assumere qualcun altro che conosca la programmazione per verificare se i tuoi algoritmi funzionano in tempo reale o meno.

Inoltre, è un dato di fatto nel mondo moderno che le persone che conoscono la programmazione sono pagate meglio. A PARER MIO!


3

Non sono a conoscenza delle versioni dei libri di testo della definizione o della descrizione della scienza computazionale, ma qui ci sono i miei due centesimi basati sulla mia esperienza:

La scienza computazionale implica la gestione dei processi computazionali. Uno dei processi cruciali è la programmazione. Quindi sì, implica la programmazione. È una questione diversa se la scienziata computazionale è o meno una scrittrice di un programma, ma molto probabilmente sarà l'utente di programmi scritti per specifici settori scientifici. Ed è sempre più probabile che dovrà scrivere il codice "colla" per rendere le cose adatte alle sue esigenze. Spero che questo risponda alla tua prima domanda.

Non sono a conoscenza della scienza dei materiali computazionali, ma presumo che sia un ramo della scienza che ha esigenze computazionali, ad esempio per simulazioni di energia e interazioni tra elementi ecc. Quindi, sì, coinvolgerà gli stessi principi generali della scienza computazionale come altri domini scientifici: algoritmi, procedure, codici di colla, manipolazione dei file, configurazione, visualizzazione e così via. Spero che questo sia vicino a rispondere alla tua seconda domanda.

Il tuo background informatico dovrebbe sicuramente aiutare. Se è nell'ambito o no è un po 'soggettivo. Tuttavia, direi che dovrebbe trovarsi molto nella tua zona di comfort, viste le materie che hai studiato.


Bene. In realtà, per quanto riguarda materie come ingegneria fisica, chimica - non sono così scientifico. Negli ultimi anni, il mio obiettivo principale sono le scienze del computer - Programmazione per essere precisi. Se qualcuno mi chiede la fisica quantistica e tutto il resto, non sono così bravo.
Sheryl,

Se questo progetto riguarda principalmente la "programmazione" con un buon senso della fisica; Immagino di poterlo gestire. (Inoltre, la meccanica è la mia parte preferita della fisica dove ho solide basi.)
Sheryl

5
Non esiste una definizione da manuale di scienza computazionale, ma ecco cosa dice il Dipartimento dell'Energia degli Stati Uniti. La scienza computazionale è un approccio interdisciplinare che utilizza algoritmi, matematica e computer per analizzare e risolvere problemi scientifici e ingegneristici.
Aron Ahmadia,

3

Ecco un diverso tipo di risposta, ma secondo me abbastanza interessante.

Ho dato un'occhiata a tutti gli utenti di questa beta con più di 1000 reputazione. Penso che queste persone possano essere considerate come una scienza computazionale. Per ognuno di essi, ho guardato il profilo e ho visto se hanno un account su StackOverflow, che può essere visto come un segno di interesse per la programmazione. Ecco i risultati:

Sul 25 users having more than 1000 reputation:

  • 4 (16%)non hanno un account.
  • 5 ha (20%)appena aperto l'account senza guadagnare reputazione.
  • 16 hanno (64%)contribuito su StackOverflow.

Quindi, almeno 84%loro sono interessati alla programmazione. Secondo me, questo dimostra che la programmazione è una parte essenziale del lavoro del calcolo scientifico :-) Questa è solo una conferma delle altre risposte!

Un altro fatto interessante (che non ho quantificato) è che tutti questi utenti hanno account su molti argomenti, non solo scienza computazionale e StackOverflow! Penso che questo vada semplicemente nella direzione della risposta di Wolfgang Bangerth.


2

Parlando della mia esperienza personale, conosco scienziati computazionali piuttosto eccellenti che hanno poca o nessuna conoscenza o esperienza di programmazione effettiva. D'altra parte, la maggior parte degli scienziati computazionali che conosco sanno come programmare un computer.

Non esiste una risposta definitiva a quella parte della tua domanda. La domanda che ti devi porre è: ho un software disponibile per me che mi permetta di risolvere il mio problema, o fa parte del mio lavoro quello di scrivere il software che può risolvere il problema prima e poi usarlo per risolvere il problema reale. La risposta a questo determinerà se è necessario conoscere la programmazione o meno.


1

Domanda interessante, sto studiando scienze dei materiali computazionali e sono uno studente laureato con un background in fisica. Finora la quantità di programmazione che ho fatto è minima, ma questo parla da solo. Spesso, gli obiettivi specifici del tuo progetto determineranno l'esatta quantità di codifica che eseguirai. Se si tratta di un particolare composto che utilizza tecniche e software standard, nel peggiore dei casi si finirà per scrivere script Bash / Python per automatizzare le cose intorno al codice che si sta utilizzando. Sono dell'opinione che farai qualche programma per implementare le cose che cerchi di convalidare, quindi una risposta breve: non puoi parlare per la scienza computazionale, ma per la scienza materiale computazionale, la quantità di programmazione se determinata sarà determinata da il tuo progetto.


1

Risponderò alla seconda parte. Mentre ci possono essere molte sovrapposizioni tra uno scienziato computazionale generale e una X computazionale specializzata a seconda dell'interesse di una persona, la preoccupazione principale dello scienziato computazionale è l'introduzione di nuove tecniche computazionali per studiare un problema in un campo di dominio. Una novità nella tecnica computazionale può essere un nuovo calcolo che non era possibile a causa della mancanza di strumenti computazionali adeguati o di un modo più rapido. La X computazionale, invece, sarà interessata principalmente all'utilizzo di questi nuovi strumenti per studiare nuovi problemi. Quindi, in generale, uno scienziato computazionale presenterà prima di tutto un'affermazione del problema, spiegherà il quadro generale per risolverlo, imporrà alcune limitazioni sull'applicabilità dello strumento (velocità / errore, ecc.) E risolverà un problema come prova del concetto. Per quanto riguarda la prima parte,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.