A quale disciplina appartiene l'informatica? [chiuso]


15

L'informatica è matematica, ingegneria applicata, ingegneria, arte, filosofia? "Altro"?

Per fornire un background, ecco il post sul blog di Steven Wartik per Scientific American intitolato " Non sono un vero scienziato, e va bene ." L'articolo copre alcuni buoni argomenti per questa domanda, ma lascia aperto più di quanto non risponda.

Se riesci a pensare alla disciplina, come si adatterebbe l'informatica alla sua definizione? La disciplina per l'Informatica dovrebbe basarsi su ciò che fanno i programmatori o su ciò che fanno gli accademici ? Che tipo di risposte ricevi dalle persone che sembrano pensarci in profondità? Quali ragioni danno?


1
Sempre accademico ho incontrato chi dice che l'informatica è una scienza ha una ragione completamente diversa per spiegare il perché.
Macneil,

5
L'informatica è scienza politica con un po 'meno politica.
Giobbe

1
l'informatica è una branca della matematica applicata ... "scienza" implica l'uso del metodo scientifico, che non esiste in informatica; ma è stato chiamato quando ogni nuova disciplina voleva mettere la parola scienza alla fine del loro nome.
terra rossa

2
@ red-dirt Non è vero. Esiste un metodo scientifico in CompSci; hai esperimenti, prove formali, ecc. La maggior parte degli scienziati informatici hardcore si occupa di matematica e logica formale (vedi: calcolo lambda, problema di arresto, ecc. ecc.) e pubblica articoli su riviste peer-reviewed. Non confonderli con le persone che inventano "metodologie", che non sono scienziati secondo una definizione della parola.
Andres F.,

1
@ red-dirt Simile ad AndresF, sul lato più pratico dell'applicazione, il metodo scientifico di base (ipotesi, test, verifica, ripetizione) entra in gioco durante il debug - che di solito impiega la maggior parte del tempo impiegato a programmare.
Izkata,

Risposte:


30

Esistono due discipline IT distinte:

  • Informatica - è lo studio disciplinare dei computer e del calcolo usando il metodo scientifico.

  • Ingegneria del software - è la disciplina di progettazione e implementazione di software secondo i principi di ingegneria adeguati.

I due si sovrappongono in qualche modo, ma la distinzione riguarda davvero i risultati desiderati della scienza rispetto all'ingegneria. Il risultato desiderato di una disciplina scientifica è la conoscenza. Il risultato desiderato di una disciplina ingegneristica sono le cose che funzionano.

Quindi per rispondere alla tua domanda:

L'informatica è matematica, ingegneria applicata, ingegneria, arte, filosofia? "Altro"?

L'informatica è scienza ... se eseguita correttamente. Tuttavia, come altre discipline, CS si sovrappone a matematica, ingegneria, scienze fisiche, scienze sociali, filosofia e così via.

Vorrei anche aggiungere che ciò che fanno la maggior parte dei programmatori non è né informatica né ingegneria del software. È più simile a quello che fa un artigiano.

