1X
🔊 100%
Contenuti del libro
Informazioni
“9 algoritmi che hanno cambiato il futuro” di John MacCormick è un libro che ti porta dietro le quinte del mondo digitale che usiamo ogni giorno. Non parla di personaggi o luoghi fisici, ma dei veri protagonisti: gli algoritmi che rendono possibile tutto. Scoprirai come funzionano i motori di ricerca per trovare quello che cerchi online, capendo l’idea geniale dietro PageRank che ordina i risultati in base all’autorevolezza dei link. Poi ti addentrerai nei segreti della crittografia a chiave pubblica, fondamentale per comunicare in modo sicuro su Internet anche su canali non protetti, e vedrai come la compressione dati, sia senza perdita che con perdita, ci permette di gestire file enormi come immagini e audio. Il libro esplora anche come i computer imparano a riconoscere le cose, parlando di reti neurali artificiali e apprendimento automatico per compiti come il riconoscimento di forme, e ti spiega le basi affidabili dei database che gestiscono le nostre informazioni, inclusi concetti come le transazioni e le firme digitali per garantire l’autenticità. Non mancano riflessioni sui limiti stessi di ciò che i computer possono fare, toccando concetti teorici come la computabilità e l’indecidibilità. È un viaggio affascinante nei fondamenti nascosti che rendono possibile la nostra vita digitale, spiegando in modo chiaro le idee potenti che sono alla base della tecnologia moderna.Riassunto Breve
I motori di ricerca trovano le risposte alle domande degli utenti gestendo miliardi di pagine web. Questo processo ha due passaggi: prima trovano le pagine che contengono le parole cercate usando un indice, che funziona come quello di un libro ma memorizza anche dove si trovano le parole nella pagina per trovare frasi precise. L’indice include anche informazioni sulla struttura della pagina, come il titolo. Poi ordinano le pagine trovate per mostrare prima quelle più utili. Un modo per farlo è guardare quanti link riceve una pagina da altre pagine, pensando che una pagina con molti link sia più importante. Un’idea più avanzata, come l’algoritmo PageRank, considera anche quanto sono importanti le pagine che fanno i link.Comunicare informazioni segrete su Internet è come spedire un segreto su una cartolina. La crittografia a chiave pubblica risolve questo problema usando operazioni matematiche difficili da invertire per creare un segreto condiviso tra due persone, anche se qualcuno ascolta la comunicazione. Questo segreto viene poi usato per rendere il messaggio illeggibile a chi non dovrebbe vederlo. Oltre a tenere i segreti, i computer devono assicurarsi che i dati siano corretti anche se ci sono errori. Invece di ripetere tutto, si aggiungono informazioni extra al messaggio originale. Queste informazioni in più aiutano a scoprire se ci sono errori, per esempio con le somme di controllo, o addirittura a correggerli automaticamente usando codici speciali.I computer sono bravi a fare calcoli, ma riconoscere cose come facce o scritte a mano è difficile per loro. Fanno questo trattandolo come un gioco di indovinare a quale gruppo appartiene qualcosa, imparando da esempi già etichettati. Usano metodi come trovare l’esempio più simile tra quelli che conoscono per decidere a quale gruppo appartiene una nuova cosa, o costruiscono una serie di domande per arrivare alla risposta. Ci sono anche sistemi ispirati al cervello, chiamati reti neurali, che imparano a riconoscere schemi complessi regolando le loro connessioni. Per rendere i file più piccoli, si usa la compressione. Quella senza perdita permette di ricostruire il file originale esattamente, sfruttando le parti che si ripetono. Quella con perdita riduce le dimensioni togliendo informazioni che l’occhio o l’orecchio umano non notano tanto, come nelle foto o nella musica. Entrambi i tipi di compressione funzionano eliminando le informazioni inutili o ripetute.I sistemi digitali affidabili, come le banche online, hanno bisogno che i dati siano sempre giusti e che si sappia chi ha creato un file. I database sono fondamentali per gestire tante informazioni in modo ordinato e sicuro, organizzandole in tabelle. Per evitare problemi se il computer si blocca o se tante persone usano il database insieme, le azioni che cambiano i dati vengono raggruppate in “transazioni”. Una transazione deve finire tutta intera; se si interrompe, si usa un registro per sistemare le cose e riportare il database a uno stato corretto. Per non perdere i dati del tutto, si fanno copie del database in posti diversi. Per essere sicuri che tutte le copie siano uguali, si usa un metodo che controlla che siano tutte pronte prima di fare un cambiamento. I database moderni usano spesso tante tabelle collegate tra loro per non ripetere le stesse informazioni. Per rispondere a domande sui dati, creano tabelle temporanee che combinano le informazioni da diverse tabelle. Per sapere chi ha creato un file, si usano le firme digitali. Funzionano con due numeri: uno segreto per firmare e uno pubblico per controllare la firma. Chi firma usa il numero segreto per creare una firma unica per quel file. Chi controlla usa il numero pubblico e la firma per verificare che sia tutto a posto. La sicurezza sta nel fatto che è molto difficile scoprire il numero segreto da quello pubblico. Organizzazioni fidate confermano che un certo numero pubblico appartiene a una certa persona o azienda.Non tutti i problemi possono essere risolti da un computer. Ci sono compiti che i computer non possono fare per loro natura. Questo è stato scoperto dai matematici prima ancora che esistessero i computer. Un esempio è creare un programma che sappia sempre dire se un altro programma si bloccherà o no. Si dimostra che un programma così non può esistere usando un ragionamento logico che porta a una contraddizione. Questo tipo di problemi si chiamano indecidibili. Nella pratica, il limite più grande spesso non è se un problema si può risolvere, ma quanto tempo ci mette il computer a trovare la soluzione. Comunque, si possono creare soluzioni parziali che sono comunque utili per problemi che non si possono risolvere del tutto. Se il pensiero umano funziona come un computer, allora anche il cervello umano potrebbe avere gli stessi limiti. La computer science non è solo programmare; l’idea più importante è inventare e capire gli algoritmi, mentre programmare è solo lo strumento per farli funzionare. Nuovi algoritmi continuano a nascere, ma le idee di base rimangono importanti e si adattano a nuove situazioni.Riassunto Lungo
1. Come i motori di ricerca trovano e ordinano le pagine web
Ogni giorno, i motori di ricerca analizzano miliardi di pagine web per trovare le risposte che cerchiamo. Per farlo, seguono due passaggi fondamentali: prima trovano tutte le pagine che potrebbero essere utili, poi le mettono in ordine dalla più importante alla meno importante. Per trovare le pagine che contengono le parole che hai cercato, i motori di ricerca usano un indice. Funziona un po’ come l’indice di un libro: per ogni parola, c’è un elenco delle pagine in cui si trova. Se cerchi una frase esatta, l’indice ricorda anche dove si trova ogni parola nella pagina. Così, il motore di ricerca può controllare velocemente se le parole sono vicine e nell’ordine giusto senza dover leggere tutta la pagina. L’indice tiene conto anche di alcune informazioni speciali nella pagina, come il titolo o i sottotitoli. Questo aiuta a trovare le parole non solo nel testo normale, ma anche nelle parti più importanti della pagina, rendendo la ricerca più precisa.Come vengono ordinate le pagine
Mettere in ordine le pagine è fondamentale per mostrarti i risultati migliori per primi. Un modo efficace per farlo si basa su quanti collegamenti riceve una pagina da altre pagine web. L’idea semplice è che una pagina è più importante se tante altre pagine la linkano. Ma c’è un’idea più avanzata: conta anche quanto sono importanti le pagine che creano i link. Un link da una pagina già considerata importante vale di più. Google usa un sistema chiamato PageRank, che funziona un po’ come simulare una persona che naviga su internet cliccando sui link a caso. Ogni tanto, questa persona “salta” a una pagina completamente nuova. Più tempo questa persona virtuale “passa” su una certa pagina nel tempo, più quella pagina è considerata importante. Questo sistema riesce a gestire anche situazioni complicate di link e mette insieme sia quanti link una pagina riceve, sia quanto sono importanti le pagine che li inviano. Algoritmi come PageRank, basati sui collegamenti tra le pagine, sono essenziali per farti vedere i risultati più utili.Il capitolo descrive il PageRank come il sistema essenziale per ordinare le pagine. Ma è davvero sufficiente per capire il ranking moderno?
Il capitolo, pur introducendo il concetto di ranking basato sui link e sul PageRank, offre una visione parziale e datata. I moderni algoritmi di ranking dei motori di ricerca sono sistemi estremamente complessi e proprietari, che considerano centinaia, se non migliaia, di fattori diversi oltre ai semplici collegamenti tra pagine. Ignorare elementi cruciali come l’analisi del contenuto, il comportamento degli utenti, la freschezza delle informazioni e la personalizzazione dei risultati significa non cogliere la vera complessità del problema. Per approfondire, è utile studiare la disciplina dell’Information Retrieval e le dinamiche attuali del Search Engine Optimization (SEO), che analizzano l’evoluzione costante degli algoritmi. Approfondire il lavoro di ricercatori nel campo dell’Information Retrieval o di esperti del settore che analizzano i fattori di ranking attuali può fornire un contesto molto più ricco.2. Chiavi, Codici e l’Arte di Non Sbagliare
Comunicare informazioni segrete su canali pubblici, come Internet, presenta una sfida simile a spedire un segreto su una cartolina, perché chiunque può leggere il messaggio. Per risolvere questo problema, si usa la crittografia a chiave pubblica. Questa tecnica permette a due persone di creare un segreto condiviso anche se le loro conversazioni vengono intercettate. Il metodo si basa su calcoli matematici facili da fare in un senso, ma molto difficili da annullare, come l’elevamento a potenza con numeri particolari. Usando numeri pubblici e privati, le due parti combinano questi valori in un modo speciale.Proteggere i messaggi con la crittografia
Solo chi partecipa alla comunicazione può arrivare allo stesso numero segreto condiviso, mentre un osservatore esterno non riesce a calcolarlo facilmente. Questo segreto, una volta stabilito, viene poi usato per rendere illeggibili le comunicazioni in modo veloce e sicuro. In questo modo, anche se il messaggio viene intercettato, il suo contenuto rimane protetto e comprensibile solo ai destinatari previsti. La chiave pubblica è come una cassetta delle lettere aperta a tutti per imbucare, ma solo chi ha la chiave privata può aprirla e leggere il contenuto. Questo sistema è alla base di molte comunicazioni sicure che usiamo ogni giorno.Garantire l’esattezza dei dati
Oltre a tenere segrete le informazioni, i computer devono anche assicurare che i dati che viaggiano o vengono salvati siano precisi e non si rovinino a causa di errori o disturbi. Ripetere semplicemente il messaggio intero aiuta a capire se ci sono errori, ma è un metodo che spreca molta energia e spazio. Un sistema più efficiente è aggiungere informazioni extra al messaggio originale, una tecnica chiamata ridondanza. Questa ridondanza permette di scoprire se ci sono stati degli errori e, in certi casi, anche di correggerli in automatico.Scoprire e correggere gli errori
Un modo semplice per scoprire gli errori è usare le somme di controllo. Si calcola un numero speciale dal messaggio e lo si invia insieme. Chi riceve il messaggio ricalcola lo stesso numero e lo confronta con quello ricevuto. Se i numeri non coincidono, significa che c’è stato un errore e si chiede di inviare di nuovo il messaggio. Esistono anche codici più avanzati, chiamati codici a correzione d’errore. Questi codici aggiungono ridondanza in modo strutturato, creando delle “parole in codice” che non solo segnalano la presenza di un errore, ma aiutano anche a capire dove si trova e a correggerlo automaticamente. Queste tecniche sono essenziali per far funzionare in modo affidabile i sistemi digitali moderni.Ma la ‘sicurezza’ descritta nel capitolo è davvero a prova di futuro, o si basa su assunzioni che potrebbero presto crollare?
Il capitolo presenta la crittografia a chiave pubblica e i codici a correzione d’errore come soluzioni efficaci per la segretezza e l’integrità dei dati. Tuttavia, trascura un aspetto cruciale: la loro resilienza nel tempo e di fronte a nuove tecnologie. La crittografia a chiave pubblica, in particolare, si fonda sulla difficoltà computazionale di risolvere certi problemi matematici specifici. Ma cosa accade se la tecnologia progredisce al punto da rendere questi problemi ‘facili’ da risolvere? Questo è il caso, ad esempio, con l’avvento potenziale dei computer quantistici, che minacciano di rendere obsolete le attuali tecniche crittografiche più diffuse. Per comprendere appieno le sfide della sicurezza informatica, è fondamentale approfondire non solo i meccanismi attuali, ma anche le loro basi matematiche e le ricerche in corso su nuove forme di crittografia resistenti al futuro, come la crittografia post-quantistica. Autori come Diffie, Hellman, Rivest, Shamir, Adleman e Schneier sono punti di riferimento per chi vuole esplorare questi temi e le loro evoluzioni.3. Elaborazione Intelligente e Compressione dei Dati
I computer sono molto efficienti nei calcoli complessi. Tuttavia, quando si tratta di riconoscere forme, come identificare un volto in una foto o leggere una scritta a mano, gli esseri umani dimostrano una capacità naturale superiore. I computer affrontano questo tipo di compito trattandolo come un problema di classificazione. Imparano a distinguere tra diverse categorie basandosi su molti esempi che sono già stati etichettati, in modo da poter poi assegnare la categoria corretta a nuovi dati sconosciuti. Per fare questa classificazione, vengono usati diversi algoritmi. Ad esempio, il “classificatore del vicino più prossimo” determina la categoria di un nuovo dato semplicemente trovando il dato di addestramento più simile tra quelli che conosce e copiandone la classificazione. Gli “alberi di decisione” costruiscono invece una struttura di domande sequenziali: il computer impara, sempre dagli esempi di addestramento, quali domande sono più efficaci per arrivare alla classificazione corretta. Le “reti neurali artificiali”, ispirate al funzionamento del cervello umano, imparano a riconoscere schemi anche molto complessi, come la presenza di occhiali da sole in un’immagine. Questo apprendimento avviene regolando automaticamente la forza delle connessioni tra i loro nodi interni.Ridurre lo spazio: la compressione dei dati
Parallelamente all’elaborazione dei dati, c’è la necessità di gestirli in modo efficiente. La compressione dei dati permette di ridurre le dimensioni dei file, rendendo più facile archiviarli e trasmetterli. Esistono due tipi principali di compressione. La compressione “senza perdita” garantisce che il file originale possa essere ricostruito esattamente, senza perdere alcuna informazione. Questo si ottiene sfruttando la ripetizione dei dati, per esempio con tecniche come la codifica “indietro e copia” (LZ77), o assegnando codici numerici più brevi ai simboli che compaiono più frequentemente (codifica di Huffman). La compressione “con perdita”, invece, riduce le dimensioni dei file eliminando le informazioni che sono meno importanti o meno percepibili dall’occhio o dall’orecchio umano. È il metodo usato comunemente per le immagini (formato JPEG) o per l’audio (formato MP3). Questi processi di compressione si basano sull’idea di eliminare la ridondanza, cioè le parti dei dati che non sono strettamente necessarie per la nostra percezione o che si ripetono inutilmente.Ma l’indecidibilità è davvero solo una curiosità teorica con “impatto limitato” nella pratica?
Il capitolo, dopo aver illustrato con chiarezza il fondamentale “Problema della fermata” e la sua dimostrazione logica, sembra sminuire eccessivamente l’impatto pratico dell’indecidibilità, contrapponendola all’efficienza come se fossero concetti mutuamente esclusivi nella pratica quotidiana dell’informatica. In realtà, i limiti teorici della calcolabilità non sono confinati all’ambito accademico, ma emergono in settori cruciali come la verifica formale del software, la sicurezza informatica e persino in alcune aree dell’intelligenza artificiale, dove la possibilità di prevedere il comportamento di sistemi complessi è tutt’altro che un problema puramente teorico. Per comprendere meglio la pervasività e le implicazioni pratiche di questi limiti, oltre alla teoria della computabilità, è utile approfondire la logica matematica e la teoria dei sistemi formali, magari leggendo i lavori di autori come Gödel o lo stesso Turing, che hanno gettato le basi di questi concetti.6. Approfondimenti sui Fondamenti Digitali
Questo capitolo offre una serie di risorse utili per chi desidera esplorare in dettaglio i principi fondamentali che regolano il mondo digitale. Vengono suggeriti testi e materiali che spaziano su numerosi argomenti cruciali, fornendo sia introduzioni accessibili per chi si avvicina per la prima volta a queste materie, sia manuali più complessi adatti a un pubblico universitario o specializzato. L’obiettivo è fornire al lettore gli strumenti per una comprensione approfondita dei concetti che sono alla base della tecnologia che usiamo ogni giorno.Algoritmi e Ricerca sul Web
Per comprendere il cuore del funzionamento informatico, si possono consultare testi sugli algoritmi. Questi libri coprono le basi del calcolo e le strutture dati, essenziali per capire come i computer risolvono i problemi. Inoltre, vengono indicate letture specifiche sul funzionamento dei motori di ricerca, spiegando come vengono indicizzate le informazioni sul web e come vengono classificate le pagine. Si trovano anche risorse dedicate alle tecniche utilizzate per riconoscere e contrastare lo spam.Crittografia, Informazione e Compressione
Un’area fondamentale è la sicurezza delle comunicazioni, trattata in libri sulla crittografia. Questi testi spiegano i metodi per proteggere i dati, inclusa la crittografia a chiave pubblica, che permette scambi sicuri anche tra parti che non si sono mai incontrate prima. Altre risorse si concentrano sulla teoria dell’informazione, studiando come l’informazione viene misurata e trasmessa. Si trovano anche materiali sui codici per correggere gli errori durante la trasmissione e sui metodi per comprimere i dati, riducendo lo spazio necessario per archiviarli o la banda per inviarli.Intelligenza Artificiale e Apprendimento Automatico
Il campo dell’intelligenza artificiale e del machine learning è ampiamente coperto da diverse pubblicazioni. Queste risorse ne tracciano la storia e lo sviluppo, dai primi concetti alle tecniche più moderne. Si esplorano l’apprendimento automatico, che permette ai sistemi di migliorare le proprie prestazioni con l’esperienza, e le reti neurali, modelli ispirati al cervello umano utilizzati per compiti complessi come il riconoscimento di immagini e il linguaggio. Sono inclusi anche resoconti di convegni storici che hanno segnato tappe importanti in questo settore.Database e Sicurezza Digitale
Per gestire grandi quantità di dati, si possono studiare testi che descrivono il funzionamento interno dei database. Questi libri spiegano come i dati vengono organizzati, archiviati e recuperati in modo efficiente. Un altro aspetto cruciale è l’autenticità e l’integrità dei documenti digitali, affrontato attraverso l’uso delle firme digitali. Le risorse su questo tema illustrano come garantire che un documento provenga da una fonte affidabile e non sia stato modificato.Concetti Teorici e Prospettive Ampie
Infine, vengono suggerite letture che esplorano concetti più teorici e fondamentali dell’informatica, come la computabilità e l’indecidibilità, che definiscono i limiti di ciò che un computer può calcolare. Si toccano anche temi all’avanguardia come la nanotecnologia e si offre una prospettiva storica sulla scienza e la tecnologia. Esempi specifici di libri che approfondiscono questi temi includono “The New Turing Omnibus”, “Algorithms”, “Codici & segreti”, “L’informazione”, “Machine Learning”, “Database Systems” e biografie di figure chiave che hanno contribuito a plasmare il mondo digitale. Articoli fondamentali e atti di conferenze forniscono ulteriori spunti di riflessione.Ma capire i “fondamenti digitali” si limita a conoscere gli ingranaggi tecnici, o implica anche confrontarsi con le loro implicazioni sociali, etiche e politiche?
Il capitolo fornisce una solida base tecnica, elencando argomenti cruciali per comprendere il funzionamento del mondo digitale. Tuttavia, sembra trascurare il contesto più ampio in cui questi ‘fondamenti digitali’ operano e le profonde trasformazioni che inducono nella società. La tecnologia non è un semplice insieme di strumenti neutri; ha profonde ripercussioni sulla società, sull’etica e sulla politica. Affrontare solo il ‘come funziona’ senza considerare il ‘cosa fa’ e ‘a chi giova’ lascia una lacuna significativa nella comprensione di come la tecnologia “che usiamo ogni giorno” impatti realmente le nostre vite. Per avere una visione completa, è essenziale integrare lo studio tecnico con riflessioni da campi come l’etica della tecnologia, la sociologia digitale o gli studi critici sui media. Autori come Zuboff, O’Neil o Morozov possono fornire gli strumenti concettuali necessari per questa analisi critica e per comprendere le dinamiche di potere e le conseguenze non intenzionali legate all’applicazione dei fondamenti digitali.Abbiamo riassunto il possibile
Se vuoi saperne di più, devi leggere il libro originale
Compra il libro[sc name=”1″][/sc] [sc name=”2″][/sc] [sc name=”3″][/sc] [sc name=”4″][/sc] [sc name=”5″][/sc] [sc name=”6″][/sc] [sc name=”7″][/sc] [sc name=”8″][/sc] [sc name=”9″][/sc] [sc name=”10″][/sc]