Informatica - Computer science

Espressione per i numeri della Chiesa in lambda calcolo Trama di un algoritmo Quicksort
Esempio di animazione al computer prodotta utilizzando Motion Capture Circuito mezzo sommatore
L'informatica si occupa dei fondamenti teorici dell'informazione, degli algoritmi e delle architetture del suo calcolo, nonché delle tecniche pratiche per la loro applicazione.

L'informatica è lo studio dei processi algoritmici , delle macchine computazionali e del calcolo stesso. Come disciplina, l'informatica abbraccia una vasta gamma di argomenti, dagli studi teorici di algoritmi , calcolo e informazione alle questioni pratiche dell'implementazione di sistemi computazionali in hardware e software .

I suoi campi possono essere suddivisi in discipline teoriche e pratiche . Ad esempio, la teoria del calcolo riguarda modelli astratti di calcolo e classi generali di problemi che possono essere risolti utilizzandoli, mentre la computer grafica o la geometria computazionale enfatizzano applicazioni più specifiche. Algoritmi e strutture dati sono stati definiti il ​​cuore dell'informatica. La teoria dei linguaggi di programmazione considera gli approcci alla descrizione dei processi computazionali, mentre la programmazione informatica ne prevede l'uso per creare sistemi complessi . L'architettura del computer descrive la costruzione di componenti di computer e apparecchiature gestite da computer. L'intelligenza artificiale mira a sintetizzare processi orientati agli obiettivi come la risoluzione dei problemi, il processo decisionale, l'adattamento ambientale, la pianificazione e l' apprendimento presenti negli esseri umani e negli animali. Un computer digitale è in grado di simulare vari processi di informazione . La preoccupazione fondamentale dell'informatica è determinare cosa può e cosa non può essere automatizzato. Gli informatici di solito si concentrano sulla ricerca accademica. Il Turing Award è generalmente riconosciuto come il più alto riconoscimento nelle scienze informatiche.

Storia

Charles Babbage , a volte indicato come il "padre dell'informatica".
Ada Lovelace ha pubblicato il primo algoritmo destinato all'elaborazione su un computer.

I primi fondamenti di quella che sarebbe diventata l'informatica sono anteriori all'invenzione del moderno computer digitale . Macchine per il calcolo di compiti numerici fissi come l' abaco esistono fin dall'antichità, aiutando in calcoli come la moltiplicazione e la divisione. Gli algoritmi per eseguire calcoli esistono fin dall'antichità, anche prima dello sviluppo di sofisticate apparecchiature informatiche.

Wilhelm Schickard progettò e costruì il primo calcolatore meccanico funzionante nel 1623. Nel 1673, Gottfried Leibniz dimostrò un calcolatore meccanico digitale, chiamato Stepped Reckoner . Leibniz può essere considerato il primo informatico e teorico dell'informazione, anche per aver documentato il sistema di numeri binari. Nel 1820, Thomas de Colmar lanciò l' industria della calcolatrice meccanica quando inventò il suo aritmometro semplificato , la prima macchina calcolatrice abbastanza robusta e affidabile da essere utilizzata quotidianamente in un ambiente d'ufficio. Charles Babbage iniziò la progettazione del primo calcolatore meccanico automatico , il suo Difference Engine , nel 1822, che alla fine gli diede l'idea del primo calcolatore meccanico programmabile , il suo Analytical Engine . Ha iniziato a sviluppare questa macchina nel 1834, e "in meno di due anni, aveva abbozzato molte delle caratteristiche salienti del computer moderno". "Un passaggio cruciale è stata l'adozione di un sistema di schede perforate derivato dal telaio Jacquard " rendendolo infinitamente programmabile. Nel 1843, durante la traduzione di un articolo francese sul motore analitico, Ada Lovelace scrisse, in una delle tante note che includeva, un algoritmo per calcolare i numeri di Bernoulli , che è considerato il primo algoritmo pubblicato mai creato appositamente per l'implementazione su un computer. Intorno al 1885, Herman Hollerith inventò il tabulatore , che utilizzava schede perforate per elaborare informazioni statistiche; alla fine la sua azienda è diventata parte di IBM . Seguendo Babbage, sebbene ignaro del suo lavoro precedente, Percy Ludgate nel 1909 pubblicò il secondo degli unici due progetti per motori analitici meccanici nella storia. Nel 1937, cento anni dopo il sogno impossibile di Babbage, Howard Aiken convinse IBM, che produceva tutti i tipi di apparecchiature per schede perforate ed era anche nel settore delle calcolatrici per sviluppare la sua gigantesca calcolatrice programmabile, l' ASCC/Harvard Mark I , basata sull'analisi analitica di Babbage. Engine, che a sua volta utilizzava schede e un'unità di calcolo centrale. Quando la macchina fu finita, alcuni la salutarono come "il sogno di Babbage diventato realtà".

