Il 0% ha trovato utile questo documento (0 voti)
0 visualizzazioni

teoria informatica

Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato DOCX, PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
0 visualizzazioni

teoria informatica

Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato DOCX, PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 13

INFORMATICA – TUTTA LA TEORIA

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:

-il dato è un elemento conosciuto, un’informazione grezzo o elementare ed è solitamente


costituito da simboli che devono essere elaborati.

-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.

IMMAGAZZINAMENTO E TRASFERIMENTO DATI:

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.

BIT (BInary digiT):

Elemento (binario) che codifica un dato corrispondente ai valori logici “Vero” o “Falso”. Può
essere rappresentato da un dispositivo che assume due stati.

IL BYTE: combinazione di 8 bit. Può rappresentare un simbolo un simbolo (lettera, cifra o


simbolo tipografico) tra 2*2*…2 = 2 alla 8 = 256 diversi.

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).

Esempio: +3 = 011 (11 per rappresentare il 3 e 0 per indicare che è positivo).

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 analogica: assumono un qualunque valore all’interno di un


intervallo (non necessariamente limitato).

I segnali/dati possono avere natura digitale: possono assumere solo un numero finito di valori
distinti all’interno di un intervallo (finito).

Molti segnali/dati sono “tendenzialmente” di tipo analogico (audio/video/immagini) ma è più


conveniente rappresentarli in forma digitale. Perché digitale? Qualità della trasmissione: con il
segnale digitale è più semplice rilevare errori. Prestazioni: trasmissione digitale consente di
trasmettere una maggiore quantità di dati all’interno della stessa banda. Campionamento: il
segnale continuo viene campionato ad intervallo di tempo regolari t. Il segnale risultante è un
insieme finito di punti equidistanti nel tempo. Tuttavia, le ampiezze ancora devono essere
approssimate ad intervalli discreti, ossia quantizzate: si noti innanzitutto che campionamento e
quantizzazione comportano una perdita di informazione. La quantizzazione suddivide
l’intervallo in possibili valori del segnale n sotto intervalli uguali che poi vengono codificati in
binario. Ogni valore del segnale campionato viene approssimato al più vicino valore discreto.
Più sotto intervalli (e quindi più bit) si utilizzano, più l’approssimazione risultante sarà precisa.

UN ESEMPIO, RAPPRESENTARE LE IMMAGINI:

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?

Il termine algoritmo deriva da “Algorismus”, traslitterazione latina di un matematico persiano


del IX secolo, che ne descrisse il concetto applicato alle procedure per eseguire alcuni calcoli
matematici. Un algoritmo è l’insieme di istruzioni che deve essere applicato per eseguire
un’elaborazione o risolvere un problema.

INPUT ---------- insieme di regole per ottenere l’output atteso a partire da un dato input -------
OUTPUT

COME SI CREA UN ALGORITMO? PENSIERO COMPUTAZIONALE:

Definizione: “il pensiero computazionale è un processo di formulazione di problemi e soluzioni


in una forma che sia eseguibile da un agente che processi informazioni”. Esso non consiste
semplicemente nel saper programmare, ma nel pensare a diversi livelli di astrazione. Il
pensiero computazionale è un processo iterativo basato su tre fasi: astrazione (formulazione
del problema) --automazione (espressione della soluzione) -analisi (esecuzione e
valutazione della soluzione).

PENSIERO COMPUTAZIONALE, ELEMENTI IMPORTANTI:

Decomposizione: Suddividere un problema in tanti piccoli sotto problemi che permettono di


capire, descrivere o eseguire meglio.

Riconoscimento di pattern: identificare similarità oppure differenze che ci aiutano a predire o a


risolvere più facilmente.

Astrazione: preservare le informazioni rilevanti in un contesto e sopprimere informazioni che


sono irrilevanti in quel contesto per risolvere un problema. Usiamo l’astrazione per organizzare
le cose, una sorta di quadro generale in modo da poter ragionare senza pensare ai dettagli.

Creazione di un algoritmo: sviluppare una strategia passo per passo per risolvere un problema.

IL LINGUAGGIO DI UN ALGORITMO: non c’è linguaggio predefinito per specificare un algoritmo.


