L'informatica è un elemento essenziale della società moderna, non solo in quanto necessaria al normale svolgimento di quotidiane attività, ma anche in quanto il suo sviluppo plasma e determina quello dell'intera società. Non esiste campo dell'attività umana in cui le scoperte dell'informatica non abbiano lasciato il segno. L'uso del calcolatore è uscito dai campi tradizionali del calcolo scientifico per entrare in tutte le aree della produzione industriale, dalla medicina all'editoria. Dall'applicazione dell'informatica alle telecomunicazioni è nata, ad esempio, la "telematica", che ha trasformato il modo di comunicare permettendo di collegare in rete calcolatori e consentendo lo scambio immediato di documenti complessi, immagini e suoni. L'informatica è un complesso di conoscenze scientifiche e tecnologiche che permettono di utilizzare quello che si potrebbe chiamare il metodo informatico. Se il metodo scientifico può essere riassunto nel formulare ipotesi che spieghino un fenomeno e nel verificare tali ipotesi mediante l'esecuzione di esperimenti, il metodo informatico consiste nel formulare algoritmi che risolvano un problema, nel trasformare questi algoritmi in sequenze di istruzioni (programmi) per le macchine e nel verificare la correttezza e l'efficacia di tali programmi analizzandoli ed eseguendoli. La realizzazione del metodo informatico richiede, dunque, conoscenze matematiche e logico-deduttive, per proporre soluzioni precise e corrette e per realizzarle in un linguaggio di programmazione, conoscenze ingegneristiche, che permettano di saper modellare il problema in esame, di modulare la soluzione proposta sviluppandola con tecniche che ne garantiscano la manutenibilità, conoscenze di carattere interdisciplinare, per essere in grado di sviluppare strumenti per settori della società tra i più disparati, e conoscenze di carattere etico, per capire le problematiche di sicurezza, riservatezza e legalità che insorgono nello sviluppo di tali strumenti. Da quanto tempo esiste la scienza Informatica? L'informatica, considerata una delle scienze moderne per eccellenza, affonda in relatà le radici nel passato. I "padri" dell'informatica sono solitamente considerati i due studiosi del secolo scorso: • • John Von Neumann (1903-1957), che ideò la cosiddetta architettura di Von Neumann, sulla base della quale sono costruiti i moderni.computer Alan Turing (1912-1954), ideatore del modello matematico detto macchina di Turing, prototipo di ogni moderno sistema programmabile. L'introduzione del personal computer, e quindi l'arrivo dell'informatica nelle case di tutti, è invece un evento molto più recente: il primo PC fu costruito da Steve Wozniak e Steve Jobs negli anni '70 in un garage nei dintorni di San Francisco. Gli stessi due seguito fondarono la Apple. Infine, la più grande rivoluzione informatica dei nostri tempi, cioè l'introduzione di internet, risale anch'essa solo agli anni '70 dello scorso secolo: Vinton Cerf e Robert Kahn hanno sviluppato e dimostrato per la prima volta nel 1972 la funzionalita’ del protocollo TCP/IP, sul quale si basa la trasmissione delle informazioni sulla rete. Provarono una connessione di 29 punti (computer in rete) dopo circa un anno di preparazione. Oggi Internet conta milioni di punti. Nello stesso anno Ray Tomlinson spedì il primo messaggio email della storia. Oggi, più di 500 milioni di messaggi di posta elettronica attraversano internet ogni giorno! Cos'è l'Informatica? Cosa studia l'Informatica? E' una domanda semplice, ma la risposta è complessa. L'informatica affonda le proprie radici nella matematica, ma ormai è una scienza ben distinta. Per capire quali sono i rapporti tra matematica e informatica, e quali sono invece le peculiarità dell'informatica come scienza, è utile fare un semplice esempio. Consideriamo un'operazione matematica semplicissima, che tutti noi sappiamno eseguire: la moltiplicazione a due cifre. La matematica e l'informatica hanno due punti di vista diversi sul problema della moltiplicazione a due cifre: • • La Matematica si occupa di scoprire un procedimento per risolvere il problema. L'Informatica si occupa di codificare questo procedimento in un linguaggio eseguibile da una macchina. Se ci è noto un procedimento, possiamo spiegarlo ad un altra persona o a una macchina L'Informatica si occupa proprio di codificare la procedura matematica in maniera da renderla comprensibile al computer. Perchè? • • • Perchè la macchina può eseguire la procedura molto più rapidamente dell'uomo. Perchè l'uomo può commettere errori nell'eseguire la procedura, mentre la macchina la applicherà sempre in maneira corretta. Perchè, lasciando i compiti più lunghi e ripetitivi alla macchina, l'uomo può dedicarsi ad attività più utili. Come spiegare a una macchina un (semplice) procedimento? Proviamo a descrivere come si esegue la moltiplicazione a due cifre: 1. Prendi la cifra che sta in basso a destra e moltiplicala per la cifra che sta in alto a destra 2. Scrivi il risultato sotto le due cifre considerate, solo se minore di 10 3. Altrimenti scrivi una cifra sotto le due ed una di riporto 4. ... Anche la procedura per un'operazione così banale, composta da operazioni di base molto semplici, può diventare piuttosto complicata e difficile da spiegare in maniera corretta e non ambigua... Perchè troviamo difficile descrivere in maniera esatta un procedimento che sappiamo applicare in maniera semplice? Tentando di descrivere il problema con il nostro linguaggio naturale, non siamo in grado di specificarlo in maniera precisa, chiara e compatta. Il problema è che non utilizziamo i giusti mezzi per risolvere un problema di informatica. L'oggetto centrale dell'Informatica è l'algoritmo. Un algoritmo è una descrizione completa e non ambigua di una procedura. Alla base dell'Informatica c'è proprio la capacità di dare una descrizione algoritmica di ogni problema. Gli algoritmi, infatti, possono essere "insegnati" alle macchine. Alla base dell'informatica, dunque, non c'è il computer, bensì concetti come, ad esempio: • • • • Le tecniche di progettazione algoritmica Le metodologie di modellazione del software I linguaggi di programmazione I compilatori Per l'informatica, il computer è solo lo strumento che esegue algoritmi. Ma non basta uno sistema meno complicato per eseguire in maniera automatica una procedura semplice? Che bisogno c'è degli algoritmi? Sebbene fin qui abbiamo parlato di opeazioni semplici, gli algoritmi possono codificare procedure di qualsiasi complessità e non soltanto legate a operazioni matematiche, come ad esempio: • • • • • Risolvere un'equazione di secondo grado. Mantenere in ordine alfabetico un insieme di informazioni (persone, definizioni, ...). Trovare il percorso più breve tra due località. Mantenere la posizione dell'aereo in equilibrio rispetto alle condizioni circostanti. Permettere il collegamento efficiente e veloce di due computer distanti (internet). Gli algoritmi servono quindi solo a programmare i computer? In realtà ogni oggetto elettronico, come ad esempio un telefono cellulare, è programmato con algoritmi specifici. La differenza tra il computer e questi strumenti elettronici è nella capacità di un computer di apprendere nuovi algoritmi ed eseguirli quindi autonomamente. A nessun altro strumento possiamo far svolgere un nuovo compito, mentre i compiti di un computer sono tutti da definire e progettare (programmare), grazie agli algoritmi. Riassumendo, cos'è (e cosa non è) l'Informatica? L'informatica è... L'informatica non è... • La scienza che studia i processi per • La tecnica per montare e smontare i la risoluzione dei problemi. computer. • La scienza del ragionamento • La conoscenza di particolari automatico. pacchetti software. • La tecnica per installare il software. • La scienza che ha come principale • L'abilità di navigare su Internet. applicazione il mondo dei • La conoscenza di tutti i linguaggi di computer e del software (linguaggi, programmazione. algoritmi, architetture, applicazioni, interfacce , web). • Non è solo programmare.