Sei sulla pagina 1di 17

L’informatica: studio teorico dell’informazione, della computazione e

degli strumenti di elaborazione automatica.

Dato: insieme di simboli di un alfabeto


Informazione: si ottiene relazionando dati con proprietà
Conoscenza: è ad un livello maggiore di astrazione, permette di trattare
l’informazione
Linguaggio naturale è ambiguo. Il linguaggio formale evita le ambiguità
nell’interpretazione ed è composto da un alfabeto finito di simboli e una
grammatica formale

Nei calcolatori l’informazione è codificata in bit. Perché è possibile


rappresentare il valore dei bit su dispositivi bistabili. Un bit può assumere
i valori 0 e 1 (2 bit hanno 4 sequenze possibili, 3 bit 8 … n bit=2n seq.
Poss.)

La memoria del calcolatore contiene sequenze di bit che codificano


l’informazione. La sua capacità è misurata in bit, byte

La Macchina di Turing: è un dispositivo per l’elaborazione


dell’informazione. Permette di analizzare le proprietà dell’elaborazione
automatica dell’informazione, degli algoritmi e della complessità
È fatta da: un alfabeto finito, un nastro diviso in celle, una testina capace
di leggere e scrivere le celle, un insieme finito di stati, un registro di stati,
una tabella delle azioni
L’informazione viene elaborata tramite algoritmi, sequenze di istruzioni
che indicano all’esecutore le operazioni da eseguire sulle informazioni.
L’info in ingresso è detta input, in uscita è output

Algoritmo: sequenza di istruzioni la cui esecuzione consente di risolvere


uno specifico problema. Un algoritmo deve avere le seguenti
caratteristiche:
- Deve avere un esecutore
- Ha tipicamente dei dati di input e output
- Deve essere formulato in un linguaggio comprensibile all’esecutore
- Deve contenere solo istruzioni elementari
- Non deve essere ambiguo
- Deve fornire dei dati di output in un tempo finito
- Deve essere deterministico
- I dati di input possono essere parametrici
Esempio di algoritmo: le ricette (input sono gli ingredienti… output il
piatto finito) NO perché le ricette sono ambigue

Diagrammi di flusso: sono la notazione grafica


per la rappresentazione di algoritmi, rappresenta
il flusso di operazioni che porta alla soluzione di
un problema.
Ci sono vari blocchi nei diagrammi di flusso:
blocchi di inizio e fine (ovali), blocco operazione
(rettangoli), blocco di controllo (rombo), blocchi
di input e output (parallelepipedi)
Un linguaggio di programmazione è un linguaggio formale usato per
descrivere gli algoritmi.
Un programma è un algoritmo espresso in un linguaggio di
programmazione
Linguaggio macchina (sequenza di bit); linguaggio assemblatore,
linguaggio ad alto livello (java, c); linguaggio naturale
Per eseguire i programmi bisogna prima tradurli in linguaggio macchina

I software vengono sviluppati dalle software house. Tipi di licenza


- Licenza d’uso, la copia è vietata
- Shareware, prodotto in prova
- Freeware, prodotto distribuito gratuitamente
- Software libero e software open source, distribuito gratuitamente
assieme alla versione sorgente
Il software si divide in software di base e software applicativo
(videoscrittura, produzione presentazioni multimediali, applicazioni legate
a internet e al web)

Sistema Operativo: è un software di base che permette l’interazione tra


utente e calcolatore tramite una serie di programmi
Es. Linux (ubuntu) è una famiglia di SO open source; Microsoft windows;
Mac OS; Android
Le componenti principali di un SO sono:
- Nucleo (kernel)
- Gestore della memoria
- Gestore del dispositivo
- File system
- Gestore della rete
- Interprete dei comandi
Diversi processi vengono gestiti dalla CPU in modo tale che l’utente creda
che la loro esecuzione sia parallelaMultiprogrammazione
La multiprogrammazione richiede la presenza di un gestore della
memoria in grado di:
- controllare la RAM in maniera efficiente
- gestire lo spazio necessario a ciascun processo;
- proteggere lo spazio di ogni processo;
- gestire lo spazio comune tra i processi

