teoria informatica
teoria informatica
02 – INFORMAZIONE E CODIFICA
INFORMAZIONE E DATI: Un dato è una descrizione elementare di una cosa, di una transazione,
di un avvenimento o di altro. L’informazione è l’insieme di dati, correlati tra loro, con cui
un’idea (o un fatto) prende forma ed è comunicata.
L’elaborazione dei dati può portare alla conoscenza di un’informazione, che associa un
significato ai dati. Dal punto di vista informatico:
-l’informazione è un elemento che deriva dall’elaborazione di più dati e che permette di venire
a conoscenza di qualcosa. La stessa informazione può essere rappresentata in modi diversi.
Una stessa rappresentazione può dare informazioni diverse a seconda del contesto e del
destinatario.
Il dato è “portato da” o “trasmesso su” o “memorizzato in” qualcosa: il supporto fisico non è il
dato stesso e richiede un supporto fisico, ma non coincide con esso. Ogni supporto fisico ha le
sue caratteristiche in quanto supporto per i dati. Alcuni supporti sono particolarmente adatti
alla trasmissione dei dati ma non alla loro memorizzazione. Per altri supporti vale il viceversa
(Cd, DVD).
DATO E CODICE:
Codifica: permette di rappresentare un dato mediante un certo codice, per poter essere scritta
su un supporto fisico. Decodifica: permette di estrarre i dati da un messaggio codificato, letto
da un supporto fisico.
Elemento (binario) che codifica un dato corrispondente ai valori logici “Vero” o “Falso”. Può
essere rappresentato da un dispositivo che assume due stati.
Nel sistema decimale, ogni cifra deve essere moltiplicata per una potenza di 10 il cui
esponente è pari al numero di cifre che seguono la cifra considerata: 12 = 1 x 10 alla 1 + 2 per
10 alla zero
NOTAZIONE BINARIA: Stessa cosa, come nel sistema binario, ogni cifra deve essere moltiplicata
per una potenza di 2.
OVERFLOW: si verifica quando il risultato è troppo grande per essere contenuto nel numero
finito di bit messo a disposizione delle rappresentazioni dei numeri e il riporto fluisce fuori.
Esempio: la somma di due numeri di 4-bit produce un numero non rappresentabile su 4 bit.
NUMERI NEGATIVI: Non ci sono simboli speciali come + e –. Possiamo decidere che il bit più
significativo denoti + /-. Bit più significativo = = +(numero positivo). Bit più significativo = 1 –
(numero negativo).
Usando un bit per il segno con n bit possiamo rappresentare i numeri da -2 alla n-2 a +2 alla n-
2.
NUMERI NEGATIVI: COMPLEMENTO A DUE:
Il bit più significativo corrisponde al segno (0 positivo, 1 negativo). Per codificare il numero
decimale -14.
1- Convertire il numero in binario per potenze di 2 (16x0, 8x1, 4x1, 2x1, 1x0). In virtù di ciò
otteniamo 01110 su 5 bit totali.
2- Fare il complemento a uno, ossia invertire ogni bit: gli 0 diventano 1, e gli 1 diventano 0.
In virtù di ciò otteniamo 10001.
3- Si somma 1 al risultato: 10001 + 1 = 10010. Questo è il complemento a due di 14, cioè
-14 = 10010.
4- Interpretazione: il primo bit è 1, ciò significa che è un numero negativo.
5- Come verificare che è davvero -14? Sommiamo 10010 (cioè -14) con 01110 (ossia +14).
Il risultato della somma deve dare 00000.
ANALOGICO VS DIGITALE:
I segnali/dati possono avere natura digitale: possono assumere solo un numero finito di valori
distinti all’interno di un intervallo (finito).
Le immagini digitali non hanno una struttura continua, ma sono costituite da un numero finito
di componenti monocromatiche (pixel) prodotte dal campionamento dell’immagine reale.
Questi pixel assumono valori finiti di intensità luminosa.
03 – ALGORITMI – PARTE 1:
CHE COS’E’ UN ALGORITMO?
INPUT ---------- insieme di regole per ottenere l’output atteso a partire da un dato input -------
OUTPUT
Creazione di un algoritmo: sviluppare una strategia passo per passo per risolvere un problema.
ALGORITMO DI GALE-SHAPLEY:
Trovare un accoppiamento stabile, input: lista di n uomini, n donne e la loro lista di preferenze.
Output: accoppiamento stabile.
-reti locali--- limitata estensione, collegano dispositivi collocati sullo stesso edificio o in
adiacenti.
-reti di reti--> collegano più reti differenti mediante opportuni elementi di interfaccia, che si
possono estendere letteralmente ovunque
Mezzi cablati: linee fisiche che portano il segnale fino al ricevitore supportano la trasmissione di
segnali elettrici (doppino telefonico o cavo coassiale) oppure ottici (fibre ottiche).
Mezzi radio (wireless): irradiazione di segnali elettromagnetici nello spazio, in modo più o meno
diretto. Varie frequenze di trasmissione, uso di antenne e propagazione via onda di terra,
troposfera, ionosfera e spazio.
RETI WI-FI: I suoi vantaggi possono essere ad esempio la riduzione dei costi di cablaggio e il
fatto che il wi-fi supporta indifferentemente dispositivi statici e mobili. Gli svantaggi possono
essere la velocità attorno a qualche decina di mega-bit da confrontare con i 100-1000 di una
rete ethernet e i possibili problemi di sicurezza.
RETI BLUETOOTH: sviluppate per connettere telefoni cellulari con altri dispositivi poi esteso alle
reti locali a cortissimo raggio. I prodotti che adottano lo standard Bluetooth hanno un minuscolo
ricetrasmettitore a breve raggio, che opera sulla banda radio priva di licenza disponibile a
livello mondiale, 2.45 GHz, e supporta velocità di trasferimento dati di 2-3 Mbps. Hanno inoltre
un bassissimo consumo energetico.
TECNOLOGIA NFC: La tecnologia NFC permette comunicazioni bidirezionali a corto raggio (fino
a 10cm). È stata sviluppata congiuntamente da Philips, LG, Sony, Samsung, Nokia. Opera,
inoltre, alla frequenza di 13.56 MHz e può raggiungere una velocità di 424 kbit/s.
QUALI POSSONO ESSERE I PROBLEMI: È necessaria una connessione internet con una banda
adeguata. Tutti i propri dati risiedono su un server remoto, di cui non si ha il controllo
(nonostante si possano fare backup). Data privacy e non è agevole lavorare off-line: per
ricevere e trasmettere le modifiche occorre essere connessi.
PER LA CLASSIFICAZIONE DELLE RICERCHE SONO ESSENZIALI I LINK: I link sono essenziali per
identificare risultati importanti.
ORDINAMENTO DEL WEB: I documenti nel web sono prima ordinati secondo la loro rilevanza
rispetto alla ricerca effettuata (query). Sono poi usati metodi di ordinamento per gestire
l’enorme quantità di documenti/dati disponibili e restituire prima i risultati più rilevanti. Questi
metodi di ordinamento includono la classificazione (manuale) e analisi del link.
PERCHE’ ANALIZZARE I LINK: il web non è soltanto una collezione di documenti, i suoi hyperlink
sono importanti. I link possono essere referenziali o informativi (più dettagli). Influenzano
l’ordinamento delle pagine web e così hanno valore commerciale. L’idea di usare i link è in
qualche modo presa in prestito dall’analisi delle citazioni.
CITAZIONI VS LINK: I link web sono in realtà diversi dalle citazioni: molti link sono usati solo per
la navigazione. Molte pagine con un alto numero di link in entrata sono portali, non fornitori di
contenuti. Non tutti i link sono di raccomandazione. I siti delle “company” non puntano mai ai
loro competitori.
APPROCCIO 1: ORDINAMENTO SEMPLICE
-Raccoglie un campione molto ampie di pagine rilevanti alla richiesta. Ogni pagina nel
campione “vota” attraverso i suoi link. Raccoglie poi i voti e ordina i risultati secondo il numero
di link di entrata.
PROBLEMI CON L’ORDINAMENTO SEMPLICE: Il cosiddetto Easy Bombing, uno o più soggetti
influenzano il comportamento del motore di ricerca (sfruttando caratteristiche dell’algoritmo di
ranking) in modo da falsare i risultati.
RICERCA DI LISTE: otteniamo punteggi elevati per giornali molto noti (risultati che ci
aspettiamo). Ci sono però pagine che ricevono molti link in entrata indipendentemente dalla
ricerca effettuata (Facebook). Oltre a risposte alla specifica richiesta si trovano pagine che
riportano liste di risorse sull’argomento. Si può dunque supporre che tra le pagine che riportano
molti voti, quelle che votano per pagine popolari siano in realtà liste. Il valore di una pagina
come lista è uguale alla somma dei voti ricevuti da tutte le pagine per cui vota. Le pagine che
sono marcate come liste è più probabile che rimandino a risultati validi. Si aumenta il peso del
loro voto e si calcola di nuovo il punteggio.
- Autorità = un’autorità è una pagina con molti link in entrata. L’idea è che la pagina
possa avere dei contenuti di qualità o autorevoli su qualche argomento e quindi molte
persone mettono un link alla pagina.
- Hub = un hub è una pagina con molti link in uscita. La pagina serve come un
organizzatore dell’informazione su un particolare argomento e punta a molte pagine
autorevoli sullo stesso argomento.
Un buon hub per un argomento punta a molte pagine autorevoli su quell’argomento. Una
pagina autorevole per un argomento è puntata da molti buoni hub per quell’argomento. Una
sorta di rafforzamento circolare (mutuale) tra hub e pagine autorevoli, che porta ad un
miglioramento iterativo.
PAGE RANK, L’IDEA: le pagine web variano moltissimo in termini del numero di link in entrata.
In genere, le pagine con molti link sono più importanti rispetto a quelle con pochi link. Questi
ultimi arrivato da pagine autorevoli garantiscono maggiore importanza ad una pagina. Una
pagina ha punteggio (rank) alto se la somma dei punteggi dei suoi link in entrata è alto. Questo
vale sia nel caso in cui una pagina ha molti link in entrata sia quando la pagina ha pochi link in
entrata ma con alti punteggi.
Possiamo pensare al PageRank come una sorta di fluido che circola attraverso la rete. Il fluido
passa da nodo a nodo attraverso gli archi che li collegano. Il fluido viene “attirato” verso i nodi
più importanti.
REGOLA BASE DI AGGIORNAMENTO DEL PAGERANK: Ogni pagina divide in parti uguali il suo
attuale valore di PageRank tra i suoi link in uscita e passa questi valori alle pagine a cui punta.
Il pagerank totale non aumenta o diminuisce, ma semplicemente si distribuisce da un nodo ad
altri. Se la pagina non ha link in uscita, passa tutto il suo pagerank attuale a sé stessa. Ogni
pagina imposta il suo PageRank alla somma delle parti che riceve da altre pagine (o da se
stessa).
EQUILIBRIO DEL PAGERANK: A seconda della struttura della rete, può o non può esserci un
unico insieme di valori limite che porta un ad equilibrio ---- si può mostrare che se una rete è
fortemente connessa c’è un unico insieme di valori in equilibrio ---- in questo caso, ogni volta
che esiste un insieme di valori limite del PageRank, allora questi sono i soldi valori che
soddisfano ad una condizione d’equilibrio.
RIASSUNTO DEL PAGERANK: Il PageRank si calcola durante il crawler. In risposta ad una query:
ottieni pagine corrispondenti alla query di testo e restituiscili in ordine di punteggi di pagerank
(ordine indipendente dalla query).
CAPITOLO 06 – GRAFI
GRAFI: è uno strumento indispensabile per l’analisi di reti e, quindi, di social network. È
fondamentale anche per comprendere come funziona un moderno motore di ricerca
(PageRank), in più anche i navigatori moderni sono basati su algoritmi su grafi.
TERMINOLOGIA: Grafo si denota G (V, E) oppure G= (V, E). Con n = numero di vertici e m =
numero di archi. Grafo non orientato ha archi senza frecce, mentre il grafo orientato
ovviamente ha archi con le frecce per indicare direzioni. I grafi (o più comunemente le reti)
sono dovunque.
ESEMPI DI RISULTATI: i ponti di Koenigsberg. Un problema che ha resistito nei secoli, fino alla
risoluzione di Eulero. È possibile fare una passeggiata che ci faccia attraversare ogni ponte una
sola volta? La soluzione di Eulero consisteva nel modellarlo come un problema su grafi. V =
insieme delle regioni connesse al suolo ed E = ponti che connettono le regioni al suolo.
Attraversare un arco vuole dire partendo da un vertice raggiungere uno dei vertici adiacenti ad
esso.
Teorema: In questo gruppo, esistono (almeno) due persone distinte che hanno lo stesso numero
di amici.
Versione graph-theoretic: in ogni grafo non orientato, esistono almeno due vertici con lo stesso
grado.
ANALISI DELLE RETI SOCIALI TRAMITE GRAFI: Una rete può essere facilmente visualizzata e
analizzata, ma una rete enorme come Facebook, Twitter, reti di trasporto ecc è molto più
complicato. Per analizzare si cercano delle proprietà e si utilizzano delle misure.
CAPITOLO 07 – DATABASES:
DATI STRUTTURATI VS DATI NON STRUTTURATI: I primi hanno una lunghezza definita, un tipo ed
un formato. Spesso sono inseriti in database. Sono dei tipi di dati generati da macchine e da
persone. I dati non strutturati invece sono tipicamente testo in formato libero come e-mail,
tweets, messaggi di testo ecc ecc.
ALCUNI DEI PRINCIPALI RISCHI CON I BIG DATA: Sicurezza dei dati: maggiore è la mole e la
quantità dei dati, più grande è il pericolo che possano diventare il bersaglio di malintenzionati.
Riservatezza dei dati: strettamente legato alla sicurezza ma riguarda principalmente dati delle
singole persone. Costi: per la raccolta, l’aggregazione, il salvataggio, l’analisi e la reportistica
relativa ai data (budgeting). Analisi non corrette: non interpretare in maniera corretta i dati.
Dati poco validi: collezione di dati irrilevanti oppure erronei oppure obsoleti.
BASI DI DATI: Immaginate la seguente situazione: siete gestori di una compagnia aerea e
dovete memorizzare i dati relativi a: -ogni passeggero (Nome, ID, punti bonus), ogni volo (ID,
destinazione, partenza, durata), acquisti passeggere (ID volo, ID passeggero), ogni velivolo (ID,
peso, capacità, carburante), tutti gli aeroporti (locazione, dimensione), dipende (nome, ID,
stipendio).
Una semplice soluzione, salvare tutto su file. Creo un file per ogni passeggero, uno per ogni
volo. Non è però una buona soluzione!
Troppi problemi: aggiornare i singoli file è troppo laborioso (ne ho migliaia). Come incrocio i dati
contenuti nei diversi file? Dove salvo i file? E se si rompe l’hard-disk? Ho anche troppi voli in
contemporanea, diversi dipendenti dovrebbero aggiornare contemporaneamente lo stesso file.
Dunque, usare file è una pessima idea. La soluzione è un Database: risolve praticamente tutti
i problemi visti nella precedente slide.
IL MODELLO RELAZIONALE: nasce nel 1970 da un articolo di Codd (informatico inglese). L’idea
era quella di creare un database che fosse una collezione di insiemi di record (relazione tra un
numero fisso di tipi di dato prefissati). Codd definì così un’algebra (algebra relazionale) per
operare su queste relazioni di dati. Un’algebra è un insieme di operazioni tra oggetti. Nel nostro
caso, oggetti = dati (relazioni). In un database relazionale, gli insiemi di relazioni si modellano
come tabelle. Il modello relazionale, dunque, organizza i dati in tabelle con record (righe)
aventi un numero fisso di campi (colonne).
FASI DELLA PROGETTAZIONE: Analisi dei requisiti, ossia raccolta delle specifiche dell’utente.
Successivamente, progettazione concettuale (elaborazione di uno schema concettuale
rappresentativo della realtà d’interesse). Progettazione logica, traduzione del modello
concettuale in uno schema logico di dati e sottoschemi in un linguaggio DBMS per poi la
progettazione fisica finale, con la scelta delle caratteristiche fisiche effettive del database, quali
strutture d’accesso ed organizzazione.
CAPITOLO 8 – CYBER SECURITY:
ATTACCHI ALLA SICUREZZA: Attacchi passivi: hanno l’obiettivo di leggere i contenuti dei
messaggi e monitorare il traffico, non alterando però i dati e sono difficili da individuare.
Attacchi attivi: suoi esempi possono essere l’impersonificazione (masquerade) e sono difficili da
prevenire ma facili da individuare.
CANALI D’ATTACCO: accesso via rete oppure diretto al computer, quindi una disponibilità fisica
da parte dell’attaccante o tramite l ‘inserimento inconsapevole (USB che inconsapevolmente
contiene virus).