Durante gli anni '40, con lo sviluppo di nuove e più potenti macchine informatiche come il computer Atanasoff-Berry e l' ENIAC , il termine computer iniziò a riferirsi alle macchine piuttosto che ai loro predecessori umani. Quando divenne chiaro che i computer potevano essere usati per qualcosa di più che semplici calcoli matematici, il campo dell'informatica si allargò per studiare il calcolo in generale. Nel 1945, IBM fondò il Watson Scientific Computing Laboratory presso la Columbia University di New York City . La rinnovata casa della confraternita nel West Side di Manhattan è stato il primo laboratorio dell'IBM dedicato alla scienza pura. Il laboratorio è il precursore della Research Division di IBM, che oggi gestisce strutture di ricerca in tutto il mondo. In definitiva, lo stretto rapporto tra IBM e l'università è stato determinante per l'emergere di una nuova disciplina scientifica, con la Columbia che ha offerto uno dei primi corsi di credito accademico in informatica nel 1946. L'informatica ha iniziato a stabilirsi come disciplina accademica distinta in anni Cinquanta e primi anni Sessanta. Il primo corso di laurea in informatica al mondo, il Cambridge Diploma in Computer Science , è iniziato presso l' Università di Cambridge Computer Laboratory nel 1953. Il primo dipartimento di informatica negli Stati Uniti è stato formato alla Purdue University nel 1962. Da quando sono stati resi disponibili computer pratici, molti le applicazioni dell'informatica sono diventate aree di studio distinte a pieno titolo.

Etimologia

Sebbene proposto per la prima volta nel 1956, il termine "informatica" compare in un articolo del 1959 in Communications of the ACM , in cui Louis Fein sostiene la creazione di una Graduate School in Computer Sciences analoga alla creazione della Harvard Business School nel 1921, giustificando il nome sostenendo che, come la scienza gestionale , la materia è di natura applicata e interdisciplinare, pur avendo le caratteristiche tipiche di una disciplina accademica. I suoi sforzi, e quelli di altri come l'analista numerico George Forsythe , sono stati premiati: le università hanno continuato a creare tali dipartimenti, a partire da Purdue nel 1962. Nonostante il suo nome, una quantità significativa di informatica non comporta lo studio dei computer stessi. Per questo motivo sono stati proposti diversi nomi alternativi. Alcuni dipartimenti delle maggiori università preferiscono il termine informatica , per sottolineare proprio questa differenza. Lo scienziato danese Peter Naur ha suggerito il termine datalogy , per riflettere il fatto che la disciplina scientifica ruota intorno ai dati e al trattamento dei dati, pur non coinvolgendo necessariamente i computer. La prima istituzione scientifica a utilizzare il termine è stato il Dipartimento di Datalogia dell'Università di Copenaghen, fondato nel 1969, con Peter Naur che è stato il primo professore di datalogia. Il termine è usato principalmente nei paesi scandinavi. Un termine alternativo, proposto anche da Naur, è data science ; questo è ora utilizzato per un campo multidisciplinare di analisi dei dati, comprese le statistiche e le banche dati.

Agli albori dell'informatica , nelle Comunicazioni dell'ACM furono suggeriti un certo numero di termini per i professionisti del campo dell'informatica : turingineer , turologist , flow-charts-man , meta-matematico applicato ed epistemologo applicato . Tre mesi dopo, nella stessa rivista, fu suggerito il comptologo , seguito l'anno successivo dall'ipologo . È stato suggerito anche il termine computer .In Europa vengono spesso utilizzati termini derivati ​​da traduzioni contrattate dell'espressione "informazione automatica" (es. "informazione automatica" in italiano) o "informazione e matematica", es. informatique (francese), Informatik (tedesco), informatica (italiano, olandese ), Informática (spagnolo, portoghese), informatika ( lingue slave e ungherese ) o Pliroforiki ( πληροφορική , il che significa informatici) in greco . Parole simili sono state adottate anche nel Regno Unito (come nella School of Informatics, University of Edinburgh ). "Negli Stati Uniti, tuttavia, l' informatica è collegata all'informatica applicata o all'informatica nel contesto di un altro dominio".

