Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
A differenza della mente umana, intesa come attività del cervello, che è in grado di affrontare e
risolvere problemi nuovi a mezzo di facoltà cognitive come intuizione e ragionamento, il computer,
in quanto macchina, pur partendo ugualmente da dei dati in input, è invece un semplice esecutore di
ordini, compiti o istruzioni impartite dall'esterno per risolvere determinati problemi d'interesse
attraverso un algoritmo di risoluzione del problema stesso in modo tale che a partire da determinati
input produca determinati output attraverso elaborazione degli stessi. Esso nasce dunque per
eseguire programmi o applicazioni: un computer senza un programma da eseguire è inutile.
Il programma o software di base di gran lunga più importante per un computer (se previsto
nell'architettura generale) senza il quale la macchina non potrebbe funzionare è il sistema operativo,
che si occupa di gestire la macchina, le sue risorse hardware e le altre applicazioni che vi sono
eseguite.[23] Fornisce così all'utente un'interfaccia (grafica o testuale) con la macchina gestendo o
coordinando in maniera efficiente le operazioni di Input/Output comandando le rispettive
periferiche di sistema, gestendo le operazioni di esecuzione dei programmi applicativi assegnandovi
di volta in volta le risorse hardware necessarie al processamento (scheduling) ed infine gestendo
l'archiviazione e l'accesso ai dati memorizzati attraverso il cosiddetto file system.
Dal punto di vista hardware il computer inoltre è un sistema elettronico digitale (programmabile)
che elabora cioè tutti i dati in formato digitale o numerico ovvero come sequenze di 0 e 1
corrispondenti a due livelli di tensione (alto e basso) corrispondenti a loro volta ai due stati fisici di
interruttore aperto e chiuso. La logica elettronica interna di funzionamento è dunque basata
sull'Algebra di Boole. Il linguaggio dell'hardware è propriamente un linguaggio macchina ovvero
sequenze di bit cui si associano per semplice codifica i linguaggi a più alto livello. Ovviamente
l'immissione dei dati in input alla macchina elaboratrice è di tipo alfa-numerico decimale per cui è
necessaria un'operazione di traduzione o codifica delle informazioni in binario; viceversa per
ottenere una visualizzazione in output dei risultati dell'elaborazione è necessaria una traduzione o
codifica inversa da binario ad alfa-numerico decimale. Tale codice è generalmente il codice ASCII.
A larghe linee la progettazione di sistemi di elaborazione a livello hardware ricade in massima parte
nel campo dell'ingegneria informatica (la quale a sua volta afferisce conoscenze dall'ingegneria
elettronica), mentre lo sviluppo software è affidato in massima parte al campo dell'informatica pura.
Pur tuttavia i confini tra le due discipline non sono rigidi bensì spesso assai sfumati.
Un'applicazione di videoscrittura tipica di un PC
Applicazioni pratiche
Le chiavi di successo del computer sono dunque la grande potenza di elaborazione e la notevole
capacità di memorizzazione che, in qualità di macchine, estendono le rispettive capacità umane di
calcolo, processamento e memorizzazione consentendo una diminuzione sensibile dei tempi
richiesti per la risoluzione di un problema dato o spesso la sua effettiva risoluzione, altrimenti non
possibile. Ad essa si aggiunge la grande usabilità grazie al suo utilizzo in molti campi
dell'elaborazione dati (vedi i sistemi embedded) e, sul fronte del consumo di massa, allo sviluppo di
innumerevoli applicazioni a favore di una vasta gamma di utenti e, nella maggior parte dei casi,
anche la semplicità di utilizzo da parte dell'utente stesso grazie all'implementazione di sistemi di
interfacciamento utente/macchina molto spesso di tipo user-friendly.
velocità: la velocità di un processore è costantemente aumentata in linea con la legge di
Moore, stessa cosa dicasi per la capacità di memorizzazione;
economicità: il costo di un processore e del computer in toto è diminuito progressivamente
nel tempo per motivi di economia di scala;
flessibilità: facilità di configurazione e riconfigurare attraverso software;
scalabilità: la dimensione dei programmi può crescere sino ai limiti della memoria o dello
spazio di memorizzazione senza costi aggiuntivi.