Informatica: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 83.139.201.13 (discussione), riportata alla versione precedente di Supernino
Aggiunta immagine di Alan Turing.
 
(720 versioni intermedie di oltre 100 utenti non mostrate)
Riga 1:
{{nota disambigua|l'azienda statunitense|Informatica (azienda)}}
{{F|informatica|novembre 2008}}
[[File:Alan Turing (1912-1954) in 1936 at Princeton University.jpg|miniatura|Ritratto di [[Alan Turing]], considerato il padre dell'informatica]]
[[File:Turing Machine.png|thumb|300px|right|Una rappresentazione artistica della [[macchina di Turing]]]]
[[File:Turing Machine.png|thumb|upright=1.4|Una rappresentazione artistica della [[macchina di Turing]]]]
L''''informatica''' (termine che deriva dal francese ''informatique'', contrazione di ''inform''azione autom''atica'') è la scienza che ha per oggetto lo studio dei fondamenti teorici dell'[[informazione]], della sua [[computazione]] a livello logico e delle tecniche pratiche per la loro [[implementazione]] e applicazione in sistemi elettronici [[automatica|automatizzati]] detti quindi ''[[sistemi informatici]]''.
 
L{{'}}'''informatica''' è la disciplina [[scienza|scientifica]] che si occupa dello studio dell'elaborazione delle [[informazione|informazioni]] e delle sue applicazioni pratiche. Più nel dettaglio, essa si concentra sulla rappresentazione, organizzazione e gestione automatica delle informazioni. Il termine ha origine dal francese ''informatique'', unione delle parole ''information'' (informazione) e ''automatique'' (automatica), e fu introdotto dal fisico francese [[Philippe Dreyfus]] nel 1962. Pur essendo una scienza autonoma, l'informatica è strettamente legata all'uso del calcolatore, che rappresenta uno dei principali strumenti per il suo sviluppo; l'evoluzione dell'informatica è infatti andata di pari passo con i progressi tecnologici dei [[computer]].<ref>{{Treccani|informatica|Informatica}}</ref>
== Aspetti tipici ==
In altri termini è frequentemente descritta come lo studio sistematico dei processi [[algoritmo|algoritmici]] che descrivono e trasformano l'informazione ed è quindi punto di incontro di almeno due discipline autonome: il progetto, la realizzazione e lo sviluppo di macchine rappresentatrici ed [[computer|elaboratrici]] di numeri (dunque l'[[elettronica]]) e i metodi di risoluzione algoritmica di problemi dati ([[algoritmica]]), che sfruttino a pieno le capacità di processamento offerte dalle macchine elaboratrici stesse per l'ottenimento di determinati risultati in [[output]] a partire da determinati dati in [[input]].
La domanda principale che sostiene l'informatica è dunque: "''Come si può automatizzare efficientemente un determinato processo?''".
 
Si accompagna e si integra o è di supporto a tutte le discipline scientifiche e, come [[tecnologia]], pervade pressoché qualunque "mezzo" o "strumento" di utilizzo comune e quotidiano, tanto che (quasi) tutti siamo in qualche modo utenti di servizi informatici. La valenza dell'informatica in termini socioeconomici ha scalato in pochi anni la [[piramide di Anthony]], passando da operativa (in sostituzione o a supporto di compiti semplici e ripetitivi), a tattica (a supporto della pianificazione o gestione di breve termine), a strategica. In tale ambito, l'informatica è diventata talmente strategica nello [[sviluppo economico]] e sociale delle popolazioni che il non poterla sfruttare, uno status ribattezzato con l'espressione [[divario digitale]], è un problema di interesse planetario.
L'informatica, assieme all'[[elettronica]] e alle [[telecomunicazioni]] unificate insieme sotto la denominazione [[Information and Communication Technology]], rappresenta quella disciplina e allo stesso tempo quel [[settore economico]] che ha dato vita e sviluppo alla [[terza rivoluzione industriale]] attraverso quella che è comunemente nota come [[rivoluzione informatica]].
 
Assieme all'[[elettronica]] e alle [[telecomunicazioni]], unificate insieme sotto la denominazione [[tecnologie dell'informazione e della comunicazione]] (TIC), rappresenta quella disciplina e allo stesso tempo quel [[settore economico]] che ha dato vita e sviluppo alla [[terza rivoluzione industriale]], attraverso quella che è comunemente nota come [[rivoluzione informatica|rivoluzione digitale]].
 
== Etimologia e significato ==
[[File:Columbia Supercomputer - NASA Advanced Supercomputing Facility.jpg|thumb|upright=1.4|Il [[Columbia (supercomputer)|supercomputer Columbia]] della [[NASA]] nel NASA Advanced Supercomputing facility]]
{{quote|L'informatica non riguarda i computer più di quanto l'astronomia riguardi i telescopi.|[[Edsger Dijkstra|Edsger Wybe Dijkstra]]}}
 
L'etimologia italiana della parola "informatica" proviene dal [[lingua francese|francese]], dalla compressione di ''inform(ation electronique ou autom)atique'', e sicuramente [[Philippe Dreyfus]], che per primo utilizza nel [[1962]] il termine ''[[w:fr:informatique|informatique]]'' (informatica) voleva intendere il trattamento automatico dell'informazione mediante calcolatore (naturale o artificiale).
Il termine italiano "informatica" derivava da quello francese "informatique", contrazione di ''informat(ion) (automat)ique'', coniato da [[Philippe Dreyfus]] nel 1962.<ref group="N">Ma nel 1957 l'informatico tedesco Karl Steinbuch aveva già coniato la parola «Informatik», pubblicando un documento chiamato ''Informatik: Automatische Informationsverarbeitung''.</ref><ref>{{Cita web|url=http://www.treccani.it/vocabolario/informatica/|titolo=informàtica in Vocabolario - Treccani|accesso=29 settembre 2017}}</ref><ref name="SIA">{{Cita web|url=http://www.lemonde.fr/cgi-bin/ACHATS/685238.html|titolo=Informatique|autore=Alain Le Diberder|sito=LeMond.fr|data=24 gennaio 2001|lingua=fr|accesso=25 marzo 2016}}</ref><ref name=":4" /> Il primo utilizzo italiano risale al 1968.<ref name=":4">{{Cita libro|nome=Francesco|cognome=Sabatini|nome2=Vittorio|cognome2=Coletti|titolo=Il Sabatini Coletti dizionario della lingua italiana 2008. Con CD-ROM|url=https://www.amazon.it/Sabatini-Coletti-dizionario-lingua-italiana/dp/8852501738/ref=sr_1_1?ie=UTF8&qid=1506769491&sr=8-1&keywords=sabatini+coletti+dizionario|accesso=30 settembre 2017|data=31 luglio 2007|editore=Rizzoli Larousse|ISBN=978-88-525-0173-9}}</ref>
Da notare il fatto che in lingua inglese non esista l'equivalente di "informatica" ma venga utilizzato il termine "computer science" che, ad ogni modo, presuppone l'esistenza della figura dello scienziato e del [[ricercatore]] [[interesse|interessato]] all'approfondimento della [[conoscenza]] della tecnologia dell'elaborazione.
 
Nei paesi anglofoni, "informatica" si dice "computer science", espressione che appare per la prima volta in un articolo del 1959 in ''[[Communications of the ACM]]''<ref name=":0">{{Cita pubblicazione|nome=Louis|cognome=Fein|data=September 1959|titolo=The Role of the University in Computers, Data Processing, and Related Fields|rivista=Commun. ACM|volume=2|numero=9|pp=7-14|accesso=29 settembre 2017|doi=10.1145/368424.368427|url=http://doi.acm.org/10.1145/368424.368427 | issn = 0001-0782}}</ref>, nel quale [[Louis Fein]] discute la creazione di una ''Graduate School in Computer Sciences'' analoga alla [[Harvard Business School]], giustificando il nome dicendo che, come la ''management science'', la ''computer science'' è per sua natura una materia di studio applicata e interdisciplinare, avendo allo stesso tempo le caratteristiche tipiche di una disciplina accademica.<ref name=":0" /> I suoi sforzi, e quelli di altri come l'analista numerico [[George Forsythe]], saranno ricompensati: le università istituiranno tali corsi, a partire da [[Università Purdue|Purdue]] nel 1962.<ref group="N">Durante i primi giorni del calcolo automatico, fu suggerito un gran numero di termini per i praticanti di tale campo in ''Communications of the ACM'' ‒ "turingeer", "turologist", "flow-charts-man", "applied meta-mathematician", e "applied epistemologist". Tre mesi dopo, nello stesso giornale, fu suggerito "comptologist", seguito nell'anno successivo da "hypologist". Fu suggerito anche il termine "computics".</ref><ref>{{Cita web|url=http://www.stanford.edu/dept/ICME/docs/history/forsythe_knuth.pdf|titolo=George Forsythe and the Development of Computer Science|autore=Donald E. Knuth|data=20 ottobre 2013|accesso=29 settembre 2017|urlmorto=sì|urlarchivio=https://web.archive.org/web/20131020200802/http://www.stanford.edu/dept/ICME/docs/history/forsythe_knuth.pdf|dataarchivio=20 ottobre 2013}}</ref> In Gran Bretagna è utilizzato anche il termine "informatics".
 
Il calcolatore, lo strumento base dell'informatica, è diventato insostituibile nei campi più disparati della vita e della scienza, grazie alla velocità di calcolo e alla notevole flessibilità della sua architettura-tipo, il [[Architettura di von Neumann|modello di Von Neumann]]. È importante anche notare il differente significato di origine tra queste tre lingue nel denominare il computer:<ref>{{Cita libro|nome=Carlo|cognome=Sansotta|titolo=Nozioni di Informatica|url=https://books.google.it/books?id=u05tAwAAQBAJ&pg=PA1&lpg=PA1&dq=etimologia+informatica&source=bl&ots=-_zz7myeZb&sig=nXj_-S1yeNMuQ2KobsqtU3QzwJI&hl=it&sa=X&ved=0ahUKEwix4IzGs8rWAhXHiRoKHbnzA0YQ6AEIZTAI#v=onepage&q=etimologia%20informatica&f=false|accesso=29 settembre 2017|data=2011|editore=Lulu.com|ISBN=978-1-4709-2502-4}}</ref>
* ''[[elaboratore elettronico|elaboratore]]'' (o ''[[Calcolatore#Calcolatore elettronico|calcolatore]]''), in italiano, per le sue svariate capacità di elaborazione (anche se oggi il termine più utilizzato è computer);
* ''ordinateur'', in francese, a sottolineare le sue capacità di organizzare i dati e le informazioni;
* ''[[computer]]'', in inglese, letteralmente "calcolatore", in diretta discendenza delle calcolatrici, prima meccaniche, poi elettromeccaniche, poi elettroniche.
Il principio fondamentale dell'informatica, che è anche il significato della parola stessa, è che attraverso un calcolatore l'[[utente]] ottiene [[Informazione|informazioni]] a partire da [[Dato|dati]], per mezzo di una [[Electronic data processing|elaborazione automatica]] (mediante una procedura stabilita in precedenza, cioè il [[Programma (informatica)|programma]]<ref>{{Cita web|url=http://www.treccani.it/vocabolario/programma/|titolo=programma in Vocabolario - Treccani|accesso=29 settembre 2017}}</ref>). Il [[programmatore]] organizza e scrive le [[Istruzione (informatica)|istruzioni]] del programma (attraverso specifici [[Linguaggio di programmazione|linguaggi di programmazione]]), il programma viene installato su un calcolatore e infine quest'ultimo ne esegue le istruzioni programmate, rispondendo agli input dell'utente. Un [[input]] è una immissione, inserimento, ingresso di dati, a cui segue l'elaborazione, che si conclude con l'[[Input/output|output]], ovvero un'uscita di informazioni organizzate in modo tale da trarne [[conoscenza]].<ref name=":2">{{Cita libro|nome=Fiorenzo|cognome=Formichi|nome2=Giorgio|cognome2=Meini|nome3=Ivan|cognome3=Venuti|titolo=Corso di informatica. Per le Scuole superiori. Con espansione online: 1|url=https://www.amazon.it/informatica-Scuole-superiori-espansione-online/dp/8808161803/ref=sr_1_2?s=books&ie=UTF8&qid=1506702941&sr=1-2&keywords=corso+di+informatica+meini|accesso=29 settembre 2017|data=1º gennaio 2012|editore=Zanichelli|ISBN=978-88-08-16180-2}}</ref> Dunque, l'attività di un calcolatore è essenzialmente l'esecuzione di calcoli logico-aritmetici, che vengono svolti eseguendo istruzioni precedentemente impartitegli da un programmatore.
 
Il calcolatore non è dotato di una qualche forma di [[autocoscienza]], poiché possiede una forma di [[intelligenza]] ''sui generis'' che prescinde dalla [[consapevolezza]]. Secondo [[Yuval Noah Harari]] non occorre, per portare a termine un compito che richiede l'elaborazione di dati, che un dispositivo di calcolo restituisca un risultato valutando anche [[Esperienza|esperienze]] [[Soggetto (filosofia)|soggettive]].<ref name=":1">{{Cita libro|nome=Yuval Noah|cognome=Harari|titolo=Homo deus. Breve storia del futuro|url=https://books.google.it/books?id=qXc2ngAACAAJ&dq=homo+deus&hl=it&sa=X&ved=0ahUKEwjX8rfAocrWAhXBPxoKHbRRCY4Q6AEIKTAA|accesso=29 settembre 2017|data=2017|editore=Bompiani|ISBN=978-88-452-9279-8}}</ref> Egli scrive che «oggi stiamo sviluppando nuovi tipi di intelligenza non cosciente che possono portare a termine tali compiti [giocare a scacchi, guidare automobili, ecc.] in modo assai più efficace degli umani, poiché tutti questi compiti sono basati sul [[riconoscimento di pattern]]», e che «le esperienze soggettive di un tassista in carne e ossa sono infinitamente più ricche di quelle di un'[[Autovettura autonoma|auto a guida autonoma]], che non prova assolutamente nulla. [...] Ma il sistema non ha bisogno di niente di tutto questo da un tassista. Tutto quello che vuole davvero è che i passeggeri siano portati dal punto A al punto B nel modo più veloce, sicuro ed economico possibile. E l'auto a guida autonoma sarà presto in grado di fare meglio di un conducente umano, anche se non può godere della musica o rimanere impressionata dalla magia dell'esistenza».<ref name=":1" />
È importante anche notare il differente significato di origine tra queste tre lingue nel denominare lo strumento base dell'informatica:
* ''elaboratore'' (o ''calcolatore''), in italiano, per le sue svariate capacità di elaborazione;
* ''ordinateur'', in francese, a sottolineare le sue capacità di organizzare i dati (oggi le informazioni);
* ''computer'', in inglese, letteralmente calcolatore, in diretta discendenza delle calcolatrici, prima meccaniche, poi elettromeccaniche, poi elettroniche.
 
Una branca specifica dell'informatica, l'[[intelligenza artificiale]] (IA), si occupa di creare tecniche, [[Algoritmo|algoritmi]] e programmi atti a simulare processi di [[pensiero]] e [[ragionamento]]. Queste tecniche non sono meno algoritmiche e deterministiche nei loro esiti di quelle usate in altri settori dell'informatica, tuttavia hanno il potenziale di catturare conoscenza e farne uso per fornire risposte spesso di qualità superiore a quella ottenibile mediante l'uso di esperti umani. Secondo i filosofi, l'intelligenza artificiale delle macchine non è vera e propria intelligenza, in quanto a esse mancano la coscienza di essere-nel-mondo e un rapporto concreto con l'ambiente circostante, caratteristiche tipiche dell'essere umano<ref>{{Cita libro|autore=Giovanni Fornero|autore2=Franco Restaino|titolo=Storia della Filosofia. Il pensiero contemporaneo: il dibattito attuale|anno=2006|editore=Gruppo Editoriale L'Espresso|volume=9}}</ref> e secondo il fisico computazionale [[Federico Faggin]], degli organismi biologici in generale.<ref>Federico Faggin, ''Irriducibile. La coscienza, la vita, i computer e la nostra natura'', Milano, Mondadori, 2022, ISBN 9788804739036</ref>
È importante tenere a mente che, a dispetto di quanto molto comunemente si ritiene, quella dei computer '''non''' è affatto classificabile come intelligenza. L'elaboratore non fa altro che eseguire istruzioni preventivamente "impartitegli" da un essere umano. Ciononostante, il computer è diventato insostituibile nei campi più disparati della vita e della scienza, grazie alla velocità di calcolo e alla notevole flessibilità della sua architettura-tipo, il [[Architettura di von Neumann|modello di Von Neumann]].
 
Di recente lo studio dell'informatica ha anche assunto rilevanza multidisciplinare nel cercare di chiarire o giustificare processi e sistemi complessi del mondo reale, quali ad esempio la capacità del [[cervello]] umano di generare pensieri a partire da interazioni molecolari (studi facenti capo alla [[bioinformatica]]).
Una branca specifica dell'informatica, l'[[intelligenza artificiale]] (AI), si occupa di creare tecniche, algoritmi e programmi atti a simulare processi di pensiero e ragionamento. Queste tecniche non sono meno algoritmiche e deterministiche nei loro esiti di quelle usate in altri settori dell'informatica, e tuttavia hanno il potenziale di catturare conoscenza e farne uso per fornire risposte spesso di qualità superiore a quella ottenibile mediante l'uso di esperti umani.
 
== Storia ==
{{vedi anche|Storia dell'informatica|Storia del computer}}
[[File:History of math3.jpg|thumb|Vari strumenti di calcolo antecedenti al moderno computer]]
Oggi "informatica" è un termine di uso comune ma dai contorni ben poco definiti.<br />
Come scienza si accompagna, si integra, o è di supporto a tutte le discipline scientifiche e non; come tecnologia pervade pressoché qualunque "mezzo" o "strumento" di utilizzo comune e quotidiano, tanto che (quasi) tutti siamo in qualche modo utenti di servizi informatici.
 
La [[storia dell'informatica]] comincia ben prima dell'invenzione del computer moderno. Infatti, già l'[[abaco]] (anch'esso un dispositivo analogico, ma ovviamente di minima complessità) veniva utilizzato nell'[[Storia antica|antichità]] per fare le semplici [[Operazione aritmetica|quattro operazioni]]. Si riscontrano anche altri dispositivi automatici come le [[Erone di Alessandria|macchine di Erone]], gli [[Automa meccanico|automi]] di alcuni ingegneri arabi nel [[Medioevo]], l'[[automa cavaliere]] di [[Leonardo da Vinci]]. Fu proprio un matematico arabo, [[Muḥammad ibn Mūsā al-Khwārizmī]], a sistematizzare l'[[algebra]] (non ancora binaria); dal suo nome sarà coniato il termine "[[algoritmo]]", che sta a indicare una sequenza finita di operazioni.
La ''valenza'' dell'informatica in termini socio-economici ha scalato in pochi anni la ''[[piramide di Anthony]]'', passando da ''operativa'' (in sostituzione o a supporto di compiti semplici e ripetitivi), a ''tattica'' (a supporto della pianificazione o gestione di breve termine), a ''strategica''.
 
L'orologio calcolatore di [[Wilhelm Schickard|Schickhard]] (1592-1635), la [[pascalina]] di [[Blaise Pascal|Pascal]] (1623-1662), la [[Stepped Reckoner]] di [[Gottfried Wilhelm von Leibniz|Leibniz]] (1646-1716), sono stati i primi [[Calcolatore analogico|calcolatori analogici]] utilizzati come strumenti ausiliari per i [[Calcolo (matematica)|calcoli matematici]]. [[Charles Babbage|Babbage]] (1791-1871) ideò una macchina per il calcolo automatico di grande complessità, la [[macchina differenziale]], che riuscì a realizzare tra mille difficoltà, anche per i limiti della [[Meccanica classica|meccanica]] del tempo. Grazie a un metodo detto delle differenze, particolarmente adatto a essere espresso in termini meccanici, Babbage creò un sistema per l'esecuzione automatica dei calcoli necessari per la compilazione delle [[tavole matematiche]]. Ideò poi, partendo dalle schede perforate del francese [[Joseph-Marie Jacquard|Jacquard]], una nuova macchina, la [[macchina analitica]]: per essa, identificò un'unità di calcolo numerico (noi diremmo un [[CPU|processore]]), una [[Unità di controllo (informatica)|unità di controllo]] dell'esecuzione, una [[Memoria (informatica)|memoria]] per conservare i risultati intermedi e un dispositivo di uscita per visualizzare il risultato del calcolo.
A questo proposito è importante ricordare che l'informatica è diventata talmente strategica nello sviluppo economico e sociale delle popolazioni che il non poterla utilizzare, uno status battezzato con il termine ''[[digital divide]]'', è un problema di interesse planetario.
 
I padri dell'informatica moderna sono [[John von Neumann]] (1903-1957) e [[Alan Turing]] (1912-1954). Al primo si deve l'organizzazione concettuale del moderno calcolatore, oggi nota come [[architettura di von Neumann]]; al secondo invece dobbiamo studi sulla [[crittografia]] (disciplina già avviata nei secoli precedenti) e la formalizzazione della [[Macchina di Turing]], il modello di "macchina" fondamento teorico di ogni moderno sistema programmabile.<ref name=":2" />
== Descrizione e ambiti ==
===Informatica pratica e informatica teorica===
Esistono frange di persone che confondono l'informatica con aree vocazionali che tipicamente riguardano l'utilizzo di software applicativo e che comprendono il semplice utilizzo di programmi per l'ufficio, il navigare sul [[web]] o il [[gioco|gaming]]. L'informatica invece vede editor di testo, [[browser]] e videogame come semplici strumenti di lavoro o svago. Quello che interessa, nell'informatica pura, non è tanto saper usare i cosiddetti applicativi per come essi si presentano, quanto piuttosto capirne, tramite ad esempio l'analisi del [[codice sorgente]], la struttura ed eventualmente saperla migliorare con l'uso di algoritmi più efficienti sotto diversi criteri (uso di memoria, numero di istruzioni, parallelismo, ...).
Nelle [[università]] esistono dei dipartimenti e dei corsi di [[Informatica (università)|Informatica]].
Un informatico dovrebbe sempre avere un interesse genuino per i fondamenti teorici dell'informatica; che poi, per professione o per passione, spesso faccia lo sviluppatore di software è possibile ma, potendo sfruttare le proprie capacità di ''[[problem solving]]'' in diversi ambiti, non è scontato. In ogni caso l'informatica, almeno nella sua parte applicativa, è una disciplina fortemente orientata al problem solving.
 
Si vedano le voci: ''[[Cronologia dei computer dal 1950 al 1979]]'', ''[[Cronologia dei computer dal 1980 al 1989]]'', ''[[Cronologia dei computer dal 1990 al 1999]]'', ''[[Cronologia dei computer dal 2000 al 2009]]'', ''[[Cronologia dei computer dal 2010 al 2019]]''.
I fondamenti teorici della disciplina discendono quindi direttamente dalla [[matematica]] ([[matematica discreta]]), a cui l'informatica è strettamente legata, ed è anche per tale motivo che di recente lo studio dell'informatica ha assunto rilevanza multidisciplinare nel cercare di chiarire o giustificare processi e sistemi complessi del mondo reale, quali ad esempio la capacità del [[cervello]] umano di generare [[pensiero|pensieri]] a partire da interazioni molecolari (studi facenti capo alla [[bioinformatica]]).
 
== Caratteristiche ==
In particolare l'informatica spazia in diversi campi più ristretti: lo studio dei [[linguaggio formale (matematica)|linguaggi formali]] e degli [[automa (informatica)|automi]], che riguarda anche i [[compilatore|compilatori]]; lo studio della [[complessità computazionale]], in particolar modo per la minimizzazione del numero di istruzioni da eseguire per la risoluzione di un problema e per la ricerca di algoritmi approssimati per risolvere problemi [[NP-difficile|NP-difficili]]; la [[crittologia]], la scienza che studia i metodi per rendere un messaggio incomprensibile a chi non sia in possesso di una chiave di lettura del messaggio stesso; la [[teoria dei codici]], utilizzata per la [[compressione dati]] o per aumentare l'[[integrità dei dati]]; la [[ricerca operativa]], per fornire strumenti matematici di supporto alle attività decisionali; la [[computer grafica]], suddivisa a sua volta in [[bitmap|grafica bitmap]] e [[grafica vettoriale]]; citando solo alcuni sottocampi.
=== Descrizione ===
[[File:Operating_system_placement-it.svg|thumb|Schema di astrazione ed esecuzione dall'utente all'[[hardware]] passando per il [[software]] e il [[sistema operativo]]]]
 
Esistono frange di persone che confondono l'informatica con aree professionali che tipicamente riguardano l'utilizzo dei programmi per l'ufficio (come [[Microsoft Office]]), la navigazione sul [[World Wide Web|web]] o il [[Videogioco|gaming]]. In realtà, l'informatica vera e propria (che si distingue in [[Informatica teorica|teorica]] e applicata) è lo studio di [[Funzione (informatica)|procedure]], [[Algoritmo|algoritmi]] e [[Linguaggio di programmazione|linguaggi]] capaci di permettere a una macchina di eseguire operazioni in modo automatico, e perciò richiede notevoli conoscenze e competenze in materie di studio come la [[matematica]], [[logica]], [[linguistica]], [[psicologia]], nonché [[elettronica]], [[Scienza dell'automazione|automatica]], [[telematica]], e altre. Mentre occorrono notevoli conoscenze tecniche per appartenere alla categoria degli [[Informatico|informatici di professione]], per appartenere a quella degli [[Utente|utenti finali]] ne occorrono decisamente di meno&nbsp;– talvolta solo il minimo indispensabile&nbsp;– e questo grazie al lavoro dei primi, costantemente orientato a rendere sempre più semplice l’uso del computer per tutti.<ref name=":2" /> Un informatico dovrebbe sempre avere un interesse genuino per i fondamenti teorici dell'informatica; che poi, per professione o per passione, spesso faccia lo [[Sviluppatore software|sviluppatore di software]] è possibile ma, potendo sfruttare le proprie capacità di [[problem solving]] (soluzione di problemi) in diversi ambiti, non è scontato. In ogni caso l'informatica, almeno nella sua parte applicativa, è una disciplina fortemente orientata al problem solving.
===Dettaglio ambiti===
Nel dettaglio le discipline informatiche sono:
 
L'informatica, oggi autonoma disciplina di studio, nasce dal convergere di differenti campi disciplinari che, per vie diverse, si sono posti il problema di come automatizzare il calcolo, cioè la manipolazione di [[Simbolo|simboli]] attraverso determinate regole, rendendolo eseguibile da una macchina.<ref name=":5">{{Cita libro|autore=[[Walter Maraschini]]|autore2=[[Mauro Palma]]|titolo=Enciclopedia della Matematica|anno=2014|editore=Corriere della Sera|volume=A-L}}</ref> Ma i fondamenti teorici della disciplina discendono direttamente dalla [[matematica]] ([[matematica discreta]]), a cui l'informatica è strettamente legata. L'informatica vera e propria spazia tra diversi campi più ristretti: lo studio dei [[linguaggi formali]] e degli [[automa (informatica)|automi]], che riguarda anche i [[compilatore|compilatori]]; lo studio della [[complessità computazionale]], in particolar modo per la minimizzazione del numero di [[Istruzione (informatica)|istruzioni]] da eseguire per la risoluzione di un problema e per la ricerca di algoritmi approssimati per risolvere problemi [[NP-difficile|NP-difficili]]; la [[crittologia]], la scienza che studia i metodi per rendere un messaggio incomprensibile a chi non sia in possesso di una chiave di lettura del messaggio stesso; la [[teoria dei codici]], utilizzata, ad esempio, per la [[compressione dati]] o per cercare di garantire l'[[integrità dei dati]]; la [[ricerca operativa]], per fornire strumenti matematici di supporto alle attività decisionali; la [[computer grafica]], suddivisa a sua volta in [[bitmap|grafica bitmap]] e [[grafica vettoriale]]; citando solo alcuni sottocampi. Un caso particolare o sottoinsieme di informatica d'uso è l'[[informatica aziendale]].
{{div col|cols=3}}
*[[Algoritmica]]
*[[Teoria della Calcolabilità algoritimica]]
*[[Complessità computazionale|Teoria della Complessità computazionale]]
*[[Teoria della complessità algoritmica|Complessità di Kolmogorov]]
*[[Complessità della Comunicazione]]
*[[Struttura dati|Strutture dati]]
*[[Teoria dei linguaggi e degli automi]]
*[[Semantica (informatica)|Semantica Formale]]
*[[Teoria dell'Informazione]]
*[[Crittografia]]
*[[Teoria dei codici]]
*Ottimizzazione combinatoriale
*Combinatorica per l'informatica e analisi degli algoritmi
*[[Apprendimento automatico|Machine Learning]]
*Teoria algoritmica dei Giochi
*[[Calcolo parallelo|Computazione Parallela]]
*Teoria dei Linguaggi di programmazione
*[[Computer_a_DNA|DNA Computing]]
*[[informatica quantistica|Quantum Computing]]
*[[Computer grafica|Computer Graphics]]
*[[Bioinformatica]]
*[[Geometria computazionale]]
*Algoritmi di Approssimazione
*Algoritmi randomizzati
*Teoria dei numeri computazionale
*Computational Machine Learning Theory
*[[Ricerca operativa]]
*[[Intelligenza artificiale]]
*[[Basi di dati]]
{{div col end}}
 
=== Terminologia di base ===
Dallo studio dei linguaggi formali e degli automi provengono quelle conoscenze che permettono la progettazione di [[linguaggio di programmazione|linguaggi di programmazione]] e di [[compilatore|compilatori]] le cui finalità sono quelle di poter fornire gli strumenti essenziali per sviluppare il [[software]] di base, come il [[sistema operativo]], e quello applicativo (editor di testo, browser, etc.) e, di conseguenza, di rendere il [[computer]] universalmente accessibile alle persone.
Data l'ampiezza del trattare l'informatica è quindi necessario definire, sia pure a grandi linee un quadro generale entro il quale comprendere la materia. Pertanto questa sezione cerca di essere un glossario introduttivo dell'intera disciplina.
 
* '''Algebra di Boole''' – [[George Boole]] ha introdotto una vera e propria rivoluzione nel mondo della [[logica]], che prima di lui per due millenni era rimasta ancorata a quella codificata da [[Aristotele]].<ref name=":6">{{Cita libro|curatore=Paolo Freguglia|titolo=Boole|collana=Grandangolo Scienza|anno=2016|editore=Corriere della Sera|volume=29}}</ref> Ha fondato l'[[algebra della logica]], creando un sistema nel quale è possibile trattare ogni relazione logica attraverso l'utilizzo di formule algebriche. Le operazioni (come l'[[addizione]], la [[sottrazione]] e la [[moltiplicazione]]) vengono sostituite da [[Connettivo logico|operazioni logiche]] con valori di [[Congiunzione logica|congiunzione]], [[Disgiunzione logica|disgiunzione]] e [[Negazione (matematica)|negazione]], mentre gli unici numeri utilizzati, 1 e 0, assumono rispettivamente i significati di vero e falso. Circa settant'anni dopo la morte del suo ideatore, negli anni trenta del Novecento, la [[Algebra di Boole|logica booleana]] ha dato vita a una nuova (e ancor più vasta) rivoluzione quando un altro logico, nonché ingegnere elettronico, [[Claude Shannon]], ha avuto l'idea di applicarla ai [[Circuito elettronico|circuiti elettronici]], creando così quella che è tuttora la base di funzionamento logico dei [[computer]]<ref name=":6" /> (vedi ''[[Algebra di Boole]]'').
Basata sull'informatica è anche l'implementazione logica dei sistemi di [[telecomunicazioni]] almeno per ciò che riguarda l'implementazione dei [[protocollo di rete|protocolli di rete]] attraverso software per le telecomunicazioni.
* '''Algoritmo''' – un algoritmo è un procedimento sistematico di calcolo, che risolve un determinato problema attraverso una sequenza finita di passi elementari.<ref name=":5" /> Il termine deriva dalla trascrizione latina del nome del matematico persiano [[al-Khwarizmi]], che è considerato uno dei primi autori ad aver fatto riferimento a questo concetto. L'algoritmo è un concetto fondamentale dell'informatica, anzitutto perché è alla base della nozione teorica di [[calcolabilità]]: un problema è calcolabile quando è risolvibile mediante un algoritmo. Inoltre, l'algoritmo è un concetto cardine anche della fase di [[Programmazione (informatica)|programmazione]] dello [[Ciclo di vita del software|sviluppo di un software]]: preso un problema da automatizzare, la programmazione costituisce essenzialmente la traduzione o [[codifica]] di un algoritmo per tale problema in [[Programma (informatica)|programma]], scritto in un certo [[linguaggio]], che può essere quindi effettivamente [[Esecuzione (informatica)|eseguito]] da un [[calcolatore]] rappresentandone la logica di [[Elaborazione dati|elaborazione]] (vedi ''[[algoritmo]]'').
* '''Applicazione''' – l'espressione "applicazione informatica" indica un programma che specializza il funzionamento di un computer in una determinata attività (per esempio il ''word processor'', cioè l'elaboratore di testi, è il tipo di applicazione più diffusa nei personal computer).<ref name=":4" /> Le prime applicazioni pratiche si ebbero tra la fine degli [[anni 1960|anni sessanta]] e inizio [[anni 1970|anni settanta]], nelle grandi aziende, e in generale nelle grandi organizzazioni pubbliche o private, laddove soluzioni informatiche abbastanza semplici permettevano significativi risparmi di tempo nelle operazioni quotidiane e di routine. Basti ricordare [[Istituto nazionale della previdenza sociale|INPS]] (a lungo capofila dell'informatica italiana), [[Banca d'Italia]], [[Alitalia]], [[Eni]], [[Montedison]], [[Enel]]. Con gli anni, e con uno sviluppo sempre più veloce delle capacità di elaborazione in parallelo all'abbassamento dei costi, l'informatica ha pervaso qualsiasi settore, fino alla vita quotidiana e all'intrattenimento personale (vedi ''[[Applicazione (informatica)|Applicazione informatica]]'').
* '''Bit''' – è l'unità elementare dell'[[informazione]] trattata dagli elaboratori digitali; può assumere due valori, convenzionalmente indicati dalle [[Cifra|cifre]] 0 e 1. È l'abbreviazione di ''binary digit'', ovvero "cifra binaria" (vedi ''[[bit]]'').
* '''Byte''' – è l'unità di informazione costituita da 8 bit, usata come [[unità di misura]] della capacità di [[Memoria (informatica)|memoria]] di un sistema di elaborazione (vedi ''[[byte]]'').
* '''Computazione''' – procedimento di calcolo completamente specificato, cioè composto da un numero finito di operazioni elementari o a loro volta scomponibili in operazioni elementari.<ref name=":5" /> La computazione di una [[Funzione (informatica)|funzione]], cioè il calcolo del suo valore in corrispondenza di particolari valori in ingresso, è effettuata attraverso un [[algoritmo]] espresso in un determinato [[linguaggio formale]]<ref name=":5" /> (vedi ''[[computazione]]'').
* '''Database''' – struttura complessa di organizzazione di [[Dato|dati]], che permette l'inserimento di nuovi dati e la rimozione di vecchi, nonché la modifica dei dati stessi, il loro aggiornamento e la loro elaborazione.<ref name=":5" /> L'unità informativa elementare del database è il ''[[Record (database)|record]]'', inteso come stringa organizzata in campi per consentire l'archiviazione di un gran numero di informazioni anche di diverso tipo. Il record è, infatti, un insieme costituito da un numero finito di elementi, detti ''[[Campo (database)|campi del record]]'', ciascuno dei quali viene identificato da una stringa alfanumerica (vedi ''[[base di dati]]'').
* '''File''' – un file è un insieme di informazioni omogenee, codificate in formato [[Digitale (informatica)|digitale]], logicamente correlate e registrate su un supporto di [[memoria di massa]] di un elaboratore ([[disco rigido]], [[DVD]], [[chiave USB]], ecc.).<ref name=":5" /> I file sono tutti binari, ma possono memorizzare entità diverse e si classificano a seconda del tipo di informazioni cui si riferiscono: un [[programma eseguibile]], un [[documento di testo]], un'[[Immagine digitale|immagine]], un [[suono]], un [[video]] (vedi ''[[file]]'').
* '''Hardware''' – nell'informatica pionieristica degli [[anni 1960|anni sessanta]] questo termine inglese, letteralmente "ferramenta" (il significato letterale è "merce dura"), ben si prestava a indicare le macchine utilizzate. L'hardware informatico è strettamente legato all'[[elettronica]] ([[elettronica analogica|analogica]] e [[elettronica digitale|digitale]]) di cui si avvale per la [[progettazione]] e realizzazione dei relativi sistemi. All'hardware appartiene anche il settore della [[rete di computer]] e apparati relativi. Anche con la sostituzione delle [[Tubo a vuoto|valvole termoioniche]] in favore dei [[transistor]] e poi dei primi circuiti integrati MOS, tali macchine erano composte da telai e pannelli metallici robusti tutti rigorosamente assemblati mediante bullonature vistose, per contenere i preziosissimi e delicatissimi circuiti elettronici che erano il cuore degli elaboratori e delle prime periferiche di base. Oggi, quando risulta difficile ritenere ferramenta un mouse o una webcam, il termine è rimasto più che altro per distinguere tutto ciò che è ''macchina'', ''apparecchiatura'', dai programmi (il software) per far funzionare la macchina o lo strumento. In pratica l'hardware è tutto ciò che è palpabile e visibile con gli occhi, come un disco rigido, un monitor, un cavo, un'antenna, lo stesso involucro di un PC. Altri termini descrittivi generali possono essere: risorse fisiche e materiali (vedi ''[[hardware]]'').
* '''Informatica quantistica''' – l'informatica quantistica è l'insieme delle tecniche di calcolo e del loro studio che utilizzano i [[Meccanica quantistica|quanti]] per memorizzare ed [[elaborare]] le [[Informazione|informazioni]]. Molte sono le differenze con l'informatica classica, soprattutto nei [[Informatica quantistica#Principi dell'informatica quantistica|principi fondamentali]] (vedi ''[[informatica quantistica]]'').
* '''Interfaccia''' – punto di contatto tra un [[computer]] o un dispositivo controllato da computer e l'utente, o tra due componenti fisici del computer.<ref name=":4" /> L{{'}}'''interfaccia grafica utente''' ('''GUI''') è invece ciò che rappresenta gli oggetti e le entità interne al computer o al programma in una forma grafica direttamente manipolabile dall'utente, per esempio configurando lo schermo come una scrivania (desktop) su cui sono attivi menu, finestre e icone<ref name=":4" /> (vedi ''[[Interfaccia (informatica)|interfaccia]]'' e ''[[Interfaccia grafica|interfaccia grafica utente]]'').
* '''Ipertesto''' – insieme di informazioni interconnesse, costituito da testi, indici gerarchici, note, illustrazioni, tabelle collegate fra loro da rimandi e collegamenti logici.<ref name=":4" /> La sua consultazione al computer avviene per libera esplorazione dell'utente, che può decidere quali collegamenti seguire e in che ordine.<ref name=":4" /> È la struttura su cui si basano i contenuti dei siti Internet (vedi ''[[ipertesto]]'').
* '''Sistema informatico''' – insieme di processore e periferiche, di cui è composto un calcolatore oppure configurazione hardware e software; da non confondere con '''sistema informativo''' che è invece l'insieme delle risorse tecnologiche impiegate per supportare la circolazione delle informazioni all'interno di un'organizzazione.<ref name=":4" /> A parte il classico [[personal computer]] o il [[Server|server di rete]] pensiamo ad esempio al [[telefono cellulare]], alla [[fotocamera digitale]], a una [[console per videogiochi]], al [[cruscotto]] auto con il [[navigatore satellitare]], al [[monitoraggio]] in sala di rianimazione, ecc. Sono tutti sistemi informatici, che ci forniscono servizi specifici. Pensiamo a un aereo moderno: al suo interno possiamo trovare non uno, ma molti sistemi informatici, ciascuno con un preciso compito. [[Internet]] nel suo insieme è un sistema informatico, formato a sua volta da una [[rete di computer|rete]] di sistemi informatici che lavorano per un obiettivo comune: permettere a chiunque di connettersi e scambiare informazioni con chiunque, in qualsiasi parte del globo (vedi ''[[sistema informatico]]'' e ''[[sistema informativo]]'').
* '''Software''' – il software è l'insieme dei componenti immateriali e virtuali che consentono all'utente di eseguire operazioni. È importante distinguere il software di base (oggi chiamato [[sistema operativo]]) dal software [[applicazione (informatica)|applicativo]] (comunemente detto [[programma]] o applicazione): il software di base serve per rendere operativo l'elaboratore, Il software applicativo serve per implementare nuove funzioni e/o rendere operative parti dell'elaboratore. Nondimeno, molte funzioni del software di base offrono valore aggiunto anche all'utente finale (ad esempio, il [[file system]] consente all'utente di memorizzare e poi riutilizzare secondo necessità il proprio lavoro). Perciò, all'interno del software di base è possibile ulteriormente distinguere le funzionalità a valore aggiunto per l'utente e quelle che sono meramente di servizio per garantire il funzionamento della macchina.<ref group="N">Si potrebbe argomentare che tutte le funzioni del SO offrono valore aggiunto all'utente, ma molte di queste operano in background e sono trasparenti rispetto all'utilizzatore del sistema, mentre altre sono parte integrante della ''computing experience''.</ref>
* '''Teoria dell'informazione''' – la teoria dell'informazione è una disciplina dell'informatica e delle [[telecomunicazioni]] il cui oggetto è l'analisi e l'elaborazione su base matematica dei fenomeni relativi alla [[misurazione]] e alla [[Trasmissione (telecomunicazioni)|trasmissione]] di [[Informazione|informazioni]] su un [[Canale (telecomunicazioni)|canale]] fisico di comunicazione (vedi ''[[teoria dell'informazione]]'').
* '''Teoria dei segnali''' – la teoria dei segnali studia le proprietà matematiche e statistiche dei segnali, definiti come [[Funzione (matematica)|funzioni]] matematiche del tempo. In generale, un segnale è una variazione temporale dello stato fisico di un sistema o di una grandezza fisica ([[Potenziale elettrico|potenziale]] o [[corrente elettrica]] per [[Segnale elettrico|segnali elettrici]], parametri di [[campo elettromagnetico]] per segnali [[Radio (elettronica)|radio]]) che serve per rappresentare e trasmettere messaggi ovvero [[informazione]] a distanza; il sistema in questione può essere il più disparato. In [[elettronica]] un segnale viene dunque studiato attraverso un [[modello matematico]] o funzione in cui il tempo (o il suo inverso, la frequenza) è considerato variabile indipendente (vedi ''[[teoria dei segnali]]'').
 
== Aree tematiche ==
===Sezioni introduttive===
In qualità di disciplina, l'informatica spazia dagli studi teorici sugli [[Algoritmo|algoritmi]] e i limiti della [[computazione]] ai problemi pratici dell'[[implementazione]] dei [[Sistema informatico|sistemi informatici]] di [[hardware]] e [[software]].<ref name=":7">{{Cita web|url=http://www.csab.org/comp_sci_profession.html|titolo=Computer Science as a Profession|data=17 giugno 2008|accesso=30 settembre 2017|urlmorto=sì|urlarchivio=https://web.archive.org/web/20080617030847/http://www.csab.org/comp_sci_profession.html|dataarchivio=17 giugno 2008}}</ref><ref>{{Cita libro|nome=National Research|cognome=Council|titolo=Computer Science: Reflections on the Field, Reflections from the Field|url=http://www.nap.edu/catalog.php?record_id=11106#toc|accesso=30 settembre 2017|data=4 ottobre 2004|lingua=en|ISBN=978-0-309-09301-9|DOI=10.17226/11106}}</ref> La CSAB, chiamata formalmente ''[[Computing Sciences Accreditation Board]]'' – che è costituita dai rappresentanti dell'[[Association for Computing Machinery|ACM]] e dell'[[IEEE Computer Society]]<ref>{{Cita web|url=http://www.csab.org/|titolo=CSAB, Inc.|accesso=30 settembre 2017}}</ref> – identifica quattro aree che considera cruciali per la disciplina dell'informatica: ''teoria della computazione'', ''algoritmi e strutture dati'', ''metodologia e linguaggi della programmazione'', e ''architettura ed elementi del computer''. In più, la CSAB identifica anche campi come l'ingegneria del software, intelligenza artificiale, comunicazione e le reti di computer, sistemi di basi di dati, calcolo parallelo, calcolo distribuito, interazione uomo-macchina, computer grafica, sistemi operativi e calcolo simbolico e numerico, come aree importanti dell'informatica.<ref name=":7" />
Data l'ampiezza del trattare l'informatica è quindi necessario definire, sia pure a grandi linee, e senza la presunzione della perfezione matematica, un quadro generale entro il quale comprendere la materia. Pertanto questa pagina cerca di essere un indice introduttivo dell'intera materia, con rimando a maggiori dettagli nelle pagine dedicate a ciascuna voce.
 
=== Informatica teorica ===
Seguono le sezioni:
{{vedi anche|Informatica teorica}}
*Teorie e terminologia di base - Comprende quei termini (spesso stranieri) o concetti o metodi che sono significativi in informatica.
*[[Hardware]] - Nel senso generalista di mezzo / strumento.
*[[Software]] - Nel senso generalista di istruzioni alla macchina.
*Sistema informatico - Nel senso di connubio tra hardware e software in un insieme organico, coerente e funzionante, pronto per fornire un servizio.
*Applicazione - Nel senso più generale di sistema informatico dedicato (in tutto o in parte) ad uno specifico servizio, come soluzione ad una necessità (spesso latente o autoalimentata).
*Gestione - Nel senso di chi tratta direttamente l'informatica, con quali metodi, con quale organizzazione con che tipo di sistemi.
 
L'informatica teorica è essenzialmente astratta e matematica, ma deriva la propria ragion d'essere dai calcoli pratici e quotidiani. Il suo scopo è di capire la natura della [[computazione]] e, come conseguenza di questa comprensione, fornire metodologie sempre più efficienti.
== Teorie e terminologia di base ==
* [[Algebra di Boole]]
* [[Algoritmo]]
** [[Algoritmo genetico]]
** [[Algoritmo quantistico]]
* [[Database]]
* [[File]]
* [[Fondamenti matematici dell'informatica]]
* [[Informatica quantistica]]
* [[Ipertesto]]
* [[Teoria dell'informazione]]
* [[Teoria del segnale]]
 
==== Teoria dei codici e dell'informazione ====
== Hardware ==
{{vedi anche|hardwareTeoria dei codici|Teoria dell'informazione}}
Nell'informatica pionieristica degli anni sessanta questo termine inglese, letteralmente "''ferramenta''", ben si prestava a indicare le macchine utilizzate.
 
La teoria dell'informazione è relativa alla quantificazione dell'informazione. Fu sviluppata da [[Claude Shannon]] per trovare i limiti fondamentali delle operazioni di [[elaborazione dei segnali]], come la [[Compressione dei dati|compressione dati]] e l'archiviazione e la comunicazione affidabile degli stessi.<ref>{{Cita news|lingua=en|nome=Graham P.|cognome=Collins|url=http://www.scientificamerican.com/article.cfm?id=claude-e-shannon-founder|titolo=Claude E. Shannon: Founder of Information Theory|pubblicazione=Scientific American|accesso=30 settembre 2017}}</ref>
Anche con la sostituzione delle [[Tubo a vuoto|valvole termoioniche]] in favore dei [[transistor]] e poi dei primi circuiti integrati MOS, tali macchine erano composte da telai e pannelli metallici robusti tutti rigorosamente assemblati mediante bullonature vistose, per contenere i preziosissimi e delicatissimi circuiti elettronici che erano il cuore degli elaboratori e delle prime periferiche di base.
 
La teoria dei codici è lo studio delle proprietà dei [[Codice (teoria dell'informazione)|codici]] (sistemi per convertire l'informazione da una forma all'altra) e la loro adattabilità per una specifica applicazione. I codici sono usati per la compressione dati, [[crittografia]], [[rilevazione e correzione d'errore]], e più recentemente anche per la codificazione delle reti. I codici sono studiati in modo da progettare metodi di trasmissione dati affidabili ed efficienti.
Oggi, quando risulta difficile ritenere ''ferramenta'' un mouse o una webcam, il termine è rimasto più che altro per distinguere tutto ciò che è ''macchina'', ''strumento'', dai programmi (il software) per far funzionare la macchina o lo strumento. In pratica l'hardware è tutto ciò che è palpabile e visibile con gli occhi, come un hard disk, un monitor, lo stesso caso del computer.
 
==== Teoria della computazione ====
== Software ==
Secondo [[Peter J. Denning|Peter Denning]], la domanda fondamentale che soggiace l'informatica è «cosa può essere (efficientemente) automatizzato?».<ref>{{Cita web|url=http://www.idi.ntnu.no/emner/dif8916/denning.pdf|titolo=Computer Science: The Discipline|autore=Peter J. Denning|data=25 maggio 2006|volume=Encyclopedia of Computer Science|accesso=30 settembre 2017|urlmorto=sì|urlarchivio=https://web.archive.org/web/20060525195404/http://www.idi.ntnu.no/emner/dif8916/denning.pdf|dataarchivio=25 maggio 2006}}</ref> La [[teoria della computazione]] cerca di rispondere alle domande fondamentali che riguardano che cosa può essere calcolato e la quantità di risorse necessarie per eseguire i calcoli. La [[teoria della computabilità]] si sforza di rispondere alla prima domanda, esaminando quali problemi computazionali sono risolvibili attraverso vari modelli teorici di [[computazione]]. Alla seconda domanda invece cerca di rispondere la [[teoria della complessità computazionale]], che studia i costi in termini di spazio e tempo associati ad approcci differenti per risolvere una moltitudine di problemi computazionali.
{{vedi anche|Software}}
È importante distinguere il software di base (oggi chiamato sistema operativo) dal software applicativo (comunemente detto programma o applicazione):
 
Il famoso problema [[Classi di complessità P e NP|P = NP?]], uno dei [[Problemi per il millennio]], è un problema ancora aperto nella teoria della computazione.
* Il software di base serve per rendere operativo l'elaboratore;
* Il software applicativo serve per implementare nuove funzioni e/o rendere operative parti dell'elaboratore.
Una visione semplicistica può essere quella secondo cui l'elaboratore usa:
* il software di base per sé stesso, come servizio interno;
* il software applicativo per fornire un servizio alle persone che lo utilizzano.
 
{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
Nondimeno, molte funzioni del software di base offrono valore aggiunto anche all'utente finale (ad esempio, il [[file system]] consente all'utente di memorizzare e poi riutilizzare secondo necessità il proprio lavoro). Perciò, all'interno del software di base è possibile ulteriormente distinguere le funzionalità a valore aggiunto per l'utente e quelle che sono meramente di servizio per garantire il funzionamento della macchina.<ref>Si potrebbe argomentare che tutte le funzioni del SO offrono valore aggiunto all'utente, ma molte di queste operano in background e sono trasparenti rispetto all'utilizzatore del sistema, mentre altre sono parte integrante della ''computing experience''.</ref>
|[[File:DFAexample.svg|96x96px]]
|[[File:Wang tiles.svg|96x96px]]
|'''P = NP?'''
|'''GNITIRW-TERCES'''
|[[File:Blochsphere.svg|96x96px]]
|-
|[[Teoria degli automi]]
|[[Teoria della computabilità]]
|[[Teoria della complessità computazionale]]
|[[Crittografia]]
|[[Teoria del calcolo quantistico]] ([[computer quantistico]])
|}
 
==== Algoritmi e strutture dati ====
Il software di base, oggi detto [[sistema operativo]], nasce con l'evoluzione tecnologica. Mentre i primi elaboratori contenevano tutte le istruzioni necessarie al proprio funzionamento, ivi incluse quelle di interazione con l'hardware (spesso complesse e non portabili), l'aumento della memoria e della potenza di calcolo ha portato all'evoluzione di strati software interposti tra il programmatore e l'hardware (all'epoca, tutti gli utenti erano anche programmatori e non esisteva ancora la nozione di software ''general purpose'').
Questo campo studia i metodi di calcolo comunemente usati e la loro efficienza computazionale.
{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|<math>O(n^2)</math>
|[[File:Sorting quicksort anim.gif|96x96px]]
|[[File:Singly-linked-list.svg|96x96px]]
|[[File:TSP Deutschland 3.png|103x103px]]
|[[File:SimplexRangeSearching.svg|104x104px]]
|-
|[[Analisi degli algoritmi]]
|[[Algoritmo|Algoritmi]]
|[[Struttura dati|Strutture dati]]
|[[Ottimizzazione combinatoria]]
|[[Geometria computazionale]]
|}
 
==== Teoria dei linguaggi di programmazione ====
Oggi, se si escludono i sistemi dedicati a particolari servizi critici come l'[[avionica]], la [[chirurgia]] assistita, il controllo di impianti a ciclo continuo, mezzi in movimento, ecc. il rapporto tra software di base e software applicativo è sempre superiore a uno. <br />Nel caso dei personal computer domestici tale rapporto sale spesso tranquillamente al di sopra di 10 a 1.
La [[teoria dei linguaggi di programmazione]] è una branca dell'informatica che ha a che fare con la progettazione, implementazione, analisi, caratterizzazione, e classificazione dei [[Linguaggio di programmazione|linguaggi di programmazione]] e delle loro particolari caratteristiche. Rientra nella disciplina dell'informatica e allo stesso tempo dipende e influenza [[matematica]], [[ingegneria del software]] e [[linguistica]]. È un'area di ricerca attiva, con numerosi giornali accademici dedicati.
 
{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
; Voci correlate su Software:
|<math>\Gamma\vdash x: \text{Int}</math>
* [[Programma (informatica)|Programma]]
|[[File:Compiler.svg|108x108px]]
* [[Sistema operativo|Sistemi operativi]]
|[[File:Python add5 syntax.svg|96x96px]]
* [[Database management system]]
|-
* Elenco di programmi per computer
|[[Teoria dei tipi]]
* [[Utilità (informatica)|Utilità]]
|[[Compilatore|Compilatori]]
* [[Ingegneria del software]]
* |[[Linguaggio di markupprogrammazione|Linguaggi di markup o di formattazioneprogrammazione]]
|}
* [[Linguaggio di programmazione|Linguaggi di programmazione]] (cfr. [[Elenco cronologico dei linguaggi di programmazione|Cronologia]])
 
==== SistemaMetodi informaticoformali ====
Questo è un tipo particolare di tecnica basata sulla [[matematica]] per la specificazione, sviluppo e verifica di sistemi [[hardware]] e [[software]]. L'utilizzo dei [[metodi formali]] per la progettazione di hardware e software è motivata dall'aspettativa che, come nelle altre discipline ingegneristiche, eseguire analisi matematiche appropriate possa contribuire all'affidabilità e alla robustezza di un progetto. I metodi formali formano un importante pilastro dell'ingegneria del software, specialmente dove è coinvolta la [[Sicurezza informatica|sicurezza]] e rappresentano un'utile aggiunta al [[collaudo del software]] poiché aiutano a evitare errori e possono anche fornire un [[framework]] per il collaudo stesso.
{{vedi anche|Sistema informatico}}
[[Hardware]] e [[software]] formano un ''sistema informatico''; formano uno strumento ''utile per fare qualcosa''.<br />
Questa generica definizione, apparentemente banale, in realtà denota il fatto che oggi con un sistema informatico ci si fa di tutto, e che ogni giorno ci si fa qualcosa di più.<br />
A parte il classico [[personal computer]] o il ''server'' di rete pensiamo ad esempio al ''[[telefono cellulare]]'', alla ''[[fotocamera digitale]]'', alla ''[[playstation]]'', al ''[[cruscotto]] auto con il [[navigatore satellitare]]'', al ''[[monitoraggio]] in sala di rianimazione'', ecc.<br /> Sono tutti sistemi informatici, che ci forniscono servizi specifici.
Pensiamo ad un aereo moderno al suo interno possiamo trovare non uno, ma molti sistemi informatici, ciascuno con un preciso compito.
 
I metodi formali sono meglio descritti come l'applicazione di una sufficientemente ampia varietà di fondamenti dell'informatica teorica, in particolare [[calcolo logico]], [[Linguaggio formale|linguaggi formali]], [[teoria degli automi]], e [[Semantica (informatica)|semantica]], ma anche [[Sistema dei tipi|sistemi dei tipi]], [[tipi di dati algebrici]], riguardo problemi nella specificazione e verifica dell'hardware e del software.
[[Internet]] nel suo insieme è un sistema informatico, formato a sua volta da una [[rete informatica|rete]] di sistemi informatici che lavorano per un obiettivo comune: permettere a chiunque di connettersi e scambiare informazioni con chiunque, in qualsiasi parte del globo.
 
=== Informatica applicata ===
== Applicazione ==
L'informatica applicata punta a identificare specifici concetti informatici che possono essere utilizzati direttamente per risolvere problemi del mondo reale.
{{vedi anche|Applicazione}}
Del sistema informatico si è detto che è uno strumento utile ''per fare qualcosa''. Questo qualcosa è l'''[[applicazione]]''.<br />
Il termine applicazione informatica è nato quando il computer è uscito dalle mani degli scienziati e dalle stanze degli istituti di ricerca ed è entrato nel resto del mondo.
Naturalmente il computer era utile anche prima (e lo è di certo ancor di più oggi, in quegli ambienti), ma come ad esempio in ingegneria e così in informatica, si distingue l'attività della ricerca pura da quella applicata.
 
==== Architettura dei calcolatori e ingegneria informatica ====
Le prime applicazioni pratiche si ebbero, negli anni sessanta e inizio settanta, nelle grandi aziende, e in generale nelle grandi organizzazioni pubbliche o private, laddove soluzioni informatiche abbastanza semplici permettevano significativi risparmi di tempo nelle operazioni quotidiane e di routine.
{{vedi anche|Ingegneria informatica}}
Basti ricordare Banca d'Italia, Alitalia, Eni, Montedison, Enel.
 
L'[[architettura dei calcolatori]], o organizzazione dei calcolatori digitali, è il design concettuale e la struttura operativa fondamentale di un sistema computerizzato. Si focalizza ampiamente sul modo in cui la [[CPU]] svolge le operazioni internamente e accede agli [[Indirizzo di memoria|indirizzi]] in [[Memoria (informatica)|memoria]].<ref>{{Cita pubblicazione|autore=Ronald A. Thisted|anno=1997|titolo=Computer Architecture|editore=Departments of Statistics, Health Studies, and Anesthesia & Critical Care, University of Chicago|url=http://galton.uchicago.edu/~thisted/Distribute/comparch.pdf}}</ref> Il campo spesso coinvolge discipline dell'[[ingegneria informatica]] e dell'[[ingegneria elettrica]], selezionando e interconnettendo i componenti hardware per costruire computer che vengano incontro a obiettivi funzionali, prestazionali ed economici.
Con gli anni, e con uno sviluppo sempre più veloce delle capacità di elaborazione in parallelo all'abbassamento dei costi, l'informatica ha pervaso qualsiasi settore, fino alla vita quotidiana e all'intrattenimento personale.
 
{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
; Voci correlate ad Applicazione
|[[File:NOR ANSI.svg|96x96px]]
* [[Basi di dati]]
|[[File:Fivestagespipeline.png|96x96px]]
* [[Base di conoscenza]]
|[[File:SIMD.svg|96x96px]]
* [[Sicurezza informatica]] e [[Standard ISO 27001:2005]]
|-
* [[Architettura delle reti di elaboratori]]
|[[Porta logica|Logica digitale]]
* [[Computer grafica]]
|[[Microarchitettura]]
* [[Intelligenza artificiale]]
|[[Multiprocessing]]
* [[Visione artificiale]]
|-
* [[Reti neurali]]
|[[File:Roomba original.jpg|96x96px]]
* [[Sistema informativo]]
|[[File:Flowchart.png|96x96px]]
|[[File:Operating system placement.svg|142x142px]]
|-
|[[Ubiquitous computing]]
|[[Architettura dei sistemi]]
|[[Sistema operativo|Sistemi operativi]]
|}
 
==== Analisi delle prestazioni dei calcolatori ====
== Gestione ==
{{vedi anche|Analisi delle prestazioni}}
Con l'informatica che cominciava a diffondersi al di fuori del ristretto mondo della ricerca e all'interno di grandi strutture operative sorse la necessità di nuove figure professionali che "curassero" l'oggetto ancora misterioso che era l'elaboratore elettronico. E sorse anche la necessità di dare un nome e includere nella struttura operativa quell'unità a cui veniva demandato il compito di elaborare i dati.
 
L'analisi delle prestazioni è lo studio del lavoro svolto dai [[computer]], che ha per obiettivi generali il miglioramento del [[throughput|produttività]] di dati, il controllo del [[latenza|tempo di risposta]], l'uso efficiente delle risorse, l'eliminazione dei [[Collo di bottiglia (ingegneria)|colli di bottiglia]], e la predizione della [[Computer performance|performance]] sotto carichi di punta anticipati.<ref>{{Cita libro|autore=Bob Wescott|titolo=The Every Computer Performace Book|url=https://www.worldcat.org/oclc/857903757|edizione=1|OCLC=857903757|ISBN=1-4826-5775-9}}</ref>
Il primo nucleo riconosciuto di persone addette alla elaborazione dei dati fu il cosiddetto ''Centro Meccanografico''. Era dotato di elaboratori della seconda generazione (circuiti elettromagnetici, pannelli di programma somiglianti alle consolle telefoniche dei centralini di inizio secolo, in cui le istruzioni erano connettori a doppio spinotto introdotti in prese unipolari, ciascuna col suo scopo), schede perforate per i dati di massa, macchine perforatrici, macchine selezionatrici e stampatrici a barre verticali.
Il centro era gestito da un ''capo centro'' che governava sui primi ''programmatori'', sugli ''operatori'', sulle ''perforatrici'' (donne).
 
==== Programmazione e sistemi ====
All'inizio degli anni sessanta, con l'avvento della terza generazione degli elaboratori (del tipo IBM/360), le cose non cambiarono molto, tranne che l'unità organizzativa, soprattutto in ambienti nuovi si chiamava ''[[Centro Elaborazione Dati]] (CED)''.
{{vedi anche|Programmazione (informatica)|Sistema informatico}}
Nota: la definizione di centro meccanografico è stata dura a morire, soprattutto in Pubblica Amministrazione.
 
In generale i due campi applicativi principali dell'[[informatica aziendale]] sono l'ambito di [[programmazione (informatica)|programmazione]] ovvero lo sviluppo [[software]] da parte di team di [[programmatore|programmatori]] e l'ambito [[sistema informatico|sistemistico]] ovvero la [[progettazione]], realizzazione e gestione dell'infrastruttura IT a supporto delle decisioni di business e operative aziendali in tutte le sue componenti per opera di [[sistemista|sistemisti]].
Con l'aumento della pervasività dell'informatica via via in ogni settore aziendale e di servizio, il CED è diventato una unità strategica, spesso anche scomoda e comunque costosissima.<br />
Già negli anni settanta alcune aziende hanno dato il via a quel processo che negli anni ottanta si chiamerà ''[[outsourcing]]'', estraendo il Servizio Elaborazione Dati (ex CED) dalla struttura dell'azienda, facendone una società a sé stante (ad esempio Datamont, dalla Montedison, ed Enidata, dall'ENI).
 
==== Reti di calcolatori ====
La diffusione del personal computer ha dato il colpo di grazia alla maggior parte di queste strutture, costrette a cedere il potere di unici depositari delle capacità di gestire i mezzi informatici.
{{vedi anche|Rete di computer}}
 
Una rete di computer è un insieme di dispositivi [[hardware]] e [[software]] collegati l'uno con l'altro da appositi [[Canale di comunicazione|canali di comunicazione]], che permette il passaggio da un utente all'altro di risorse, informazioni e dati in grado di essere pubblicati e condivisi.
Oggi le grandi aziende tendono ad avere un nucleo interno dedicato all'informatica, composto solo da personale di alto livello e generalmente dipendenti direttamente dalla Direzione generale. Tutta la parte operativa è gestita in outsourcing da società specializzate.
 
==== Basi di dati ====
Tutto questo riguarda soprattutto l'informatica gestionale delle medie grandi aziende del settore privato, quella governata con i sistemi ERP. Alcune isole di applicazioni ''mission critical'' (determinati processi o determinati servizi) sono rimasti sotto la piena responsabilità interna.
{{vedi anche|Base di dati}}
 
Una base di dati (database) è un sistema inteso per organizzare, memorizzare, e recuperare grandi quantità di [[Dato|dati]] facilmente. Una base di dati digitale è gestita utilizzando sistemi di gestione per memorizzare, creare, mantenere, e cercare dati, attraverso [[Modello di base di dati|modelli]] e [[Linguaggio di interrogazione|linguaggi di interrogazione]].
Nel settore Pubblico il processo di esternalizzazione è stato molto più lento ed è tuttora in corso.
 
==== Monitoraggio ====
Le piccole e medie aziende, non avendo a disposizione risorse finanziarie sufficienti hanno iniziato a fruire delle opportunità offerte dall'informatica solo in tempi relativamente recenti, quando le case costruttrici di elaboratori hanno creato macchine ad hoc (vedi ad esempio il sytstem/38 IBM diventato poi [[AS/400]]), dotato anche di applicazioni software adatte a quelle realtà, sia con il diffondersi sul territorio di aziende specializzate nel fornire servizi orientati a tale tipo di azienda.
Il monitoraggio informatico (''monitoring'') è l'area che si occupa di realizzare sistemi atti a sorvegliare l'andamento di funzioni e di prestazioni di risorse, applicazioni e infrastrutture. L'impiego di sensori software o strumenti hardware è alla base del monitoraggio.
 
==== Sistemi concorrenti, paralleli e distribuiti ====
Voci correlate su Gestione dell'informatica:
La [[Concorrenza (informatica)|concorrenza]] è una proprietà dei sistemi in cui vengono eseguite svariate computazioni simultaneamente, e che potenzialmente interagiscono le une con le altre. Sono stati sviluppati diversi modelli per la generale computazione concorrente, fra cui la [[rete di Petri]], [[process calculi]], [[Parallel Random Access Machine|PRAM]]. Un [[sistema distribuito]] estende l'idea della concorrenza a più computer connessi attraverso una rete. Computer all'interno dello stesso sistema distribuito hanno una propria memoria, e l'informazione è spesso scambiata tra di essi per conseguire un obiettivo comune.
 
==== Sicurezza informatica e crittografia ====
* [[Centro elaborazione dati]]
{{vedi anche|Sicurezza informatica|Crittografia}}
* [[Informatico|Le figure professionali]]
* [[Associazioni per l'informatica]]
* [[Industria informatica]]
* [[Laboratori per l'informatica]]
* [[Organizzazioni per il Web]]
* [[Progetti informatici]]
* [[Pubblicazioni informatiche]]
 
La sicurezza informatica è una branca delle [[Tecnologia dell'informazione|tecnologie dell'informazione]], che ha per oggetto la protezione dell'[[informazione]] da accessi non autorizzati, interruzioni, o modifiche, pur mantenendo l'[[Accessibilità (design)|accessibilità]] e l'[[usabilità]] del sistema per gli utenti a cui è destinato. La [[crittografia]] è la pratica e lo studio dell'occultamento (criptaggio) e della [[decifrazione]] (decriptaggio) dell'informazione. La crittografia moderna è ampiamente connessa all'informatica, poiché molti algoritmi di criptaggio e decriptaggio sono basati sulla loro [[complessità computazionale]].
==Certificazioni informatiche in Italia==
 
In Italia si hanno varie certificazioni che attestano una preparazione informatica:
==== Scienza computazionale ====
*[[Eipass]]
{{vedi anche|Scienza computazionale}}
*[[ECDL]]
 
*[[EUCIP]]
La scienza computazionale è il campo di studio che concerne la costruzione di [[Modello matematico|modelli matematici]] e tecniche di analisi quantitativa tali da utilizzare il computer per analizzare e risolvere problemi scientifici. Nella pratica, tipicamente consiste nell'applicazione della [[Simulazione (informatica)|simulazione al computer]] e altre forme di [[computazione]] a problemi in varie discipline scientifiche.
 
{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|[[File:Lorenz attractor yb.svg|96x96px]]
|[[File:Quark wiki.jpg|96x96px]]
|[[File:Naphthalene-3D-balls.png|96x96px]]
|[[File:1u04-argonaute.png|96x96px]]
|-
|[[Analisi numerica]]
|[[Fisica computazionale]]
|[[Chimica computazionale]]
|[[Bioinformatica]]
|}
 
==== Computer grafica ====
{{vedi anche|Computer grafica}}
 
La computer grafica è lo studio dei contenuti visuali digitali, e coinvolge la sintesi e manipolazione di dati immagine. Lo studio è connesso a molti altri campi dell'informatica, includendo la [[visione artificiale]], l'[[elaborazione digitale delle immagini]], la [[geometria computazionale]], ed è pesantemente applicata nei campi degli [[Effetti speciali digitali|effetti speciali]] e [[Videogioco|videogiochi]].
 
==== Ingegneria del software ====
{{vedi anche|Ingegneria del software}}
 
L'ingegneria del software è lo studio della [[progettazione]], [[implementazione]], e [[manutenzione del software]], in maniera tale da garantire alta qualità, affidabilità, sostenibilità, e velocità nella costruzione. È un approccio sistematico al [[software design]], che consiste nell'applicazione di pratiche ingegneristiche al software. L'ingegneria del software ha a che fare l'organizzazione e l'analisi del software, e non solo con la sua creazione e produzione, ma anche con la sua manutenzione interna e sistemazione.
 
==== Interazione uomo-macchina ====
{{vedi anche|Interazione uomo-computer}}
 
L'interazione uomo-macchina è campo di ricerca che sviluppa teorie, principi, e linee guida per i progettisti delle [[Interfaccia utente|interfacce utente]], in modo che possano creare [[User Experience|esperienze utente]] soddisfacenti con dispositivi [[Computer desktop|desktop]], [[Computer portatile|laptop]] e [[Dispositivo mobile|mobile]] (vedi [[usabilità]]). Con questo scopo, l'informatica sta sempre più evolvendo verso una disciplina interattiva e orientata alla comunicazione efficace. Tale campo coinvolge diverse discipline, tra cui informatica, psicologia, scienze cognitive, design, intelligenza artificiale e scienze del linguaggio.<ref>[https://www.academia.edu/5880343/Human_Computer_Interaction_I_fondamenti_dellinterazione_tra_persone_e_tecnologie Human Computer Interaction. I fondamenti dell'interazione tra persone e tecnologie.]</ref>
 
==== Intelligenza artificiale ====
{{vedi anche|Intelligenza artificiale}}
 
L'intelligenza artificiale (in acronimo IA, oppure AI in inglese) punta o è richiesta per la sintesi di processi orientati agli obiettivi come per esempio problem solving, decision making, adattamento all'ambiente, apprendimento e comunicazione, riscontrabili in umani e animali. Fin dalle sue origini all'interno della [[cibernetica]] e nella [[Conferenza di Dartmouth]] (1956), la ricerca sull'intelligenza artificiale è stata necessariamente interdisciplinare, ricorrendo ad aree specialistiche come la [[matematica applicata]], [[logica simbolica]], [[semiotica]], [[ingegneria elettrica]], [[filosofia della mente]], [[neurofisiologia]] e [[intelligenza sociale]]. L'IA è associata, secondo il pensiero comune, allo sviluppo dei [[robot]], ma il campo principale in cui vi è un'applicazione pratica è lo [[sviluppo di software]], che richiede una comprensione computazionale. Il punto di partenza è stato il quesito di [[Alan Turing]] «Can computers think?» dei tardi [[Anni 1940|anni quaranta]] del [[XX secolo]], che rimane effettivamente senza risposta, sebbene il [[Test di Turing]] sia ancora usato per valutare l'[[Input/output|output]] del [[computer]] sulla scala dell'[[Intelligenza|intelligenza umana]]. L'[[automazione]] delle attività di valutazione e predizione ha conosciuto crescenti successi nel sostituire il monitoraggio e l'intervento umano in campi dell'[[informatica applicata]] che coinvolgono dati del mondo reale di una certa complessità.
 
{| style="border:1px solid #ccc; text-align:center; margin:auto;" cellspacing="15"
|[[File:Nicolas P. Rougier's rendering of the human brain.png|96x96px]]
|[[File:Human eye, rendered from Eye.png|96x96px]]
|[[File:Corner.png|96x96px]]
|-
|[[Apprendimento automatico]]
|[[Visione artificiale]]
|[[Elaborazione digitale delle immagini]]
|-
|[[File:KnnClassification.svg|96x96px]]
|[[File:Julia iteration data.png|96x96px]]
|[[File:Sky.png|96x96px]]
|-
|[[Riconoscimento di pattern]]
|[[Data mining]]
|[[Computazione evolutiva]]
|-
|[[File:Neuron.svg|96x96px]]
|[[File:English.png|96x96px]]
|[[File:HONDA ASIMO.jpg|85x85px]]
|-
|[[Rappresentazione della conoscenza]]
|[[Elaborazione del linguaggio naturale]]
|[[Robotica]]
|}
 
== Insegnamento, titoli di studio e certificazioni ==
L'insegnamento dell'informatica avviene in diversi modi e a diversi livelli. Nelle scuole secondarie di secondo grado esiste la specializzazione di [[perito informatico]].
 
L'informatica è entrata nel panorama dell'insegnamento universitario italiano negli [[anni 1970|anni settanta]]. Oggi vi sono corsi di Informatica in praticamente tutte le Università che abbiano dipartimenti a carattere scientifico. Solitamente il corso di informatica appartiene alla [[facoltà universitaria|facoltà]] di [[scienze matematiche, fisiche e naturali]], anche se di fatto esiste anche un corso di laurea in [[ingegneria informatica]] presso la facoltà di [[ingegneria]] con elementi misti di informatica pura e sistemi [[hardware]] elettronici. L'attuale corso di studi è suddiviso in una [[laurea triennale]], una [[laurea magistrale]] e il [[dottorato]] in informatica offrendo una formazione teorica di base e avanzata sull'informatica stessa. La laurea in Informatica permette inoltre di sostenere l'Esame di Stato per l'abilitazione alla professione di Ingegnere dell'Informazione.<ref>{{Cita web|url=http://www.alsi.it/cm/content/iscrizione-allordine-degli-ingegneri-laureati-informatici|titolo=Iscrizione all'ordine degli ingegneri per laureati Informatici|sito=ALSI|accesso=12 febbraio 2017|dataarchivio=13 febbraio 2017|urlarchivio=https://web.archive.org/web/20170213092101/http://www.alsi.it/cm/content/iscrizione-allordine-degli-ingegneri-laureati-informatici|urlmorto=sì}}</ref>
 
In Italia si hanno inoltre varie certificazioni che attestano il possesso di abilità informatiche o di competenze professionali:
* [[ECDL]] – ''European Computer Driving Licence'', detta anche Patente europea per l'uso del computer, per le abilità informatiche minimali.
* [[EUCIP Core|EUCIP]] – ''European Certification of Informatics Professionals'', sistema di servizi e certificazioni, di riferimento nel mondo delle professioni dell'informatica, dell'impresa e della formazione.
 
Esistono poi numerose altre certificazioni professionali in ambito programmazione (es. Microsoft [[Dotnet|.Net]] e [[linguaggio Java|Java]] della [[Sun Microsystems]]) e [[sistemista|sistemistico]] (es. Linux System Administration, [[Windows]] certification, [[application server]] certification, [[Vmware]]/[[Citrix Systems|Citrix]] virtualization certification, [[Oracle Database|Oracle DBA]] certification, [[IBM DB2]] certification, [[SAP (azienda)|SAP]] certification, [[Cisco Systems|Cisco]] e [[Juniper Networks|Juniper]] [[networking]] certification), tutte altamente spendibili in ambito lavorativo nel mercato informatico aziendale, detto anche [[Settore terziario avanzato|terziario avanzato]], fortemente espanso a partire dai primi anni 2000 con la diffusione di [[Internet]].
 
== Note ==
;Annotazioni
<references group="N"/>
;Fonti
<references/>
 
== Bibliografia ==
* G. Ausiello, C. Batini, V. Frosini, «[http://www.treccani.it/enciclopedia/informatica_(Enciclopedia-Italiana)/ Informatica]» in ''Enciclopedia Italiana - Appendice VI'', Roma, Istituto dell'Enciclopedia Italiana, 2000.
* A.M. GAMBINO - A. Stazi, ''Diritto dell'informatica e della comunicazione'' (Manuale), Giappichelli, Torino, 2009
* A.M. Gambino, A. Stazi, ''Diritto dell'informatica e della comunicazione'' (Manuale), Giappichelli, Torino, 2009.
* Camera dei deputati. Segretariato generale, ed. Ambiente e informatica: problemi nuovi della società contemporanea. Vol. 16. Servizio studi, legislazione e inchieste parlamentari, 1974.
* Enrico Grassani, ''L'assuefazione tecnologica. Metamorfosi del sistema uomo-macchina,'' Editoriale Delfino, Milano 2014.
 
== Voci correlate ==
{{Div col|cols=3}}
* [[Software]]
* [[Applicazione (informatica)]]
* [[Architettura (computer)]]
* [[Attacco informatico]]
* [[Computer]]
* [[Clone (informatica)]]
* [[Dominio (informatica)]]
* [[Divario digitale]]
* [[Formattazione]]
* [[Hardware]]
* [[Innovazione tecnologica (informatica)]]
* [[Telecomunicazioni]]
* [[Licenza (informatica)]]
* [[Information and Communication Technology]]
* [[IngegneriaInformatica del softwareforense]]
* [[IngegneriaInformatica elettronicagiuridica]]
* [[SocialInformatica commercemedica]]
* [[SoftwareInformatica liberomusicale]]
* [[Informatizzazione]]
* [[Tecnologia dell'informazione]]
* [[Tecnologie dell'informazione e della comunicazione]]
* [[Interfaccia (informatica)]]
* [[Matematica discreta]]
* [[Open source]]
* [[Porta (informatica)]]
* [[Programmazione (informatica)]]
* [[Rapporto tra musica e informatica]]
* [[Permessi (informatica)]]
* [[Sessione]]
* [[Rivoluzione informatica]]
* [[Sistema informatico]]
* [[Software]]
* [[Software libero]]
* [[Software proprietario]]
* [[DigitalStoria dividedel computer]]
* [[E-healthStoria dell'informatica]]
* [[Linguaggio di programmazione]]
* [[Workaround]]
* [[Z3 (computer)]]
{{Div col end}}
 
== Altri progetti ==
{{interprogetto|wikt|b=Ripiano:Informatica|preposizione=sull'|v}}
{{interprogetto|commons=Category:Computer science|commons_preposizione=sull'|q|q_preposizione=sull'|wikt=informatica|s=:Categoria:Testi_di_informatica_in_ordine_alfabetico|s_oggetto=|s_preposizione=riguardanti l'|etichetta=informatica|n=Categoria:Informatica|b=Ripiano:Informatica|b_preposizione=di}}
 
== Collegamenti esterni ==
{{Principali campi dell'Informatica}}
* {{Collegamenti esterni}}
 
{{scienze applicate}}{{Informatica}}{{Controllo di autorità}}
{{portale|informatica}}
 
[[Categoria:Informatica| ]]
 
[[af:Rekenaarwetenskap]]
[[am:የኮምፒውተር፡ጥናት]]
[[ar:علم الحاسوب]]
[[as:কম্পিউটাৰ বিজ্ঞান]]
[[bn:কম্পিউটার বিজ্ঞান]]
[[br:Urzhiataerezh]]
[[da:Datalogi]]
[[el:Επιστήμη υπολογιστών]]
[[en:Computer science]]
[[eo:Komputado]]
[[es:Ciencias de la computación]]
[[fa:علوم رایانه]]
[[fi:Tietojenkäsittelytiede]]
[[fo:Teldufrøði]]
[[ga:Ríomheolaíocht]]
[[gv:Sheanse co-earrooagh]]
[[he:מדעי המחשב]]
[[hi:संगणक विज्ञान]]
[[hr:Računarstvo]]
[[hu:Számítástechnika]]
[[id:Ilmu komputer]]
[[is:Tölvunarfræði]]
[[iu:ᑐᓴᐅᒪᖃᑦᑕᐅᑎᔾᔪᑎᓂᒃ ᐊᐅᓚᑦᑎᔩᑦ/tusaumaqattautijjutinik aulattijiit]]
[[ja:計算機科学]]
[[jbo:samske]]
[[ka:საინფორმაციო მეცნიერება]]
[[kab:Tasenselkimt]]
[[kl:Qarasaasialerinermik ilisimatusarneq]]
[[kn:ಗಣಕ ವಿಜ್ಞಾನ]]
[[ko:컴퓨터 과학]]
[[ltg:Datorzineiba]]
[[lv:Datorzinātne]]
[[ml:കമ്പ്യൂട്ടർ ശാസ്ത്രം]]
[[mn:Компьютерийн шинжлэх ухаан]]
[[ms:Sains komputer]]
[[ne:कम्प्युटर विज्ञान]]
[[new:कम्प्युटर विज्ञान]]
[[ps:سولګرپوهنه]]
[[pt:Ciência da computação]]
[[si:පරිගණක විද්‍යාව]]
[[simple:Computer science]]
[[sk:Veda o počítačoch]]
[[sl:Računalništvo]]
[[sv:Datavetenskap]]
[[ta:கணினியியல்]]
[[th:วิทยาการคอมพิวเตอร์]]
[[tl:Agham pangkompyuter]]
[[ug:بیلگیسايار مۈھەندیسلیغی]]
[[ur:شمارندیات]]
[[vec:Computer Science]]
[[vi:Khoa học máy tính]]
[[war:Siyensya han komputasyon]]
[[wo:Xam-xamu nosukaay]]
[[wuu:计算机科学]]
[[zh:计算机科学]]
[[zh-min-nan:Tiān-náu kho-ha̍k]]
[[zh-yue:電算]]