Una citazione folcloristica, spesso attribuita, ma quasi certamente non formulata per la prima volta da, Edsger Dijkstra , afferma che "l'informatica non riguarda i computer più di quanto l'astronomia non riguardi i telescopi". La progettazione e la distribuzione di computer e sistemi informatici è generalmente considerata competenza di discipline diverse dall'informatica. Ad esempio, lo studio dell'hardware dei computer è solitamente considerato parte dell'ingegneria informatica , mentre lo studio dei sistemi informatici commerciali e la loro implementazione è spesso chiamato tecnologia dell'informazione o sistemi informativi . Tuttavia, c'è stata molta fertilizzazione incrociata di idee tra le varie discipline legate al computer. La ricerca informatica spesso interseca anche altre discipline, come filosofia, scienze cognitive , linguistica , matematica , fisica , biologia , scienze della Terra , statistica e logica .

Alcuni ritengono che l'informatica abbia una relazione molto più stretta con la matematica rispetto a molte discipline scientifiche, con alcuni osservatori che affermano che l'informatica è una scienza matematica. La prima informatica è stata fortemente influenzata dal lavoro di matematici come Kurt Gödel , Alan Turing , John von Neumann , Rózsa Péter e Alonzo Church e continua ad esserci un utile interscambio di idee tra i due campi in aree come la logica matematica , la categoria teoria , teoria dei domini e algebra .

La relazione tra Informatica e Ingegneria del software è una questione controversa, ulteriormente confusa dalle controversie su cosa significhi il termine "Ingegneria del software" e su come sia definita l'informatica. David Parnas , prendendo spunto dalla relazione tra altre discipline ingegneristiche e scientifiche, ha affermato che l'obiettivo principale dell'informatica è lo studio delle proprietà del calcolo in generale, mentre l'obiettivo principale dell'ingegneria del software è la progettazione di calcoli specifici per ottenere risultati pratici obiettivi, rendendo le due discipline separate ma complementari.

Gli aspetti accademici, politici e finanziari dell'informatica tendono a dipendere dal fatto che un dipartimento sia formato con un'enfasi matematica o con un'enfasi ingegneristica. I dipartimenti di informatica con enfasi sulla matematica e con orientamento numerico considerano l'allineamento con la scienza computazionale . Entrambi i tipi di dipartimenti tendono a fare sforzi per colmare il campo educativo se non attraverso tutta la ricerca.

Filosofia

Epistemologia dell'informatica

Nonostante la parola "scienza" nel suo nome, si discute se l'informatica sia o meno una disciplina della scienza, della matematica o dell'ingegneria. Allen Newell e Herbert A. Simon hanno sostenuto nel 1975,

L'informatica è una disciplina empirica. L'avremmo definita una scienza sperimentale, ma come l'astronomia, l'economia e la geologia, alcune delle sue forme uniche di osservazione ed esperienza non si adattano a uno stereotipo ristretto del metodo sperimentale. Sono comunque esperimenti. Ogni nuova macchina che viene costruita è un esperimento. In realtà costruire la macchina pone un interrogativo alla natura; e ascoltiamo la risposta osservando la macchina in funzione e analizzandola con tutti i mezzi analitici e di misurazione disponibili.

Da allora è stato sostenuto che l'informatica può essere classificata come scienza empirica poiché fa uso di test empirici per valutare la correttezza dei programmi, ma rimane un problema nel definire le leggi e i teoremi dell'informatica (se esistono) e nel definire il natura degli esperimenti in informatica. I fautori della classificazione dell'informatica come disciplina ingegneristica sostengono che l'affidabilità dei sistemi computazionali viene studiata allo stesso modo dei ponti nell'ingegneria civile e degli aeroplani nell'ingegneria aerospaziale . Sostengono anche che mentre le scienze empiriche osservano ciò che esiste attualmente, l'informatica osserva ciò che è possibile esistere e mentre gli scienziati scoprono leggi dall'osservazione, non sono state trovate leggi adeguate nell'informatica e si occupa invece di creare fenomeni.

I fautori della classificazione dell'informatica come disciplina matematica sostengono che i programmi per computer sono realizzazioni fisiche di entità matematiche e che i programmi possono essere ragionati in modo deduttivo attraverso metodi formali matematici . Gli informatici Edsger W. Dijkstra e Tony Hoare considerano le istruzioni per i programmi per computer come frasi matematiche e interpretano la semantica formale per i linguaggi di programmazione come sistemi matematici assiomatici .

Paradigmi dell'informatica