E purtroppo, né la scienza accademica del Computer né la professione di Ingegnere del Software sono rigorose quanto le più antiche discipline scientifiche e ingegneristiche. (Ci sono campi dell'informatica che sono tradizionalmente rigorosi; ad esempio quelli con una solida base matematica. Ma per molti campi, è semplicemente troppo difficile / costoso fare studi scientifici adeguati sulle questioni che contano davvero.)


1
C'è anche l'ingegneria dell'hardware - qualcuno deve progettare i computer fisici per l'esecuzione del software - e questa è davvero una (grande) sotto-disciplina dell'ingegneria elettronica.
Donal Fellows,

+1 per l'analogia con gli artigiani, mi sono reso conto che è il concetto più esatto per spiegare cosa fa un CS of Software Engineer. Ecco un link per il libro gratuito di O'Reilly a riguardo. apprenticeship-patterns.labs.oreilly.com/ch01.html
romeroqj

"E triste da dire, né la scienza accademica del Computer né la professione di Ingegnere del Software sono rigorose quanto le più antiche discipline scientifiche e ingegneristiche": non sono d'accordo con questa affermazione. Tra le altre cose, se l'informatica non fosse rigorosa, non avremmo progressi nei linguaggi di programmazione, nei compilatori (e in tutte le teorie del linguaggio formale), nella crittografia e così via. Tutte queste applicazioni hanno solide basi che sono state sviluppate principalmente nel mondo accademico.
Giorgio,

@Giorgio - È un peccato che tu non abbia letto quello che ho scritto immediatamente dopo la frase che hai citato ...
Stephen C,

@Stephen C: L'ho letto, e ancora non sono convinto che l'Informatica sia meno rigorosa di altre scienze (ma potrei sbagliarmi, ovviamente). O forse si dovrebbe prima definire ciò che si considera "scientifico" e "rigoroso" e cosa no, ma questo potrebbe richiedere una lunga discussione, immagino.
Giorgio,

12

I programmatori raramente "fanno l'informatica". Per lo più usano i risultati di "ingegneria del software", che è una disciplina ingegneristica, ovviamente.

A parte questo, l'Informatica è la matematica applicata. Se confronti CS con qualcosa di indubbiamente appartenente alla matematica applicata, noterai molta somiglianza.

Gli informatici progettano e studiano le modalità di calcolo (algoritmi), prendendo la maggior parte della teoria dalla matematica (logica, teoria dei grafi, combinatoria, ecc.) E contribuendo allo stesso tempo. Proprio come il resto della matematica applicata.

Valutano teoricamente le proprietà di questi modelli e algoritmi e portano avanti esperimenti di modellazione (scrivere programmi di test). Come i matematici applicati simulano il flusso di liquido nei tubi sui cluster, gli informatici usano i computer per sperimentare le implementazioni dei loro algoritmi. I risultati di questi esperimenti vanno direttamente in produzione: a una raffineria di petrolio o a un software per l'analisi delle scorte.

All'università che ho finito non esiste nemmeno un dipartimento speciale per l'informatica: tra gli altri settori non informatici, la cattedra di informatica fa parte del Dipartimento di matematica applicata.


ma in altre università, Informatica è un dipartimento separato all'interno della Facoltà di Matematica, un dipartimento della Facoltà di Ingegneria, la Facoltà di Scienze, o ... nessuna delle precedenti. Questi sono problemi amministrativi / organizzativi e hanno poco a che fare con il materiale reale dell'argomento.
Stephen C,

@Stephen, ecco perché ho specificato l'università, invece di dire "nella maggior parte delle università" o "in molte università" :-) Questo è solo un piccolo esempio, non l'essenza della risposta.
P:

1
certo è un "piccolo esempio", ma il mio punto è che non è un esempio rappresentativo, e non è nemmeno particolarmente rilevante per il tuo argomento. Per illustrare, l'Università in cui lavoro è in procinto di ristrutturare le Facoltà ... non a causa di una profonda riflessione su ciò che si riferisce a cosa ... ma al fine di ridurre i costi amministrativi . Qualche anno fa, le scuole CS ed Elec Eng furono riunite per lo stesso motivo .
Stephen C,

Come ho affermato nella mia risposta iniziale, l'informatica è una disciplina matematica applicata che si occupa della progettazione e dell'applicazione degli automi computazionali. La programmazione non è informatica. Il software è un mezzo con cui implementare gli automi computazionali senza estrarre un saldatore (qualsiasi programma può essere implementato usando la logica sequenziale e combinatoria dato abbastanza spazio). L'architettura von Neumann era diversa dalle architetture che l'hanno preceduta in quanto si tratta di un automa di uso generale che funge da base per la creazione di automi "soft" per scopi speciali.
bit-twiddler,

1
@ bit-twiddler - La tua definizione è troppo stretta. Esclude molte aree accademiche tradizionalmente classificate come "informatica".
Stephen C

5

Informatica è un termine che in questi giorni copre molte, molte cose:

  • I maestri artigiani lavorano per altri in base alle loro esperienze con i loro strumenti (e con apprendisti, ecc.).
  • Lo strumento ha inventato e creato nuovi strumenti per gli artigiani
  • I ricercatori hanno sviluppato nuove leghe e altri materiali - come la plastica - per i fabbri.
  • Gli scienziati teorici hanno capito come funzionano le cose in modo che i produttori di lega sappiano come funzionano i loro strumenti.

Nota come tutto quanto sopra ha nomi distinti anziché solo "scienziati informatici". La differenza è che l'Informatica è troppo nuova per essere definita.


Il punto 2 è più di un millepiedi da fabbro , ma questa risposta è giusta :)
ZJR

1

Innanzitutto, è scienza informatica . Si occupa di matematica dietro il calcolo.
Esistono altre discipline più orientate all'ingegneria.