L’importante è che si capisca bene cosa fanno le istruzioni. Solitamente, si usano le istruzioni
con una sintassi facilmente comprensibile che somigli ad un linguaggio di programmazione. Ci
si riferisce a questo linguaggio con il termine “pseudocodice”.

ALGORITMO E STRUTTURE DATI: concetto di algoritmo è inscindibile da quello di dato. Da un


punto di vista computazionale, un algoritmo è una procedura che prende dei dati in input e,
dopo averli elaborati, restituisce dei dati in output. I dati devono essere organizzati e strutturati
in modo tale che la procedura che li elabora sia “efficiente”. Una struttura dati è un modo di
organizzare i dati per accelerare determinate operazioni. Gli algoritmi invece sono strutture dati
per poter essere più veloci, essi sono parametrici, cioè, producono un risultato che dipende da
un insieme di dati di partenza. Le istruzioni dell’algoritmo fanno riferimento a variabili, il cui
valore non è fissato a priori ma cambia a seconda della situazione elaborativa e del punto a cui
è arrivata l’esecuzione.

COSA RENDE UN ALGORITMO BUONO?

Correttezza: produrre correttamente il risultato desiderato; Efficienza: essere efficienti in


termini di tempo di esecuzione ed occupazione di memoria.

QUALI SONO LE COSE NECESSARIE PER PROCESSARE QUESTI BIG DATA?


1- Piattaforme di calcolo più potenti: due le idee alla base della piattaforma di calcolo di
Google, ossia Google file system che è in grado di distribuire i dati tra migliaia di
computer; e Map Reduce, ossia un metodo algoritmico per dividere l’esecuzione di un
compito in parti più piccole inviandole per l’esecuzione ad una serie di computer e
raccogliendo il risultato alla fine dell’elaborazione in un nodo centrale.
2- Algoritmi più veloci: non basta avere solamente un hardware più potente.
3- Algoritmi più brillanti: servono nuovi algoritmi capaci di trasformare dati “privi di
significato” in indicazione effettivamente utilizzabili. Collezionare grandi moli di dati
statistici e di numeri porta un beneficio molto limitato se non c’è un livello aggiuntivo di
intelligenza algoritmica.

04 – ALGORITMI – PARTE DUE


ALGORITMI E FLOW-CHART: in informatica il diagramma di flusso (flow-chart) è una
rappresentazione grafica delle operazioni da eseguire per l’esecuzione di un algoritmo. Ogni
singolo passo è visualizzato tramite una serie di simboli standard:

TEOREMA DI BOHM-JACOPINI: un algoritmo ha sempre un inizio e una fine per definizione.


LA PROGRAMMAZIONE: un algoritmo per essere utile deve essere codificato tramite linguaggio
di programmazione. La programmazione appartiene al reame dell’arte, esistono canoni con cui
si può stabile se se un programma è ben scritto o no, o dimostrare che un programma sia
corretto o efficiente.

ALGORITMO DI GALE-SHAPLEY:

Trovare un accoppiamento stabile, input: lista di n uomini, n donne e la loro lista di preferenze.
Output: accoppiamento stabile.

CAPITOLO 05- RISORSE IN RETE


COS’E’ UNA RETE: una rete informatica è un insieme di dispositivi (nodi) collegati tra loro
tramite mezzi trasmissivi (cablati o wireless). Consente di comunicare e condividere
informazioni e risorse. È classificata a seconda delle dimensioni. Può coprire zone circoscritte
oppure vaste aree. Le regole che descrivono il funzionamento della rete sono chiamate
protocolli.

PROTOCOLLI DI COMUNICAZIONE: il solo collegamento fisico non è sufficiente per permettere la


comunicazione tra calcolatori. Infatti, ciascuno di essi è dotato di una o più applicazioni in
grado di effettuare il trasferimento dati. È necessaria la presenza di un software che consenta
lo scambio di dati sulla base di regole definite in un protocollo, quasi sempre integro nel
sistema operativo. Un protocollo di comunicazione è un insieme di regole e convenzioni che
controllano lo scambio di dati in una comunicazione.