Un certo numero di scienziati informatici ha sostenuto la distinzione di tre paradigmi separati nell'informatica. Peter Wegner ha sostenuto che quei paradigmi sono scienza, tecnologia e matematica. Il gruppo di lavoro di Peter Denning ha sostenuto che sono teoria, astrazione (modellazione) e design. Amnon H. Eden li ha descritti come il "paradigma razionalista" (che tratta l'informatica come una branca della matematica, che è prevalente nell'informatica teorica, e impiega principalmente il ragionamento deduttivo ), il "paradigma tecnocratico" (che potrebbe essere trovato nell'ingegneria approcci, soprattutto nell'ingegneria del software), e il "paradigma scientifico" (che affronta gli artefatti informatici dalla prospettiva empirica delle scienze naturali , identificabili in alcuni rami dell'intelligenza artificiale ). L'informatica si concentra sui metodi coinvolti nella progettazione, specifica, programmazione, verifica, implementazione e test di sistemi informatici creati dall'uomo.

Campi

L'informatica non riguarda i computer più di quanto l'astronomia non riguardi i telescopi.

Come disciplina, l'informatica abbraccia una vasta gamma di argomenti, dagli studi teorici degli algoritmi e dei limiti del calcolo alle questioni pratiche dell'implementazione di sistemi informatici in hardware e software. CSAB , precedentemente chiamato Computing Sciences Accreditation Board—che è composto da rappresentanti dell'Association for Computing Machinery (ACM), e della IEEE Computer Society (IEEE CS)—identifica quattro aree che considera cruciali per la disciplina dell'informatica: la teoria di calcolo , algoritmi e strutture dati , metodologia e linguaggi di programmazione , elementi e architettura del computer . Oltre a queste quattro aree, CSAB identifica anche campi come ingegneria del software, intelligenza artificiale, reti e comunicazioni di computer, sistemi di database, calcolo parallelo, calcolo distribuito, interazione uomo-computer, computer grafica, sistemi operativi e calcolo numerico e simbolico come essendo aree importanti dell'informatica.

Informatica teorica

L'informatica teorica è matematica e astratta nello spirito, ma trae la sua motivazione dal calcolo pratico e quotidiano. Il suo scopo è comprendere la natura del calcolo e, come conseguenza di questa comprensione, fornire metodologie più efficienti.

Teoria del calcolo

Secondo Peter Denning , la domanda fondamentale alla base dell'informatica è: "Cosa può essere automatizzato?" La teoria del calcolo si concentra sulla risposta a domande fondamentali su cosa può essere calcolato e quale quantità di risorse sono necessarie per eseguire tali calcoli. Nel tentativo di rispondere alla prima domanda, la teoria della computabilità esamina quali problemi computazionali sono risolvibili su vari modelli teorici di computazione . La seconda domanda è affrontata dalla teoria della complessità computazionale , che studia i costi di tempo e spazio associati a diversi approcci alla risoluzione di una moltitudine di problemi computazionali.

Il famoso P = NP? problema, uno dei Millennium Prize Problems , è un problema aperto nella teoria del calcolo.

Esempio DFA.svg Sintassi tree.svg Classi di complessità.svg
Teoria degli automi Lingue formali Teoria della calcolabilità Teoria della complessità computazionale
Rete di interazione come Configuration.png Blochsphere.svg XNOR ANSI Labelled.svg Kellerautomat.svg
Modelli di calcolo Teoria del calcolo quantistico Teoria dei circuiti logici automi cellulari

Informazione e teoria dei codici

