






Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Lezione spiegata in modo dettagliato
Tipologia: Dispense
1 / 10
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!







DEFINIZIONE DI INFORMAZIONE
PERCHÉ È IMPORTANTE L’INFORMAZIONE?
Un calcolatore (cioè un computer) serve per gestire ed elaborare i dati.
Tuttavia esiste un sottoinsieme di programmi per i quali è possibile capire se termineranno oppure no. In alcuni casi, infatti, il comportamento del programma è evidente. Per esempio, nel caso mostrato nella slide, il programma contiene un ciclo while(true) che stampa continuamente la parola “Ciao”. Poiché la condizione è sempre vera , il ciclo continua all’infinito e quindi il programma non terminerà mai.
Un algoritmo deve rispettare alcune proprietà fondamentali.
in modo da poter essere eseguiti facilmente.
diverse.
sempre lo stesso risultato. La definizione formale di algoritmo descrive l’algoritmo in modo più matematico. Dato un algoritmo A, si indica con fₐ la funzione che associa a ogni dato di ingresso x dell’algoritmo A il risultato in uscita. In altre parole, l’algoritmo prende un input, esegue una serie di operazioni e produce un output. Si dice quindi che fₐ rappresenta il problema risolto dall’algoritmo A, perché descrive la relazione tra i dati in ingresso e il risultato ottenuto. In questo modo un algoritmo può essere visto come una funzione che trasforma un input in un output. ESEMPI APPLICATI ALLA VITA QUOTIDIANA Gli algoritmi non riguardano solo i computer, ma possono essere applicati anche a molte attività della vita quotidiana. Infatti un algoritmo è semplicemente una sequenza ordinata di passaggi per risolvere un problema o svolgere un compito. Per esempio, una ricetta di cucina può essere vista come un algoritmo, perché indica passo dopo passo cosa fare per preparare un piatto. Anche il procedimento della divisione in colonna tra due numeri è un algoritmo, perché segue una serie precisa di operazioni. Allo stesso modo, le operazioni da fare per sostituire l’olio alla moto possono essere considerate un algoritmo, perché richiedono una sequenza ordinata di azioni.
Gli albori dell’informatica sono legati all’esigenza di poter effettuare calcoli in modo automatico. Per molti secoli, infatti, matematici e fisici svolgevano i calcoli manualmente, spesso impiegando moltissimo tempo.
problemi matematici. Questo mostra quanto fosse lungo e complesso il lavoro di calcolo prima dell’invenzione dei computer.
fecero persino una gara di velocità per risolvere un problema di matematica differenziale. Episodi come questi dimostrano quanto fosse importante trovare strumenti capaci di automatizzare i calcoli, idea che porterà poi alla nascita dei calcolatori elettronici.
Il padre del calcolatore è considerato Charles Babbage. Nel 1822 progettò un dispositivo meccanico capace di eseguire calcoli automaticamente. Questa macchina era pensata per effettuare calcoli su polinomi e rappresentava un’idea molto avanzata per l’epoca. Tuttavia Babbage non riuscì mai a costruirla completamente, quindi il progetto rimase solo sulla carta. La macchina avrebbe dovuto essere programmata meccanicamente prima dell’esecuzione e poi messa in funzione tramite un sistema di ingranaggi azionato da una manovella. Nonostante non sia stata realizzata, l’idea di Babbage è considerata alla base dello sviluppo dei moderni calcolatori. Nel 1837 Charles Babbage progettò una nuova macchina chiamata Analytical Engine (macchina analitica). Questa macchina è considerata la prima macchina di calcolo programmabile, cioè capace di essere programmata per risolvere diversi problemi. L’Analytical Engine rappresentava un’idea molto innovativa, perché prevedeva un sistema in cui le operazioni potevano essere controllate da istruzioni, in modo simile ai computer moderni. Per questa macchina Ada Lovelace scrisse un programma, diventando così la prima programmatrice della storia. Per questo motivo è spesso considerata una figura fondamentale nella nascita dell’informatica. L’ENIAC fu la prima macchina elettronica programmabile, costruita nel 1946. Il suo nome significa Electronic Numerical Integrator and Calculator, cioè Calcolatore e Integratore Numerico Elettronico. Era una macchina molto grande: occupava un’intera stanza e aveva bisogno di operatori che controllassero il suo funzionamento. Era lunga circa 30 metri, alta 3 metri e pesava circa 30 tonnellate. Nonostante le dimensioni enormi, per l’epoca era molto veloce: in un secondo poteva eseguire circa 5000 somme e 300 moltiplicazioni. La costruzione dell’ENIAC fu molto costosa: circa mezzo milione di dollari dell’epoca, che corrispondono a circa 10 milioni di dollari di oggi. Questo calcolatore rappresenta uno dei primi grandi passi nello sviluppo dei computer moderni. ENRICO FERMI E IL CALCOLO AUTOMATICO Enrico Fermi, considerato uno dei padri della fisica nucleare, diede anche un importante contributo allo sviluppo dell’informatica in Italia. Quando utilizzò per la prima volta un calcolatore elettronico , comprese subito le grandi possibilità che questo strumento poteva offrire per la ricerca scientifica. Nel 1945 scrisse una lettera al Rettore dell’Università di Pisa per convincerlo a costruire il CEP (Calcolatrice Elettronica Pisana), uno dei primi calcolatori sviluppati in Italia. Si racconta inoltre che, ancora prima che il calcolatore arrivasse, Fermi stesse già preparando programmi per risolvere equazioni differenziali utili per le sue ricerche sull’atomo, dimostrando di aver intuito in anticipo l’importanza del calcolo automatico. A partire dall’ENIAC è possibile distinguere diverse generazioni di computer. Ogni generazione è caratterizzata da una tecnologia di base diversa, che ha portato a miglioramenti progressivi nel funzionamento dei calcolatori. Con il passare delle generazioni, infatti,
Le performance dei computer sono molto importanti perché oggi i calcolatori sono diventati strumenti fondamentali nella vita quotidiana e vengono utilizzati in molti ambiti, come il lavoro, la comunicazione, la ricerca e i servizi. Quando un algoritmo viene eseguito su un computer, deve garantire tempi di esecuzione utili, cioè tempi sufficientemente rapidi da rendere il risultato davvero utilizzabile. Per questo motivo, nello studio dell’informatica è importante valutare quanto velocemente un algoritmo riesce a risolvere un problema, perché se richiedesse troppo tempo, anche un computer molto potente potrebbe non essere efficace. Per capire meglio l’importanza delle performance, si può considerare il caso dei supercomputer. Dal 2018 uno dei più potenti è IBM Summit (OLCF-4). Questo computer è enorme , grande circa come due campi da basket, utilizza circa 220 km di cavi e ha una potenza di calcolo di circa 200 petaFLOPS, cioè può eseguire un numero enorme di operazioni al secondo. Nonostante questa grande potenza, esistono comunque problemi molto complessi che nemmeno un supercomputer riesce a risolvere in tempo utile. Ad esempio, se per ottenere un risultato servissero milioni di anni, quel tempo non sarebbe utile, perché nel frattempo il risultato non avrebbe più valore.Questo dimostra che, in informatica, non conta solo risolvere un problema, ma risolverlo in un tempo ragionevole. Un esempio di problema difficile in informatica è la fattorizzazione di numeri molto grandi, cioè numeri con moltissime cifre. Questo problema consiste nel trovare i numeri primi che, moltiplicati tra loro, danno come risultato quel numero. È considerato un problema intrattabile, perché non conosciamo un algoritmo capace di risolverlo in tempi utili quando i numeri sono molto grandi. Proprio su questa difficoltà si basano molte tecniche moderne di crittografia e di firma digitale: i sistemi di sicurezza funzionano perché è facile moltiplicare numeri primi molto grandi, ma è estremamente difficile fare il processo inverso, cioè fattorizzare il numero ottenuto.