TASSONOMIA DELLE RETI (basata su dimensione):

-reti personali----- collegamenti limitati a qualche metro, tipicamente tra dispositivi


appartenenti allo stesso utente.

-reti locali--- limitata estensione, collegano dispositivi collocati sullo stesso edificio o in
adiacenti.

-reti metropolitane-- collegano dispositivi situati nella stessa area urbana.

-reti geografiche-- collegano dispositivi diffusi in un’ampia area geografica

-reti di reti--> collegano più reti differenti mediante opportuni elementi di interfaccia, che si
possono estendere letteralmente ovunque

MEZZI UTILIZZATI PER LA TRASMISSIONE:

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.

LA TRASMISSIONE RADIO (WIRELESS):

I segnali vengono trasmessi e ricevuti mediante antenne. Quest’ultima trasmittente irradia


nello spazio onde elettromagnetiche, che l’antenna ricevente capta. Può essere direzionale
(punto-punto) o non direzionale (broadcast o multipunto). Inoltre, lo spettro di frequenze
utilizzato nelle trasmissioni radio può essere suddiviso in vari intervalli.

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.

INTERNET: È un’infrastruttura (rete di reti) costituita dalla interconnessione di più reti


autonome. Si basa su un insieme di protocolli di comunicazione, denominati Protocol Suite,
definiti da un organismo internazionale. Funzione su scala globale.

INTERNET, RETI LOCALI E INSTRADAMENTO: Internet è costituita dalla interconnessione di reti


(sottoreti), che sono interconnesse mediante router. L’indirizzo di sorgente e destinazione
permette al router di instradare correttamente i pacchetti verso la destinazione.
CLOUD COMPUTING: the cloud (nuvola), è una metafora per internet. Nel cloud computing le
capacità di elaborazione e di storage vengono fornite da fornitori specializzati, attraverso
internet, ad una moltitudine di utenti. È un paradigma di elaborazione in cui risorse
dinamicamente scalabili e spesso virtualizzate viene fornito come servizio attraverso la rete.
Non è necessario che gli utenti abbiano conoscenza o competenze sulla infrastruttura
tecnologica che li supporta.

PERCHE’ VIENE UTILIZZATO IL CLOUD COMPUTING? Non vi è nessun software da scaricare e


installare sul pc. Non si deve acquistare una licenza software. Nessuna necessità di upgrade del
software quando vengono aggiunte nuove funzioni o eliminati problemi esistenti. Si può
accedere ai propri documenti da qualsiasi computer connesso in rete. È possibile condividere i
documenti con altri utenti, senza bisogno di un proprio server. Nessun problema in caso di
crash del proprio computer: i documenti sono al sicuro nel server.

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.

COMPONENTI DI UN MOTORE DI RICERCA:

- Il crawler, che si occupa di scaricare in locale le pagine


- Indicizzatore, che crea un indice dei documenti
- Query Processor, che riceve la richiesta da parte dell’utente e restituisce i risultati
ordinati

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.

TRAPPOLE DELL’ORDINAMENTO SEMPLICE: L’algoritmo semplice funziona quando c’è una


singola pagina che dovrebbe essere la prima nell’elenco secondo la maggior parte delle
persone. Consideriamo una richiesta tipo “giornali”, non c’è necessariamente una singola,
intuitivamente miglior risposta. Se applichiamo infatti l’ordinamento semplice:

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.

AUTORITA’ E CONCENTRATORI (hub):

- 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.

APPROCCIO 2: PAGE RANK


PAGE RANK: ordina le pagine secondo autorevolezza. Applicato all’interno web piuttosto che ad
un insieme ristretto di pagine definite dal risultato di una ricerca. Indipendente dalla specifica
richiesta, ed è l’algoritmo di Google per ordinare le pagine.

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.

PROBLEMA, ACCUMULO DEL PAGERANK: Le pagine in un ciclo accumulano rank ma non lo


distribuiscono. Analogia con un fluido: perché l’acqua non continua ad accumularsi e si ferma
esclusivamente nei punti più in basso? Il fattore di contro-bilanciamento è l’evaporazione.