La differenza è la stessa di tutte le discipline scientifiche e ingegneristiche correlate. Uno riguarda la precisione, l'altro sulla precisione. La scienza informatica è teorica, altre sono la scienza applicata ai problemi: branche dell'ingegneria.


1
Il MIT non è d'accordo con te eecs.mit.edu
Armand,

@Alison, correggi anche la voce wiki ( en.wikipedia.org/wiki/Computer_science ).
CMR,


0

L'informatica è una branca della matematica applicata che si occupa della progettazione e dell'applicazione di automi computazionali. L'ingegneria del software è il sottoinsieme appropriato dell'informatica che si occupa della progettazione e costruzione formale di codice per l'architettura von Neumann. L'architettura von Neumann è solo un modo per implementare una macchina informatica. Ad esempio, la macchina utilizzata per decifrare i messaggi con codifica Enigma non era una macchina von Neumann.

L'ingegneria del software è una disciplina professionale. L'informatica è una disciplina orientata alla ricerca. La maggior parte degli studenti di informatica finiscono nello sviluppo di software perché la ricerca richiede di possedere almeno un master, il che rafforza la convinzione che l'informatica sia un certificato di programmazione glorificato.


3
Non credo che molti scienziati informatici accademici accetterebbero una definizione di CS così stretta.
Stephen C,

0

La disciplina più precisamente chiamata "Informatica" è, nella maggior parte delle università che ho controllato, una scienza applicata, simile alle discipline ingegneristiche; se sei importante, ricevi un "BS" o "MS". La laurea in Texas Tech CS è stata offerta dal college di ingegneria. La disciplina, come insegnata, è per lo più teorica; impari il concetto di macchine di Turing, DA / NDA e altri concetti fondamentali secondo cui il programmatore "quotidiano" non deve davvero continuare a scuotere il cranio. Ottieni anche un pantload di matematica superiore; il Texas Tech CS laurea, e scommetterò anche molti altri, praticamente ti passa un minorenne di matematica per seguirlo. A ciò, la maggior parte delle tracce di laurea universitarie aggiungono un forte trattino di pratica applicazione di basso livello; impari un linguaggio assembly, un linguaggio di terza generazione,

Tuttavia, la maggior parte delle persone che programmano per vivere non sono "informatici"; sono, in senso stretto, "sviluppatori di software" o (quando si aggiunge in analisi / progettazione) "ingegneri del software"; quel lavoro è molto meno a livello di hardware (anche se devi conoscerne le basi), molta più analisi dei sistemi, progettazione e programmazione diretta. Molte università hanno una traccia diversa proprio per quello; alla Texas Tech si chiamava "Gestione dei sistemi di informazione" ed era laureata in economia aziendale (BBA / MBA). Quella traccia era più leggera in matematica superiore (ciò che dovevi sapere sull'algebra e sul calcolo differenziale / integrale è stato compresso in due semestri di "matematica aziendale" e non includeva il calcolo vettore / tensore, l'algebra lineare, ecc.), Molto più pesante su matematica finanziaria (un semestre ciascuno di statistiche e finanza, con due ciascuno di contabilità ed economia). Più leggero sui sistemi operativi, più pesante su tecnologie "stack" come database, web server, reti e amministrazione generale dei sistemi. Più leggero su linguaggi di basso livello, progettazione di circuiti e AI, più pesante su linguaggi di terza e quarta generazione, analisi dei sistemi e gestione del progetto. Mi sono laureato in Texas Tech e quando me ne sono andato avevo avuto almeno un semestre ciascuno di Java, VB, C # e linguaggi web (HTML / CSS / PHP), oltre a un anno di OOA & D e vari altri corsi nella gestione dei progetti IT.

Qual è la cosa migliore nel mondo reale? Ho ottenuto il MIS BBA, mio ​​fratello ha ottenuto il CS BS e siamo entrambi impiegati allo stesso livello di stipendio (adattamento al costo della vita) degli ingegneri software senior. Ha dovuto imparare molte delle OOA e D necessarie sul lavoro, oltre a girare abbastanza rapidamente in C # / Java dalle sue conoscenze di base in C ++. Da parte mia, vorrei avere i due semestri di studio concettuale dell'algoritmo che ha avuto mentre ero bloccato in corsi di gestione aziendale (sì, MIS è un grado di "Gestione", ma ho scoperto che il 99% della mia conoscenza di come gestire e non gestire altre persone è stato appreso con l'esempio).

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.