Le periferiche virtuali:
- un processo opera come se la periferica sia a sua completa
disposizione;
- il processo è device independent grazie ai driver
l’impiego di una periferica in un dato SO è dipendente dalla presenza di
un driver specifico
La gestione dei file viene effettuata dal file system. I file sono organizzati
nel file system in maniera gerarchica a partire da una cartella root. Dalla
root viene originata una gerarchia con struttura ad albero. Il file system
memorizza le seguenti proprietà per ogni file:
- formato
- dimensione
- data e ora di creazione e ultima modifica
- autorizzazioni
i moderni SO integrano la gestione della rete e sono spesso definiti
Network Operating Systems (NOS). Esistono diverse modalità di
interazione tra utenti e calcolatori in ambito di rete:
- int. Uomo – calcolatore locale
- int. Uomo – calcolatore remoto (server)
- int. Tra uomini mediata da calcolatori (chat)
L’interfaccia utente: è la componente che gestisce l’interazione
uomo/macchina. Utenti diversi hanno autorizzazioni diverse:
amministratore di sistema, operatore di sistema, programmatore, utente
applicativo.
Malware: software maligno (virus, trojan, spyware, adware, spam)

Architettura di Von Neumann


Obbiettivo: realizzare un calcolatore universale con le seguenti
caratteristiche:
- presenza di un dispositivo di memorizzazione
- utilizzo dell’aritmetica binaria
- separazione tra dispositivi di memorizzazione ed elaborazione
il calcolatore è così composto:
- processore o CPU, legge dalla memoria istruzioni che esegue su dati
di memoria
- memoria (centrale e di massa), contiene dati o istruzioni in celle
identificate da un indirizzo numerico
- interfaccia, interagisce con l’ambiente tramite periferiche di input e
output
- bus, canale di comunicazione per lo scambio di info
Problema collo di bottiglia di von Neumann. La CPU elabora dati molto
più velocemente di quanto il bus sia in grado di trasferirne
La frequenza con cui vengono eseguite le istruzioni è data dal clock. La
frequenza di clock viene indicata in hertz e determina la velocità
massima di elaborazione della CPU. Le CPU moderne hanno una
frequenza di clock di alcuni GHz
La memoria centrale(RAM): E’ il dispositivo di memorizzazione che
interagisce con la CPU tramite bus per eseguire le istruzioni. E’ una
memoria volatile, per mantenere le informazioni deve essere alimentata,
però ha tempi di accesso ridotti!
La memoria di massa: Garantisce la persistenza dei dati, l’accesso in
lettura e scrittura è più lento rispetto alla RAM. La principale memoria di
massa è il disco rigido. Le memorie di massa si possono classificare in
dispositivi magnetici, dispositivi ottici e memorie flash
Periferica: dispositivo connesso all’unità centrale del calcolatore, che
permette l’immissione o l’emissione di dati. Le periferiche si connettono
tramite connettori (connettore usb, dispositivo bluetooth)
Le caratteristiche che permettono di differenziare diversi calcolatori sono:
velocità di elaborazione, capacità di archiviazione dati, affidabilità,
sicurezza, dotazione di periferiche, capacità di connettersi ad altri
elaboratori o dispositivi, dimensioni, modularità (compatibilità delle
componenti), scalabilità (consentire il miglioramento)

Codifica dell’info: rappresentare i dati su un supporto fisico con sequenze