INTERPRETAZIONE PROBABILISTICA DEL PAGERANK: Può essere formulato come una


camminata casuale sul web. Si parte scegliendo una pagina a caso, ogni pagina ha la stessa
probabilità. Si seguono quindi i link per una sequenza di passi: ad ogni passo, si prende un link
in uscita dalla pagina corrente e si va alla pagina a cui si punta. Il PageRank della pagina X
dopo k ripetizioni della regola di aggiornamento base corrisponde alla probabilità di essere alla
pagina X dopo k passi di una passeggiata casuale.

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.

Un grafo G=(V, E) consiste in un insieme V di vertici (o nodi) e un insieme di coppie di vertici,


detti archi (o spigoli): ogni arco connette due vertici (gli archi rappresentano relazioni tra due
vertici). Ad esempio, V= insieme di persone che vivono in Italia.

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 di Eulero: un grafo è percorribile se e solo se una di queste due condizioni è


soddisfatta: -tutti i vertici hanno grado pari oppure solo due vertici hanno grado dispari. Un
cammino di questo tipo è ancora ad oggi conosciuto come cammino Euleriano, intanto è stato
dimostrato che la passeggiata di Koenigsberg non è possibile.

ESEMPIO 2, ANALISI DNA: come spesso accade in matematica, la soluzione ad un problema


astratto trova applicazioni inaspettate. Vi era un problema di assemblaggio di DNA: dati
frammenti di DNA provenienti da un genoma, e bisognava ricostruire il genoma.

PROBLEMA DELLE AMICIZIE: considerate un gruppo N di amici, e considerate il grafo delle


amicizie (esempio: amicizie di Facebook). Problema: in questo gruppo esistono (almeno) due
persone distinte che hanno lo stesso numero di amici? V = insieme degli N amici); E = ((A, B):
A è amico di B). È un grafo orientato o non orientato? E’ non orientato perché, se A è amico di B
anche B è amico di A, quindi, non c’è bisogno della direzione.

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.

COME PUO’ ESSERE DESCRITTA LA STRUTTURA DI UN SOCIAL NETWORK: Intuizione: ogni


persona ha un insieme di conoscenze generalmente riguardanti le persone vicine, (es: i vicini di
casa, i colleghi, i membri della squadra in cui gioca) La rete risultante dovrebbe avere una
struttura “a griglia“=> diametro dovrebbe crescere con il numero dei vertici.

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.

DATABASE: un Database è una collezione (organizzata, persistente, condivisa) di dati. Il


DataBase Management System (DBMS) è un sistema software, hardware che implementa il
database. Dunque, quest’ultimo è una sola rappresentazione che dunque evita ridondanze,
disallineamenti e inutili ripetizioni di dati ed operazioni. Vi è inoltre maggiore controllo e
l’accesso è gestito e regolato da un sistema di gestione di dati (DBMS) che assicura: efficienza,
usabilità, riservatezza e affidabilità dei dati.

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).

OPERAZIONI RELAZIONALI: La proiezione è una visualizzazione verticale della tabella (solo


alcune colonne). La selezione è una visualizzazione orizzontale della tabella (solo alcune righe
soddisfano una condizione). Il Join è l’unione di record che sono memorizzati su tabelle diverse.

PROGETTARE UN DATABASE: La progettazione consiste nel costruire un modello di realtà, la


progettazione del database avviene in più fasi, ciascuna delle quali produce un progetto più
dettagliato che raffina il modello.

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).

SERVIZI DI CYBERSECURITY: -confidenzialità o riservatezza: rendere impossibili a terze parti


comprendere dati ed informazioni scambiate tra un mittente e uno o più destinatari. -integrità:
proteggere dati ed informazioni da modifiche del contenuto, accidentali oppure effettuate
maliziosamente. Disponibilità: garantire l’accesso ad un servizio o a delle risorse. -
autenticazione: assicurare l’identità di un utente. -controllo degli accessi: impedire l’accesso ad
una risorsa da parte di utenti non autorizzati. -non ripudio: garantire che nessuno dei
corrispondenti possa negare la transazione.

Potrebbero piacerti anche