La teoria dell'informazione, strettamente correlata alla probabilità e alla statistica , è legata alla quantificazione delle informazioni. Questo è stato sviluppato da Claude Shannon per trovare limiti fondamentali alle operazioni di elaborazione del segnale come la compressione dei dati e l'archiviazione e la comunicazione affidabili dei dati. La teoria dei codici è lo studio delle proprietà dei codici (sistemi per convertire le informazioni da una forma all'altra) e della loro idoneità per una specifica applicazione. I codici vengono utilizzati per la compressione dei dati , la crittografia , il rilevamento e la correzione degli errori e , più recentemente, anche per la codifica di rete . I codici sono studiati allo scopo di progettare metodi di trasmissione dati efficienti e affidabili .

Hamming.jpg Binario simmetrico channel.svg Digitalteilchen.svg H0 h1 fehler.jpg Mandelpart2 red.png
Teoria della codifica Capacità del canale Teoria dell'informazione algoritmica Teoria del rilevamento del segnale Complessità di Kolmogorov

Strutture dati e algoritmi

Le strutture dati e gli algoritmi sono gli studi di metodi computazionali comunemente usati e la loro efficienza computazionale.

O ( n 2 ) Ordinamento quicksort anim.gif Albero (informatica).svg TSP Germania 3.png SimplexRangeSearching.svg Contrazione vertici.jpg
Analisi degli algoritmi Progettazione dell'algoritmo Strutture dati Ottimizzazione combinatoria Geometria computazionale Algoritmi randomizzati

Teoria del linguaggio di programmazione e metodi formali

La teoria dei linguaggi di programmazione è una branca dell'informatica che si occupa della progettazione, implementazione, analisi, caratterizzazione e classificazione dei linguaggi di programmazione e delle loro caratteristiche individuali . Rientra nella disciplina dell'informatica, che dipende e influisce sulla matematica , l'ingegneria del software e la linguistica . È un'area di ricerca attiva, con numerose riviste accademiche dedicate.

I metodi formali sono un particolare tipo di tecnica basata sulla matematica per la specifica , lo sviluppo e la verifica di sistemi software e hardware . L'uso di metodi formali per la progettazione di software e hardware è motivato dall'aspettativa che, come in altre discipline ingegneristiche, l'esecuzione di analisi matematiche appropriate possa contribuire all'affidabilità e alla robustezza di un progetto. Costituiscono un'importante base teorica per l'ingegneria del software, specialmente quando è coinvolta la sicurezza. I metodi formali sono un'utile aggiunta ai test del software poiché aiutano a evitare errori e possono anche fornire una struttura per i test. Per l'uso industriale è necessario il supporto dell'utensile. Tuttavia, l'alto costo di usare metodi formali mezzi che di solito sono utilizzati solo per lo sviluppo di alta integrità e sistema critico- , dove la sicurezza o la sicurezza è della massima importanza. I metodi formali sono meglio descritti come l'applicazione di una varietà abbastanza ampia di fondamenti teorici dell'informatica , in particolare calcoli logici , linguaggi formali , teoria degli automi e semantica dei programmi , ma anche sistemi di tipi e tipi di dati algebrici a problemi nelle specifiche di software e hardware e verifica.

IF-THEN-ELSE-END diagramma di flusso.svg Compilatore.svg Python add5 syntax.svg Prop-tableau-1.svg Coq plus comm screenshot.jpg
Semantica formale Teoria dei tipi Progettazione del compilatore Linguaggi di programmazione Verifica formale Dimostrazione automatizzata di teoremi

Sistemi informatici e processi computazionali

Intelligenza artificiale

L'intelligenza artificiale (AI) mira o è necessaria per sintetizzare processi orientati agli obiettivi come la risoluzione dei problemi, il processo decisionale, l'adattamento ambientale, l'apprendimento e la comunicazione presenti negli esseri umani e negli animali. Dalle sue origini nel cibernetica e nella Conferenza Dartmouth (1956), la ricerca di intelligenza artificiale è stata necessariamente interdisciplinare, attingendo aree di competenza, come la matematica applicata , logica simbolica , semiotica , ingegneria elettrica , filosofia della mente , neurofisiologia , e sociali intelligenza . L'intelligenza artificiale è associata nella mente popolare allo sviluppo robotico , ma il principale campo di applicazione pratica è stato come componente incorporato in aree di sviluppo software , che richiedono comprensione computazionale. Il punto di partenza alla fine degli anni '40 fu la domanda di Alan Turing "I computer possono pensare?", e la domanda rimane effettivamente senza risposta, sebbene il test di Turing sia ancora utilizzato per valutare l'output del computer sulla scala dell'intelligenza umana. Ma l'automazione delle attività valutative e predittive ha avuto sempre più successo come sostituto del monitoraggio e dell'intervento umano in domini di applicazioni informatiche che coinvolgono dati complessi del mondo reale.

Il rendering di Nicolas P. Rougier del cervello umano.png Occhio umano, reso da Eye.png Rete neurale colorata.svg Processo decisionale Markov.svg
Teoria dell'apprendimento computazionale Visione computerizzata Reti neurali Pianificazione e programmazione
Italian.png Knight's tour.svg Ackley.gif AutonomicSystemModel.png
Elaborazione del linguaggio naturale Teoria dei giochi computazionale Calcolo evolutivo Calcolo autonomo
Neuron.svg KnnClassification.svg ROS C logo.jpg Allineamento delle regole.gif
Rappresentazione e ragionamento Riconoscimento del modello Robotica Intelligenza dello sciame

Architettura e organizzazione del computer

L'architettura del computer, o organizzazione del computer digitale, è la progettazione concettuale e la struttura operativa fondamentale di un sistema informatico. Si concentra in gran parte sul modo in cui l'unità di elaborazione centrale si comporta internamente e accede agli indirizzi in memoria. Gli ingegneri informatici studiano la logica computazionale e la progettazione dell'hardware del computer , dai singoli componenti del processore , microcontrollori , personal computer a supercomputer e sistemi embedded . Il termine "architettura" nella letteratura informatica può essere ricondotto al lavoro di Lyle R. Johnson e Frederick P. Brooks, Jr. , membri del dipartimento Machine Organization nel principale centro di ricerca IBM nel 1959.

ABasicComputer.gif Intel Core2 arch.svg SIMD.svg Z80 arch.svg
Unità di elaborazione Microarchitettura Multielaborazione Progettazione del processore
Roomba original.jpg Diagramma di flusso.png Kernel Layout.svg Uarm metallo wiki2.jpg
Informatica onnipresente Architettura dei sistemi Sistemi operativi Input Output
Computing fisico.svg Filtro FIR General.svg Dip-1.svg Linker.svg
Sistema incorporato Calcolo in tempo reale affidabilità Interprete

Calcolo simultaneo, parallelo e distribuito

La concorrenza è una proprietà dei sistemi in cui più calcoli vengono eseguiti contemporaneamente e potenzialmente interagiscono tra loro. Sono stati sviluppati numerosi modelli matematici per il calcolo simultaneo generale, tra cui reti di Petri , calcoli di processo e il modello Parallel Random Access Machine . Quando più computer sono connessi in rete durante l'utilizzo della concorrenza, questo è noto come sistema distribuito. I computer all'interno di quel sistema distribuito hanno la propria memoria privata e le informazioni possono essere scambiate per raggiungere obiettivi comuni.

Reti di computer

Questa branca dell'informatica mira a gestire le reti tra computer in tutto il mondo.

Sicurezza informatica e crittografia

La sicurezza informatica è una branca della tecnologia informatica con l'obiettivo di proteggere le informazioni da accessi non autorizzati, interruzioni o modifiche mantenendo l'accessibilità e l'usabilità del sistema per gli utenti previsti. La crittografia è la pratica e lo studio di nascondere (crittografia) e quindi decifrare (decrittografia) le informazioni. La crittografia moderna è in gran parte correlata all'informatica, poiché molti algoritmi di crittografia e decrittografia si basano sulla loro complessità computazionale.

Database e data mining

Un database ha lo scopo di organizzare, archiviare e recuperare facilmente grandi quantità di dati. I database digitali sono gestiti utilizzando sistemi di gestione di database per archiviare, creare, mantenere e ricercare i dati, attraverso modelli di database e linguaggi di query . Il data mining è un processo di scoperta di modelli in grandi set di dati.

Computer grafica e visualizzazione

La computer grafica è lo studio dei contenuti visivi digitali e prevede la sintesi e la manipolazione di dati di immagine. Lo studio è collegato a molti altri campi dell'informatica, tra cui la visione artificiale , l' elaborazione delle immagini e la geometria computazionale , ed è fortemente applicato nei campi degli effetti speciali e dei videogiochi .

Simx2=trasl OK.svg FWDvsINV Cinematica HighResTransp.png 5-cell.gif Hud sul gatto.jpg Algoritmo di tracciamento dell'occhio della luce visibile.jpg Csg albero.png
Computer grafica 2D Animazione al computer Rendering Realtà mista Realta virtuale Modellazione solida

Elaborazione di immagini e suoni

Le informazioni possono assumere la forma di immagini, suoni, video o altri elementi multimediali. Bit di informazioni possono essere trasmessi in streaming tramite segnali . La sua elaborazione è la nozione centrale informatico , la visione europea calcolo , quale elaborazione studi informazioni algoritmi indipendentemente dal tipo di supporto di informazioni - se è elettrico, meccanico o biologico. Questo campo svolge un ruolo importante nella teoria dell'informazione , nelle telecomunicazioni , nell'ingegneria dell'informazione e ha applicazioni nell'elaborazione di immagini mediche e nella sintesi vocale , tra gli altri. Qual è il limite inferiore della complessità degli algoritmi di trasformata di Fourier veloce ? è uno dei problemi irrisolti dell'informatica teorica .

DIT-FFT-butterfly.png Modello Bayer su sensor.svg Confronto qualità Opus daltonici compatibili.svg Confronto di qualità jpg vs saveforweb.jpg MeningiomaMRISegmentation.png toms - Translation.svg
Algoritmi FFT Elaborazione delle immagini Riconoscimento vocale Compressione dati Elaborazione di immagini mediche Sintesi vocale

Informatica applicata

Scienze computazionali, finanza e ingegneria

L'informatica scientifica (o scienza computazionale ) è il campo di studio che si occupa della costruzione di modelli matematici e tecniche di analisi quantitativa e dell'utilizzo dei computer per analizzare e risolvere problemi scientifici . Un uso importante del calcolo scientifico è la simulazione di vari processi, tra cui fluidodinamica computazionale , sistemi e circuiti fisici, elettrici ed elettronici, nonché società e situazioni sociali (in particolare giochi di guerra) insieme ai loro habitat, tra molti altri. I computer moderni consentono l'ottimizzazione di progetti come aerei completi. Notevoli nella progettazione di circuiti elettrici ed elettronici sono SPICE, nonché software per la realizzazione fisica di progetti nuovi (o modificati). Quest'ultimo include software di progettazione essenziale per circuiti integrati .

Attrattore di Lorenz yb.svg Quark wiki.jpg Naftalene-3D-balls.png 1u04-argonaute.png GalvesLocherbach - Bassa risoluzione.gif Plutchik-wheel.svg Radiografia della mano, in cui l'età ossea viene rilevata automaticamente dal software BoneXpert.jpg Elmer-pump-heatequation.png Bachlut1.png
Analisi numerica Fisica computazionale Chimica computazionale Bioinformatica Neuroinformatica Psicoinformatica Informatica medica Ingegneria computazionale Musicologia computazionale

Social computing e interazione uomo-computer

Il social computing è un'area che si occupa dell'intersezione tra comportamento sociale e sistemi computazionali. La ricerca sull'interazione uomo-computer sviluppa teorie, principi e linee guida per i progettisti di interfacce utente.

Ingegneria software

L'ingegneria del software è lo studio di progettazione, implementazione e modifica del software al fine di garantire che sia di alta qualità, conveniente, manutenibile e veloce da costruire. È un approccio sistematico alla progettazione del software, che prevede l'applicazione di pratiche ingegneristiche al software. L'ingegneria del software si occupa dell'organizzazione e dell'analisi del software: non si occupa solo della creazione o della produzione di nuovo software, ma della sua organizzazione e manutenzione interna. Ad esempio test del software , ingegneria dei sistemi , debito tecnico e processi di sviluppo del software .

scoperte

Il filosofo dell'informatica Bill Rapaport ha notato tre Great Insights of Computer Science :

Tutte le informazioni su qualsiasi problema computabile possono essere rappresentate usando solo 0 e 1 (o qualsiasi altra coppia bistabile che può flip-flop tra due stati facilmente distinguibili, come "on/off", "magnetized/demagnetized", "high -tensione/bassa tensione", ecc.).
  • L'intuizione di Alan Turing : ci sono solo cinque azioni che un computer deve eseguire per fare "qualsiasi cosa".
Ogni algoritmo può essere espresso in un linguaggio per computer composto da sole cinque istruzioni di base:
  • sposta a sinistra di una posizione;
  • sposta a destra di una posizione;
  • leggi il simbolo nella posizione corrente;
  • stampa 0 nella posizione corrente;
  • stampa 1 nella posizione corrente.
  • L'intuizione di Corrado Böhm e Giuseppe Jacopini: ci sono solo tre modi di combinare queste azioni (in altre più complesse) necessarie perché un computer possa fare "qualsiasi cosa".
Sono necessarie solo tre regole per combinare qualsiasi insieme di istruzioni di base in altre più complesse:
  • sequenza : prima fai questo, poi fai quello;
  • selezione : SE tale e tale è il caso, ALLORA fai questo, ALTRIMENTI fai quello;
  • ripetizione : MENTRE questo è il caso, FARE questo.
Si noti che le tre regole dell'intuizione di Boehm e Jacopini possono essere ulteriormente semplificate con l'uso di goto (che significa che è più elementare della programmazione strutturata ).

Paradigmi di programmazione

I linguaggi di programmazione possono essere utilizzati per svolgere compiti diversi in modi diversi. I paradigmi di programmazione comuni includono:

  • Programmazione funzionale , uno stile di costruzione della struttura e degli elementi dei programmi per computer che tratta il calcolo come valutazione di funzioni matematiche ed evita dati di stato e mutevoli. È un paradigma di programmazione dichiarativo, il che significa che la programmazione viene eseguita con espressioni o dichiarazioni anziché con istruzioni.
  • Programmazione imperativa , un paradigma di programmazione che utilizza istruzioni che modificano lo stato di un programma. Più o meno allo stesso modo in cui il modo imperativo nei linguaggi naturali esprime comandi, un programma imperativo consiste di comandi che il computer deve eseguire. La programmazione imperativa si concentra sulla descrizione di come funziona un programma.
  • Programmazione orientata agli oggetti , paradigma di programmazione basato sul concetto di "oggetti", che può contenere dati, sotto forma di campi, spesso noti come attributi; e codice, sotto forma di procedure, spesso note come metodi. Una caratteristica degli oggetti è che le procedure di un oggetto possono accedere e spesso modificare i campi dati dell'oggetto a cui sono associati. Quindi i programmi per computer orientati agli oggetti sono fatti di oggetti che interagiscono tra loro.
  • Programmazione orientata ai servizi , un paradigma di programmazione che utilizza i "servizi" come unità di lavoro del computer, per progettare e implementare applicazioni aziendali integrate e programmi software mission critical

Molti linguaggi offrono supporto per più paradigmi, rendendo la distinzione più una questione di stile che di capacità tecniche.

Accademia

Le conferenze sono eventi importanti per la ricerca informatica. Durante queste conferenze, ricercatori del settore pubblico e privato presentano i loro lavori recenti e si incontrano. A differenza della maggior parte degli altri campi accademici, in informatica, il prestigio degli articoli di conferenze è maggiore di quello delle pubblicazioni su riviste. Una spiegazione proposta per questo è che il rapido sviluppo di questo campo relativamente nuovo richiede una rapida revisione e distribuzione dei risultati, un compito gestito meglio dalle conferenze che dalle riviste.

Formazione scolastica

L'informatica , conosciuta con i suoi quasi sinonimi, Computing , Computer Studies , è stata insegnata nelle scuole del Regno Unito sin dai tempi dell'elaborazione batch , contrassegnare le carte sensibili e il nastro di carta, ma di solito a pochi studenti selezionati. Nel 1981, la BBC ha prodotto un microcomputer e una rete di classi e Computer Studies è diventato comune per gli studenti di livello GCE O (11-16 anni) e Computer Science to A level . La sua importanza è stata riconosciuta ed è diventata una parte obbligatoria del Curriculum Nazionale , per le fasi chiave 3 e 4. Nel settembre 2014 è diventata un diritto per tutti gli alunni di età superiore ai 4 anni.

Negli Stati Uniti , con 14.000 distretti scolastici che decidono il curriculum, l'offerta è stata fratturata. Secondo un rapporto del 2010 dell'Association for Computing Machinery (ACM) e della Computer Science Teachers Association (CSTA), solo 14 stati su 50 hanno adottato standard educativi significativi per l'informatica nelle scuole superiori.

Israele, Nuova Zelanda e Corea del Sud hanno incluso l'informatica nei loro programmi di istruzione secondaria nazionale, e molti altri stanno seguendo.

Guarda anche

Appunti

Riferimenti

Ulteriori letture

Panoramica

  • Tucker, Allen B. (2004). Manuale di informatica (2a ed.). Chapman e Hall/CRC. ISBN 978-1-58488-360-9.
    • "In più di 70 capitoli, ognuno nuovo o significativamente rivisto, si può trovare qualsiasi tipo di informazione e riferimento sull'informatica che si possa immaginare. […] Tutto sommato, non c'è assolutamente nulla sull'informatica che non possa essere trovato l'enciclopedia da 2,5 chilogrammi con i suoi 110 articoli di indagine […]." (Christoph Meinel, Zentralblatt MATH )
  • van Leeuwen, Jan (1994). Manuale di informatica teorica . La stampa del MIT. ISBN 978-0-262-72020-5.
    • "[…] questo set è il più unico e forse il più utile per la comunità [dell'informatica teorica], a supporto sia dell'insegnamento che della ricerca […]. I libri possono essere utilizzati da chiunque voglia semplicemente comprenderne uno di queste aree, o da qualcuno che desidera essere impegnato nella ricerca in un argomento, o da istruttori che desiderano trovare informazioni tempestive su un argomento che stanno insegnando al di fuori delle loro principali aree di competenza." (Rocky Ross, Notizie SIGACT )
  • Ralston, Anthony ; Reilly, Edwin D. ; Hemmender, David (2000). Enciclopedia dell'informatica (4a ed.). Dizionari di Grove. ISBN 978-1-56159-248-7.
    • "Dal 1976, questa è stata l'opera di riferimento definitiva su computer, informatica e informatica. […] In ordine alfabetico e classificate in ampie aree tematiche, le voci coprono hardware, sistemi informatici, informazioni e dati, software, matematica dell'informatica , teoria del calcolo, metodologie, applicazioni e ambiente informatico. Gli editori hanno svolto un lavoro encomiabile nel fondere prospettiva storica e informazioni pratiche di riferimento. L'enciclopedia rimane essenziale per la maggior parte delle raccolte di riferimento delle biblioteche pubbliche e accademiche". (Joe Accardin, Università nord-orientale dell'Illinois, Chicago)
  • Edwin D. Reilly (2003). Pietre miliari nell'informatica e nella tecnologia dell'informazione . Gruppo editoriale di Greenwood. ISBN 978-1-57356-521-9.

Letteratura selezionata

Articoli

Curriculum e classificazione

link esterno

Bibliografia e motori di ricerca accademici

Organizzazioni professionali

Varie