di simboli che codificano l’info; il supporto fisico viene trasformato e ciò
modifica i dati; i dati ottenuti vengono decodificati generando nuova info.
La codifica che viene usata nei calcolatori è una notazione binaria
posizionale, i bit 0 e 1 vengono moltiplicati per le potenze di 2 (con n bit si
possono esprimere 2n numeri naturali)
Come si trasforma un numero in codice binario?
- Il numero da convertire è il dividendo
- Dividi il numero per due
- Ai passi successivi il dividendo è il quoziente della divisione
precedente, continua fino a quando il dividendo è nullo
- La sequenza inversa dei resti delle divisioni è il numero binario
(es. 114 114/2=57 resto 0; 57/2=28 resto 1; 28/2=14 resto 0; 14/2=7
resto 0; 7/2= 3 resto 1; 3/2=1 resto 1; ½=0 resto 1 144 = 1110010
Codifica analogica:
- richiede l’individuazione di una grandezza analoga
- ad ogni variazione della prima deve corrispondere una variazione
della seconda
Codifica digitale:
- richiede l’introduzione di un alfabeto di simboli
- richiede regole di codifica per associare una grandezza a una
sequenza di simboli
(es. 18 caramelle. Cod. analogica 18 sassolini; cod. digitale la sequenza
di due simboli 1 e 8 (18))
Pro e Contro
- l’approccio digitale è più compatto, meno ingombrante
- la codifica analogica contiene meta-informazioni (qunatifica le
differenze tra valori)
- senza regole di codifica non si può sapere se 13 è maggiore di 31 o
che la differenza tra 5 e 3 dà 2; con la cod. analogica si
Grandezze discrete: valori appartenenti ai numeri naturali (1,2,3…)
Grandezza continue: valori appartenenti ai numeri reali (1,42 1,38…)
Se un valore continuo viene rappresentato con una codifica digitale è
necessario discretizzarlo, bisogna quindi eseguire il processo di
quantizzazione, che prevede l’individuazione di un numero finito di
intervalli dove tutti i valori all’interno di esso vengono rappresentati con
lo stesso simbolo (es 1,45 e 1,49 diventano 1,4)
Per rappresentare l’andamento nel tempo di una grandezza continua,
usando una codifica digitale, è necessario effettuare un campionamento
Si divide l’intervallo di osservazione del fenomeno in sottointervalli. Il
valore viene rilevato in un istante. La frequenza di campionamento è
definita come numero di campioni per unità di tempo. Una frequenza di
7Hz indica che ogni secondo vengono rilevati 7 campioni
Sia la quantizzazione che il campionamento portano a una
approssimazione
La codifica digitale ha avuto grande successo grazie ai calcolatori… la
codifica binaria ha solo 2 valori trasmissibili quindi è più facile capire si ci
sono stati errori di trasmissione. Per individuarli si usano meccanismi di
ridondanza. Il messaggio viene scomposto in più blocchi e inviato più
volte
La codifica del testo viene realizzata associando un codice binario ad ogni
singolo carattere. ASCII - American Standard Code for Information
Interchange: ogni carattere è rappresentato da una sequenza di 7 bit;
ASCII esteso: usa una codifica a 8 bit; Unicode, usa una codifica a 21 bit
(2M di caratteri)
File txt, contengono esclusivamente caratteri. File doc, contengono il
testo e le informazioni sulla formattazione
Metodi di campionamento sono utilizzati anche per la rappresentazione
di immagini. I dispositivi di acquisizione delle immagini effettuano una
codifica campionando l’immagine in una bitmap. La bitmap è una matrice
di pixel (picture element) Ogni pixel assume un colore specificato nella
codifica. La qualità dell’immagine dipende dalla dimensione dei pixel.
Grossi=immagine sgranata. Piccoli=immagine fedele all’originale.
Anche i metodi di quantizzazione sono utilizzati anche per la
rappresentazione di immagini. La quantizzazione viene usata per
rappresentare i colori. La profondità di colore (color depth) è il numero di
bit usato per rappresentare il colore dei pixel. In un’immagine
monocromatica in bianco e nero il colore dei pixel viene codificato con un
bit (0 nero, 1 bianco)
Per rappresentare i colori vengono combinati alcuni colori primari su vari
livelli di intensità
- Modelli sottrattivi - a partire dal colore bianco CMYK (Cyan,
Magenta, Yellow and Key)
- Modelli additivi - a partire dal colore nero. RGB (Red, Green, Blue -
detto truecolor) - usato nel video del calcolatore. Non è
propriamente additivo perché ogni pixel è diviso in 3 parti, e la
combinazione di rosso, verde e blu dà il colore desiderato
È chiaro che codifiche diverse portano ad ottenere immagini di
dimensione diverse
La Compressione: Processo che consiste nella riformulazione del
contenuto informativo con una codifica differente che permette di
ridurne le dimensioni
- Compressione lossless (senza perdita) -Il processo di compressione
è reversibile. Il rapporto di compressione e la riduzione
dell’occupazione di spazio dipendono dal tipo di formato dei dati
- Compressione lossy (con perdita) - parte delle informazioni viene
persa irreversibilmente. Viene cambiato il colore di alcuni pixel;
vengono tolte frequenze molto alte o suoni a basso volume video…
La crittografia è una tecnica usata per garantire la riservatezza dei dati
durante la trasmissione. (Algoritmi crittografici a chiave segreta)
Algoritmi crittografici a chiave pubblica (crittografia asimmetrica)
prevedono una coppia di chiavi, la conoscenza della prima non consente
di calcolare la seconda. L’algoritmo di cifratura usa una delle chiavi e
quello di decifratura l’altra. Ogni persona in possesso della chiave
pubblica può cifrare i messaggi e inviarli ma solo la persona in possesso
della chiave privata può decifrare i messaggi.

In generale, una rete è un insieme di:


- dispositivi informatici, detti nodi della rete (calcolatori, stampanti);
- connessioni (linea telefonica, fibra ottica);
- protocolli (http);
- software (posta elettronica, esplorazione di risorse di rete);
- utenti
In una rete, la comunicazione (invio di messaggi) avviene a commutazione
di pacchetto. Con messaggio indichiamo qualsiasi tipo di sequenza di bit
inviata (email, chat, file, ecc.). Un pacchetto indica l’unità minima nella
quale un messaggio viene diviso. Ogni pacchetto segue il proprio percorso
nella rete per raggiungere il destinatario
Non è l’utente a preoccuparsi di come funziona l’infrastruttura, ma i
programmi. I protocolli sono gestiti da ISO, W3C (world wide web
consortium)
Il protocollo TCP/IP: interazione gerarchica tra livelli; applicazione,
trasporto, internetworking, collegamento; il livello più alto serve per
l’interazione con l’utente; il livello più basso per l’interazione con il
supporto fisico
Nella rete i nodi possono essere attivi o passivi, alternativamente
possiamo parlare di client e server. Client: colui che richiede un servizio
Server: colui che fornisce un servizio.
Negli USA la diffusione iniziale di Internet è in ambito Militare e
Accademico. In Europa negli anni ’70. In Italia nel 1986. In Internet i nodi
vengono individuati univocamente tramite gli indirizzi IP. Sono indirizzi a
32 bit. Vengono indicati con 4 numeri compresi tra 0 e 255 (es
192.168.1.1). l’ICANN attribuisce indirizzi IP ad aziende e paesi. Gli
indirizzi IP sono circa 4 miliardi (232) e sono già finiti. Soluzione Ipv6:
indirizzi IP a 128 bit.
L’utente non si deve ricordare dell’indirizzo IP per accedere ad un servizio
web, ci pensa il DNS, una serie di archivi gestiti dai DNS server, che sono
nodi che si occupano di disambiguare il nome e tradurlo in indirizzo IP.
ICANN gestisce l’assegnazione dei domini e la sintassi (domini
nazionali: .it, .uk; domini sovranazionali: .com, .org)
Servizi in Internet
 Posta elettronica
Sistema di com. asincrono, casella di posta e indirizzo di posta per ogni
utente, il nome utente è unico nel server. Ci sono 3 tipi di client di posta
elettronica: programmi di posta (Outlook) programmi integrati nel web
browser, funzionalità disponibili nel sito web stesso (gmail)
 Peer to peer
È una architettura paritaria, non c’è una gerarchia client/server. Diffuso
per attività di file sharing, si utilizzano programmi come eMule
 Gruppi di discussione e forum
Scambio di informazioni tra comunità. newsgroups: server USENET per la
diffusione dei messaggi. forum: discussioni tematiche organizzate in
thread, richiedono registrazione per partecipare alle discussioni
Altri servizi: backup; archiviazione; condivisione file (dropbox); cloud
computing, archiviazione e/o elaborazione in remoto.
Due calcolatori comunicano attraverso messaggi codificati con appositi
segnali. I messaggi vengono inviati tramite appositi canali di trasmissione,
i canali di trasmissione sono affetti da rumore, per questo è stata
introdotta una codifica con ridondanza. I tipici canali di comunicazione
sono: doppino telefonico; cavo coassiale; fibra ottica; IrDA, Bluetooth, Wi-
Fi

Ipertesto
Parti di testo collegate tra loro logicamente, i collegamenti permettono
all’utente di passare da una parte del testo all’altra. È un testo digitale
composto da più parti detti nodi, le parti sono in connessione tramite
collegamenti o link. La struttura è aperta (si può passare da un ipertesto
all’altro) ed è legata all’autore
I collegamenti sono logici p definiti tra tematiche affini e vengono definiti
su parole attive o hotwords. Possiamo distinguere i collegamenti (o link) a
seconda della loro funzione: interna al nodo; esterna (colleg. ad altri
nodi/ipertesti); link di navigazione; link di attivazione

Multimedialità
Documento multimediale: opera in cui è presente una molteplicità di
mezzi di comunicazione: testo, grafica, animazione, suono
Esistono diversi tipi di multimedialità: debole; intrinseca (fumetti);
additiva (cinema muto); nativa (cinema). Per il web la multimedialità deve
avere codifica digitale su supporti elettronici
Ipertestualità  struttura del documento
Multimedialità  contenuto del documento
Dall’incontro tra ipertestualità e multimedialità nasce la ipermedialità
World Wide Web  ipermedialità
Nasce al CERN di Ginevra a fine anni ‘80
Struttura -> pagine web
Collegamenti-> link unidirezionali
Le pagine sono distribuite su server web o http
L’utente naviga usando client detti browser

Nelle pagine web il testo superficiale è ciò che appare all’utente (grafica,
testo, audio, immagini, filmati) per visualizzare altri formati servono dei
plug-in.
L’organizzazione interna della pagina presenta: spazio dei contenuti
(ipertesto, link…); cornice ipertestuale (menu di navigazione, logo,
banner)
Esistono diverse tipologie di sito web:
siti aziendali, siti istituzionali (enti pubblici, università), siti personali.
Diversi modelli di comunicazione e funzione: informativa, conativa (o
persuasiva), emotiva (o espressiva). Ogni sito può appartenere a più di
una categoria
I siti web possono essere statici (html) o dinamici
Esistono tre standard principali per il web (gestiti dal W3C):
HTTP (HyperText Transfer Protocol) - protocollo di rete per lo
scambio di messaggi con architettura client/server
- un utente specifica un link o utilizza un motore di ricerca e il
browser invia la richiesta ad un server
- la richiesta viene gestita tramite DNS e grazie all’infrastruttura di
rete (TCP/IP)
- quando il server risponde, il browser formatta la pagina, ricostruisce
l’ipertesto (link) e gestisce i contenuti multimediali
- il browser può quindi richiedere nuovi dati per visualizzare la pagina
o invocare programmi (JavaScript, ecc.)
- Ogni volta che viene visitata una pagina il client cede delle
informazioni al server
- le informazioni vengono memorizzate in file di log e vengono usate
per ottimizzare i processi e a fini statistici
o Il linguaggio HTML (HyperText Markup Language) - linguaggio di
marcatura per implementare le pagine web. Prevede l’uso di marche
(tags) doppie o singole. Esistono altre tecnologie che si affiancano
all’HTML per ovviare la sua povertà espressiva: JavaScript (linguaggio di
scripting); Java (linguaggio di programmazione); Flash (gestione dei
contenuti multimediali)
o URL (Uniform Resource Locator) è un indicatore univoco di una risorsa
web
protocollo://hostname:porta/pathname?query#frammento
protocollo (http, https, ftp)
hostname (indirizzo ip o nome indirizzo)
porta (opzionale, se omesso viene impostata la porta di default
del protocollo)
pathname (percorso all’interno del filesystem del server)
query (informazioni parametriche per la generazione di pagine
dinamiche)
frammento (indica un punto preciso della pagina)
quando gli indirizzi sono troppo lunghi si utilizzano alias o URL shorteners.
PURLs (persistent urls) assicura che una pagina sia sempre raggiungibile
dall’esterno anche se l’url cambia

Come si accede ad un sito web?


- Direttamente: scrivendo l’indirizzo nel browser
- Indirettamente: seguendo un link presente in un altro sito
- Tramite un motore di ricerca: seguendo una delle pagine elencate
grazie ad una ricerca

Come funziona in realtà un motore di ricerca?


i risultati riguardano solo parte del web, la richiesta di un utente viene
tradotta in una query ad un database dove sono presenti informazioni di
un certo numero di pagine web precedentemente catalogate.
L’interrogazione viene fatta tramite l’attivazione di un programma di
gestione di un archivio questa ricerca locale garantisce tempi di risposta
molto brevi
Data una parola chiave viene effettuata una ricerca testuale
L’archivio di ricerca viene costruito tramite spider (o crawler, robot, bot):
sfrutta una lista di indirizzi noti. Esplora, analizza e indicizza le pagine.
Durante la visita vengono identificati i link esterni per le successive
esplorazioni. La fase di indexing serve a identificare le parole chiave.
Ranking: ordinamento dei risultati basato sulla page rank (rilevanza
popolarità)
Riassumendo, un motore di ricerca è composto da:
- un archivio
- un programma di interrogazione
- un programma di scansione e indicizzazione
La qualità di un motore di ricerca è data dall’ampiezza del suo archivio,
dalla pertinenza dei risultati e dall’ordinamento proposto
Metamotori: fondono le ricerche effettuate con più motori di ricerca
generalisti
Plurimotori: esecuzione parallela senza fusione dei risultati
Clusterizzatori: cercano di individuare cluster nei risultati cercando
concetti significativi per la ricerca
Motori specialisti: google book, google scholar

Web 2.0 (più content creator)


Esistono diverse categorie di siti che sfruttano il web 2.0: forum (Reddit);
blog (tumblr, twitter); wiki; social network; condivisione di risorse (Yt Ig);
acquisti e prenotazioni online
Identità personale: l’insieme di fattori che permette il riconoscimento di
una persona (aspetto fisico, voce, mente)
Identità digitale: aspetti di un’identità personale che vengono trasmessi
attraverso Internet
I social network permettono di indentificare utenti la cui identità è
confermata (spunta blu). Non sempre dietro ad una identità digitale c’è la
stessa persona.
Identity gap: divario tra identità digitale e reale, non sempre è una cosa
negativa
Pseudonimità: via di mezzo tra anonimato e riconoscibilità, porta alla
nascita dei troll
Regole di comportamento sui social, si dividono in tre:
- regole imposte dalla piattaforma
- regole della community a cui si partecipa
- regole non scritte (netiquette) [evitare spam, non offendere]
se non si seguono le regole si rischia il ban
I dati nel web: quando navighiamo cediamo delle info ai server a cui ci
colleghiamo, e talvolta acconsentiamo all’uso dei nostri dati. Queste info
vengono usate per diversi scopi: migliorare i processi sul web; predisporre
delle pubblicità ad hoc; fare indagini di mercato. Se i dati vengono rubati
allora è possibile ricattare un utente.
L’ananlisi dei dati degli utenti raccolti sul web si chiama Knowledge
Discovery in Databases:
- processing, selezione di un sottoinsieme e pulizia dei dati;
- data mining, estrazione di info utili;
- validation, verifica della validità delle info estratte.
La Knowledge discovery può essere fatta tramite Anomaly detection che
ricerca delle anomalie nei dati. È possibile ottenere qualcosa di utile se
l’anomalia viene descritta in maniera precisa.

Un’altra tecnica di Knowledge Discovery è la market basket analysis


(chiamata anche association rule learning), cerca di inferire regole di
associazione tra i dati. Le regole sono del tipo: se c’è il prodotto x nel
cesto, allora c’è anche il prodotto y. La regola suggerisce che la probabilità
che due prodotti vengano acquistati insieme sia alta.
È però necessario stabilire quanto sia “forte” l’associazione tra prodotti
suggerita da una regola, usando due indici:
- Supporto, rapporto tra il numero di oggetti che contengono sia x
che y e il numero totale di oggetti. Supporti alto = oggetti
compaiono spesso insieme
- Confidenza, rapporto tra il numero di volte in cui x e y compaiono
insieme e il numero di volte in cui x è presente (con o senza y). È la
probabilità di avere y in un oggetto che contiene x
Come si lega il data mining al mondo del web?
- User profiling (acquisti online, pagine visitate, canzoni
ascoltate/saltate)
- Big data
- Il diritto all’oblio

Potrebbero piacerti anche