Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Fondamenti di informatica
1. Introduzione all’informatica
2. Rappresentazione dell’informazione
3. Architettura dell’elaboratore e sistemi operativi
4. Algoritmi, Programmazione
5. Informazione multimediale
6. Reti di calcolatori e WWW
7. Sicurezza digitale
8. Interfacce uomo-macchina
9. Basi di dati
10. I limiti della computazione
Modalità d’esame
Esame scritto: domande a risposta multipla (più risposte possono essere corrette oppure nessuna)
Penalità per chi “tira a caso”
Due prove intermedie metà corso (indicativamente prima di Pasqua), e nella prima metà di maggio.
Sostituiscono l’esame finale. Puoi passarne uno e l’altro no, basta che la media sia più di 18
Frequentanti o no, vale lo stesso.
1- Introduzione
L’informatica è la scienza che studia l’elaborazione delle informazioni (scienza dei calcolatori o scienza
dell’informazioni?) Studia come elaborare delle idee, degli estratti del mondo reale. Non è una scienza
giovane, le prime tracce risalgono al 1890 con l’elaborazione di dati di Hollerith. Scopo studiare il
concetto di informazione, sebbene nella sua definizione originale (inglese) ha a che fare con il calcolo. Il
calcolo elabora informazioni.
- La vera e propria informatica nasce nel 1936 (legata all’elaborazione di dati numerici), negli anni
70/80 ci fu una svolta dove viene scoperta l’interazione tra le persone(?)
- Primi computer 1943 (Uk,Usa, Ger)
- 1956, nobel per i transistor, scoperta di un dispositivo, particolarmente economico che ha consentito
ai computer, calcolatori di diventare più veloci ed efficaci.
- 1958, circuiti integrati, hardware, successo degli elaboratori elettronici, macchine da calcolo su
dispositivi piccoli con tecnologia economica
- 1969, ARPANET, mettere in comunicazione i dispositivi tecnologici
- 1973, nascita di internet
- 1976, Apple, ha reso possibili l’acquisto di calcolatori personali, non è più legato all’azienda, si
possono usare a casa. Oltre a portare il computer a casa, ha anche cambiato un po' la sua funziona,
prima erano semplici calcolatori, successivamente ha iniziato ad assumere rilevanza l’interfaccia,
perciò da un punto di vista grafico. BUGIA. Le immagini è possibile elaborarle solo se trasformate in
numeri. Immagine è una sequenza di numeri.
- 1981, pc di IBM
- 1984, Macintosh, interfaccia facile da utilizzare (quella del nostro cellulare)
- 1992, primo SMS
- 1993, WWW, World Wide Web
- 1996, Nokia 9000
- 1997, google.com (fermento sull’aspetto dell’intelligenza artificiale, e rendere l’uso di internet vasto
e ampio) e Deep Blue battle Kasparov (capacità di calcolo immense, riesce a battere il campione
mondiale di scacchi)
- 2004, Firefox
- 2006, Wii
- 2006, lancio di Twitter
- 2011, Watson vince Jeopardy (è un quiz basato su elaborazione i linguaggio naturale, elaborazione di
parole, concetti, la macchina deve comprendere la domanda e generare risposte (il milionario)
o L’informatica è la scienza degli algoritmi che descrivono e trasformano l’informazione: la loro teoria,
analisi, progetto, efficienza, realizzazione ed applicazione (ACM- Association for Computing
Machinery). Algoritmo trasforma le informazioni.
Cos’è l’informazione?
È qualche cosa che incrementa la conoscenza, che rende più ricca la conoscenza di qualche fenomeno. Notizia atta
a essere formalizzata in dati destinata a essere trattata da un sistema di trattamento automatico delle informazioni
(Zingarelli).
Qualcosa di non conosciuto.
Notizia: cognizione, conoscenza, estratti del mondo reale trasformati come ideali che possono essere applicate al
mondo digitale
Essenza dell’informatica: Rappresentare un’entità del mondo reale, fisiche o astratte e definire delle regole che
elaborano queste entità come nel mondo reale ma senza interagire realmente con questa entità o oggettiva.
Elaborare informazioni, estratte dal mondo fisico le info che ci servono per la soluzione di un problema
Ogni essere umano elabora (anche inconsciamente) grandi quantità di informazioni, ma ci sono almeno due motivi
per cui può trovarsi in difficoltà Accade soprattutto quando l’elaborazione è molto complessa o quando
abbiamo bisogno di risposte rapide
Concetti principali
- Digitalizzazione delle informazioni, per poter elaborare le informazioni dobbiamo trasformarle in qualcosa
che il computer è in grado di elaborare.
- Hollerith, padre dell’informatica, a fine ‘800. Rappresentare le informazioni con le schede perforate,
all’interno dei quali ci sono specifiche informazioni. Le schede perforate venivano inserite nella
macchina, dove un circuito elettrico veniva acceso o spento dalla presenza o assenza dei buchi. Il
linguaggio delle parole umane veniva tradotto in perforazioni ("foro sì", "foro no"), che la macchina
leggeva elettricamente (acceso-spento).
Questo è un modo per elaborare le informazioni.
Software:
Programmi che adattano la macchina a scopi diversi. Rende adattabile la nostra macchina alla soluzione di diversi
problemi. Sono dispositivi adattabili e
È a un livello astratto. La parte logica. Costituita da due aspetti, sia gli algoritmi (le descrizioni delle elaborazioni)
ma anche i dati. Questi due concetti vivono nello stesso ambiente, vengono rappresentati dall’hardware. Sono
come “il cosa fare” e “come fare”.
Grazie al software i dispositivi possono adattarsi, cambiare.
Costituito da programmi (app).
Hardware:
Pezzi fisici del computer. Funzioni cablate (via cavo)
È implementato (reso concreto) con schede, chip, fili e transistor
24/02/2022
Algoritmo
È un modo di organizzare un’applicazione attraverso un procedimento che dica come i vari dati o interazioni
debbano essere elaborate. È un metodo preciso e sistematico per risolvere un problema.
Dato un problema, è necessario trovare un procedimento composto da un numero finito di istruzioni da
eseguire per passi successivi, che porti a una soluzione del problema assegnato.
Esempio:
Algoritmo per il calcolo delle 4 operazioni aritmetiche
Algoritmo per risolvere equazioni di secondo grado
Ricerca di un numero telefonico
Scoprire se il mouse ha cliccato su un bottone
Astrazione
Estrapolazione di un concetto base, un’idea. È fondamentale per l’informatica. Prosegue a livelli, da
livelli base a quelli più elevati.
Esempio:
la morale delle fiabe
Solo alcuni aspetti sono importanti differenza con quelli inessenziali
Serve a capire un concetto e trasferirlo ad altri casi
Generalizzazione
Riconoscere gli aspetti comuni a più situazioni.
Riassume un’idea, un concetto o un processo.
Si applica a schemi ricorrente.
Esempio: verso di rotazione, vale per rubinetti, viti…
Sintonia operativa
Fenomeno per cui noi sappiamo applicare ciò che sappiamo sul funzionamento di un dispositivo per semplificarne
l’uso.
Calcolatore
Macchina che esegue gli algoritmi (elaborando informazioni).
Queste macchine sono in grado di memorizzare ed elaborare dati.
L'elaborazione dei dati avviene eseguendo un algoritmo a cui sono forniti i dati.
Programma
Un calcolatore per eseguire un algoritmo deve disporre di una descrizione dell’algoritmo in un
linguaggio che è in grado di interpretare (linguaggio di programmazione).
Un programma per una macchina è una successione di istruzioni che tale macchina è in grado di
interpretare ed eseguire.
Un programma è la traduzione di un algoritmo in un linguaggio di programmazione (sono una
concretizzazione degli algoritmi).
Sono interpretabili dai calcolatori
Per macchina di applicabilità generale intendiamo un dispositivo in grado di risolvere svariati problemi di
calcolo, purché opportunamente programmato, ossia dotato di programmi specifici, che risolvono i
problemi considerati
Sia i dati che le istruzioni del programma da eseguire risiedono in memoria, da cui l'unità di elaborazione
preleva in sequenza le istruzioni da eseguire e i dati necessari.
Caricando in memoria un nuovo programma lo si può eseguire, altrimenti bisogna costruire una nuova
macchina in grado di eseguirlo.
Esistono dispositivi a “programma cablato” (si può solo fare quello per cui il dispositivo è predisposto).
Mini/Microcomputer
I primi calcolatori sono realizzati con valvole termoioniche (1940-1955), con il miglioramento della
tecnologia elettronica, con transistor (1950-1965) e successivamente con circuiti integrati: il loro costo e
le loro dimensioni si riducono drasticamente, mentre le prestazioni aumentano.
I primi calcolatori si trovano solo in alcuni laboratori di ricerca, poi si diffondono in grandi centri di
calcolo e, con l’introduzione dei mini/microcalcolatori (ad esempio, la serie PDP-VAZ della DIGITAL),
ogni ente/organizzazione ha un proprio calcolatore.
Personal Computer
La nascita dei microprocessori negli anni Settanta del secolo scorso porta all’introduzione sul mercato dei
personal computer (PC).
Anche il modo di usare i calcolatori cambia: con i grandi calcolatori (mainframe), il tipo di elaborazione
era di tipo "batch" (a lotti): l'utente (o chi per lui) lancia l'esecuzione del programma fornendogli i dati
necessari ed attende il risultato dell'esecuzione.
Con i PC, l'uso dei programmi è principalmente interattivo, grazie anche ai sistemi operativi multi-
programmati, ai nuovi dispositivi di ingresso/uscita, alle interfacce grafiche.
Supercalcolatori
Nel 1982 venne sviluppato dalla compagnia CRAY il primo super computer multiprocessore: il CRAY X-MP. I
supercalcolatori sono utilizzati per applicazioni in cui è necessaria una grande potenza di calcolo (calcolo
scientifico, grafica, tridimensionale)
Legge di Moore
Il numero di transistor per chip raddoppia ogni due anni
Gordon Moore, Intel (1965)
Reti
Lo sviluppo della tecnologia elettronica e delle telecomunicazioni ha portato a connettere più calcolatori
in una rete: si condividono informazioni, dispositivi (ad es. stampanti), servizi applicativi.
Reti locali
Reti geografiche
Reti di reti (Internet)
In molti ambienti le reti di calcolatori hanno rimpiazzato i grandi calcolatori (mainframe) e i
supercalcolatori.
Internet
È la più grande rete di calcolatori del mondo. Nata tra gli anni '60 e '70 si è sempre più espansa
collegando insieme reti indipendenti.
Collega insieme calcolatori (detti host) di istituzioni, università, aziende e privati.
Fornisce le infrastrutture per usare e-mail, basi di dati, ipertesti e altre risorse per l’elaborazione di
informazioni.
Questo sviluppo è stato possibile per la forte innovazione tecnologica dei PC e di Internet e allo sviluppo
di applicazioni con interfaccia grafica.
Il web è un servizio disponibile su Internet per accedere alla “ragnatela mondiale ” di documenti detti
ipertesti (o pagine web, scritte in HTML). Si “naviga” sul web, ovvero si accede alle pagine web con un
browser (Firefox, Internet Explorer, Safari, Opera, Camino).
Operazione di digitalizzazione
È quella che consente di rappresentare l’informazione per mezzo di cifre (digits), per estensione o meglio ancora
simboli (non solo significato numerico).
Per digitalizzare l’informazione bisogna tradurre qualcosa dal mondo fisico in modo che sia elaborabile dal
calcolatore.
Quali simboli?
Nel mondo logico ogni simbolo va bene, anche quelli del lettore CD
Nel mondo fisico la forma di informazione più importante è la presenza/assenza di un fenomeno fisico
(carica elettrica, luce, etc…)
Nel mondo logico: in concetti di vero o falso. La presenza può essere associata alla verità, l’assenza può
essere associato al falso.
Vantaggi della digitalizzazione
Rappresentazione discreta, quello che noi distinguiamo è solo qualcosa che c’è o non c’è. Ci sono due
stati (presenza o assenza, non una via di mezzo). No ambiguità.
Non ha importanza l’entità del fenomeno (quanta luce) ma solo la sua presenza o la su assenza. Misurare
il livello di specificità è più complesso.
Non esiste una graduazione di valori
Esempio di rappresentazione
Presenza o assenza di vapore:
P: molto caldo.
A: non molto caldo
Un sistema binario
La rappresentazione con due soli simboli(presenza/assenza) è un sistema binario (a due valori)
E di configurazioni di PandA
L’unità base di PandA è il BIT (binary digit) Unità di base d’informazione
Sistema a due valori, dove ciascun valore corrisponde a una configurazione di presenza o assenza. L’operazione
che fa corrispondere l’assenza o la presenza di un fenomeno con uno dei due simboli scelti per la rappresentazione
binaria.
PandA esempi:
Con un bit possiamo rappresentare solo ciò che può assumere due valori
Una sequenza di bit rappresenta abbastanza simboli per codificare dati complessi
Con sequenze di lunghezza n possiamo creare 2n simboli
Esadecimale
Cifre in base 16, rappresentano gruppetti da 4 bit.
A ciascuno cifra esadecimale può corrispondere un quartetto di 4 bit. 16 è un multiplo di 4 e con 4 cifre binarie
posso rappresentare 2^4=16 differenti sequenze.
Se prendo assieme 4 cifre binare, tutte le possibili combinazioni di 4 cifre binare le posso rappresentare con 16
simboli, ciascuno associato ad una singola sequenza.
Possono essere rappresentate dai 16 simboli delle sequenze di 4 bit.
Le cifre scelte nel sistema esadecimale sono: 0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F.
La scelta di questo sistema convenzionale consente di rappresentare insiemi di sequenze di 4 bit attraverso un
unico simbolo. La codifica è una regola che ci dice come trasformare un’informazione in una informazione
equivalente, rappresentata in un altro sistema simbolico.
La codifica utilizzata è coerente con quello che è il significato numeri in decimale, almeno fino dove è possibile.
La rappresentazione di insiemi di sequenza viene riassunta da un simbolo.
La scelta di come codificare impone di rappresentare gruppi omogenei di 4 entità (bit). La conversione richiede di
suddividere il numero in gruppetti di 4 a partire da destra, dopodiché basta guardare la tabella di conversione. Si
aggiungono gli 0 quando non si riesce a “riempire” i blocchi da 4 cifre.
Digitalizzare il testo
Il testo è un insieme di simboli convenzionali. Per un elaboratore automatico è semplicemente la sequenza di
simboli senza il suo significato (senza una interpretazione che solitamente noi umani attribuiamo al testo), solo la
parte letterale.
Per decidere come digitalizzare il testo, quindi come trasformare il testo in qualcosa di elaborabile o
rappresentabile attraverso delle sequenze di bit, è necessario per prima cosa decidere qual è il nostro alfabeto, qual
è il nostro insieme di simboli, quali caratteri voglio decodificare.
Indipendentemente dai simboli scelti, c’è una regola generale nella codifica di simboli. Più simboli ho, più è lunga
la codifica in bit.
Ha alcuni limiti:
- 7 non è un multiplo di 8, ASCII usa la rappresentazione a 7 bit ma ne utilizza 8 (tutti i caratteri
rappresentati in codifica ASCII avranno uno 0 come ottavo bit, nonostante tutti gli altri vengano
utilizzati) per allineare, per avere qualche cosa che sia multiplo di una potenza di 2. Ci bastano 7 bit, ma
in realtà ne usiamo uno in più che non ci servirebbe, solo per allineare le cose.
- Non basta per rappresentare i caratteri dei linguaggi diversi dall’inglese. La codifica ASCII è focalizzata
sulla lingua inglese. Non è possibile rappresentare caratteri accentati, segni diacritici di altre lingue
occidentali, come: latino, lingue nordeuropee, lingue slave, alfabeto greco, ebraico, cirillico.
Versione aggiornata
Extended ASCII
Alcuni limiti sono stati risolti fino da subito (anni ’80), con una versione ASCII estesa, dove tuti gli 8 bit vengono
utilizzati. Con 8 bit, il numero di simboli rappresentabili sono il doppio, perciò 256. Ogni volta che viene aggiunto
un bit, raddoppiamo il numero di simboli rappresentabili.
Tutti i caratteri che hanno lo 0 nella MSD (Most Significant Digit,cifra più a sinistra della nostra
rappresentazione). Con uno 0 davanti sono caratteri ASCII originali, con un 1 davanti sono i caratteri estesi.
Vantaggi:
- Colma i divari verso i segni diacritici degli alfabeti occidentali e aggiunge altri simboli utili, ma,
nonostante ciò, non risolve il problema di rappresentare altri alfabeti (problema affrontato negli anni ’90).
Codifica UNICODE
Negli anni 90 sono state definite delle codifiche estese ulteriormente rispetto alla codifica ASCII.
Utilizza 32 bit (non più 7), siamo in grado di rappresentare 2^32 differenti simboli, fa 65.000 circa. È in grado,
perciò, di rappresentare i caratteri di alfabeti non europei (alfabeto arabo, asiatico, ebraico, cirillico).
Codifiche ridondanti
Servono per rappresentare l’informazione in modo che possa essere trasmessa e ricevuta in modo non ambiguo,
anche se ci sono degli errori o delle interferenze nella comunicazione nel mezzo.
Usa più simboli di quelli necessari per rappresentare il nostro sistema simbolico (il nostro alfabeto in questo caso).
È il codice per le telecomunicazioni.
L’idea è quella di rendere le lettere intelligibili anche in presenza di rumore (es. dover dettare il cognome
A come Ancona, S come Savona), questo funzionamento fa si che anche in presenza di interferenze nella
comunicazione, il ricevente possa capire di che lettera si tratta. Esempio: alfabeto NATO.
Per un simbolo uso una sequenza di simboli dettati (molto più lunga del simbolo stesso), questa sequenza
più lunga è in un certo senso ridondante. Se la comunicazione fosse precisa, non ci sarebbe la necessità di
usare tutti questi simboli, se l’interlocutore capisse direttamente “D”, non sarebbe necessario usare più
simboli per rappresentare quel dato.
Questo tipo di codifica è necessariamente inefficiente, questa inefficienza ci serve perché vogliamo essere
sicuro che un simbolo, da parte del ricevente venga interpretato in modo corretto e non ambiguo.
UTF-8
Unicode Transformation Format, è una codifica di tipi adattivo
La codifica non richiede necessariamente 32 bit, ma si limita al numero di bit necessari per la codifica.
Esempio: se devo codificare l’alfabeto latino uso 8 bit, greco 16 bit, arabo 32.
A seconda di quanti simboli sto usando nel mio testo si adatta
Codifica di caratteri a lunghezza variabile
Dato vs informazione
Dati:
Quello che rappresentiamo in memoria sono dati, ovvero dei valori questi non hanno significato ulteriore
rispetto a quello che rappresentano, sono una componente sintattica della nostra informazione. Il testo scritto in
un libro come sequenza di lettere è la componente sintattica del libro, per dare significato a quella componente
sintattica, siamo noi che lo interpretiamo.
Esempio:
La sequenza di simboli A P E. Noi attribuiamo il significato di insetto. Sappiamo che quella sequenza di simboli
indica il nome dell’insetto.
*Il calcolatore lavora sul livello di astrazione basso, su quello dei valori, che non distingue se qualche cosa è
un’immagine, un testo o un numero*
Informazione:
Ha un significato.
Esempio:
21 è un dato, una sequenza di due cifre. Così com’è non ha un significato specifico tranne quello numerico.
21, a seguito di interpretazione diventa un’informazione. Supponendo che questa sia una temperatura, è una
temperatura primaverile se in °Celsius, se fosse in °Fahrenheit sarebbe una temperatura sotto lo 0.
Questo dimostra come lo stesso valore numerico, in due contesti simili (dove viene rappresentata la temperatura),
misurati però in scale diverse, ci da due informazioni completamente diverse.
In un altro contesto ancora, supponendo sia un voto, questo risulterebbero essere sufficiente ma non troppo alto, se
invece 21 lo interpretiamo come il piano di un grattacielo, questo sarebbe un piano intermedio di un grattacielo.
21 potrebbero essere gli anni dove in certi paesi designano la maggior età.
Quindi, lo stesso dato, per poter diventare informazione, ha bisogno di un contesto in cui noi interpretiamo il dato.
07/03/2022
Capitolo 6 – Rappresentare l’informazione multimediale
È possibile andare a tradurre e codificare anche altri tipi di informazione, come l’informazione multimediale.
Multimedia si intende un qualunque tipo di contenuto che non sia limitato a un solo medium, quindi in particolare
qualche cosa che integri ad esempio immagini e suono, ma anche al singolo media.
Immagini sono costituite da elementi d’ immagine. C’è una parte di discretizzazione che viene fatta nel
rappresentare l’immagine attraverso una rappresentazione digitale,
Audio-suono
Digitalizzare i colori
Rappresentazione dei colori RGB (Red, Green, Blue)
Un colore è specificato da tre componenti: rosso, verde e blu. Riusciamo a rappresentare qualsiasi
nuance di colore attraverso queste tre componenti.
L’intensità di ogni colore è rappresentata da una quantità che va da 0 a 255.
Nel sistema RGB, un’immagine viene scomposta in un insieme di punti. Ciascun punto ha la connotazione di
essere un quadrato PIXEL (a seconda di quanto rosso, blu, verde emette, è in grado di emettere una
sfumatura).
Il bianco corrisponde la massima intensità di tutti i componenti, rosso, verde, blu hanno l’intensità è al
massimo e il pixel da come risultato il bianco. (1111 1111)
Grigi
Un grigio corrisponde alla stessa intensità di tutti i componenti:
Modificare un colore
Aumentare l’intensità con un’addizione binaria.
Esempio: se vogliamo schiarire un’immagina, basta incrementare i valori per avvicinarsi al bianco.
Perciò sommando delle quantità positive a ciascun canale, spostiamo il colore della nostra immagine. Per farlo
utilizziamo un’operazione di addizione
Addizione binaria
È simile all’addizione decimale da destra a sinistra sommando le cifre nelle colonne
La somma di una colonna può:
- essere di una sola cifra: 1+0=1
- causare un riporto 1+1=10, 0 con riporto di 1
Overflow
I computer utilizzano sequenze di bit di dimensioni prefissate. Quando andiamo oltre i limiti di rappresentazione.
Errori di overflow: il computer segnala quando il calcolo in esecuzione genera un overflow error
EMETTERE UN SUONO
Un oggetto produce suono vibrando all’interno di un mezzo come l’aria. Onde di pressione sono emanate
dall’oggetto. Le vibrazioni si trasmettono nell’aria e hanno una componente che dipende dal tempo. Il suono non è
istantaneo, è qualcosa che si sviluppa nel tempo, a differenza dell’immagine che invece è statica. Il suono non può
essere misurato istantaneamente, ma deve essere raccolto in un intervallo di tempo.
Il suono comporta che ci sia una sorta di “tira e molla” della pressione dell’aria (è come se l’onda venisse tirata).
Le onde sonore sono rappresentate dalla pressione del suono.
La pressione è legata al volume del suono, suoni più forti fanno male perché tirano molto la nostra membrana
(timpano). Suoni più deboli, muovono la membrana del nostro timpano modo più leggero.
La frequenza ha a che fare con il tempo.
Da analogico a digitale
Il suono è stato rappresentato per anni su supporti: i vinili. Il suono è rappresentato per mezzo di solchi. Analogica
perché non è rappresentato da numeri (come nel digitale)
Campionamento
Consiste nel misurare l’ampiezza dell’onda non in ogni istante (perché non è possibile), ma a intervalli
regolari di tempo.
Si divide il tempo in intervalli regolari, allo scadere dell’intervallo si misura la pressione del suono.
Più sono piccoli gli intervalli, più la misura è precisa.
L’onda non sarà mai come l’originale, proprio a causa di questa discretizzazione.
La frequenza di campionamento
Frequenza di campionamento legata a quella dell’onda.
Una frequenza troppo bassa (lenta) potrebbe perdere dettagli che “si infilano” tra un campione e l’altro
Esistono dei limiti fisici in cui non ha senso andare.
Più fasce utilizziamo (quelle rosse) più si è precisi.
Regola di Nyquist
Se vogliamo essere accurati nella rappresentazione di un’onda sonora, la frequenza di campionamento deve
essere almeno il doppio di quella dell’onda da registrare.
Frequenza di campionamento:
- Almeno il doppio di quella dell’onda da registrare
- L’uomo può percepire suoni fino a 20.000Hz un campionamento di 40.000Hz è sufficiente
- La frequenza CD standard è 44.100Hz
Campione CD
La rappresentazione digitale dei CD audio utilizza 16 bit, registra 65.536 livelli, la metà per i valori positivi e
altrettanti per quelli negativi.
Conversioni
Nel caso dell’audio di una registrazione…
L’onda sonora viene catturata da un opportuno sistema di traduzione (es. microfono trasforma una grandezza
fisica in un’altra, ha una funzione simile a quella del nostro timpano, trasforma l’energia meccanica in energia
elettrica)
Rappresentazione analogica
Il segnale elettrico è analogico, trasforma l’informazione in digitale
Trasforma l’onda sonora
Compressione
È qualche cosa che ci aiuta nella rappresentazione di dati. È un’operazione di codifica, usiamo un altro sistema di
simboli per rappresentare il sistema di simboli originale. È trasformare qualcosa in qualche cosa che richieder
meno spazio di memorizzazione.
Di solito la compressione si usa per 2 cose: la memorizzazione e per la comunicazione (per trasmettere
l’immagine da un computer ad un altro).
Compressione run-lenght
Si applica alle immagini.
Invece di descrivere un’immagini per mezzo di tutta la sequenza di valori dei pixel (1°immagine), la descrivo in
modo implicito (2°immagine). Quante volte di seguito un colore appare nell’immagine (quanto è lunga la
frequenza). La compressione run-lenght si basa sulla rappresentazione indiretta dell’immagine, è un modo
indiretto per definire un’immagine ed è anche questo un sistema di codifica.
Se l’andamento dell’immagine è orizzontale questa codifica funziona bene. Per un’ immagine rappresentata
verticalmente, non si ottiene lo stesso livello di compressione.
Rappresentazione standard Compressione run-lenght
*Per descrivere la bandiera italiana cambia, perché le linee sono rappresentate in verticale. La regola è complessa.
La compressione Lossy è quella che perde parte dell’informazione. Lossy: con perdita di dati l’originale
non può essere ricostruito perfettamente. La ricostruzione non è perfetta. Perdiamo dei dati
(dell’informazione.
Compressione MPEG
Il video è rappresentato da un insieme di immagini che vengono campionate nel tempo. L’idea è quella di
utilizzare stessa idea di JPEG, ma applicata ai filmati. La compressione JPEG è applicata a “ogni frame”.
- In genere due immagini consecutive sono molto simili.
- Memorizza solo “la differenza” tra due fotogrammi consecutivi
- Un fotogramma completo (JPEG) ogni 5.
09/03/2022
Capitolo 7- Come funzionano i computer
Schermo
Mostra l’interfaccio del nostro computer
Case
Bisogna creare un collegamento tra le entità periferiche e l’unità centrale. Nel sistema monolitico ...
Collegamenti (porte)
I collegamenti del calcolatore avvengono tramite il concetto di porta (presenti anche in quella monolitica), sono
delle interfacce (modi di comunicare) dall’unità centrale di elaborazione, verso il mondo esterno.
Sono collegamenti elettrici. Il comunicatore può comunicare con il mondo esterno.
Il mondo esterno è collegato al mondo interno attraverso le porte.
USB, WI-FI, sono dei collegamenti che stanno prendendo posto rispetto a quelli fisici.
Interfaccia si intende insieme di strumenti con il quali vi è un’interazione tra il nostro computer e qualcos’altro.
Scheda madre
Circuito integrato complesso che ha diverse connessioni tra le diverse componenti funzionali del nostro
calcolatore. In particolare, i due aspetti fondamentali che collega la scheda madre sono:
CIP (processore, elabora tutte le informazioni sul nostro computer. È il vero cuore
SLOT MEMORIA, spazio nei circuiti che consentono di memorizzare i dati che devono essere elaborati
È la sorgente della comunicazione verso l’esterno. Grazie la scheda madre, ci si può connettere attraverso le porte
con i dispositivi esterni. È l’isola su cui si effettua la comunicazione.
Schede di espansione espandono le funzionalità della scheda madre, ha una componente di calcolo. Manipola i
bit.
La memoria del nostro calcolatore è contenuta all’interno della scheda madre. La memoria è di tipo volatile
(indica non permanente, persistente), ha bisogno di corrente elettrica per funzionare. Questo di memoria è super
veloce. Poiché la memoria non è persistente, nella scheda madre ci sono degli ulteriori connettori verso altri tipi di
memoria.
MEMORIA
La memoria è quell’aerea che contiene sia i programmi sia i dati necessari per l’elaborazione (modello di von
Neuman). Attraverso quei programmi adatta la funziona da svolgere.
La memoria prende il nome di RAM Random Access Memory (memoria ad accesso casuale = diretto), è
volatile, ciò significa che ha bisogno di corrente elettrica per funzionare. Queste memorie lavorano alla stessa
velocità del processore.Il suo contenuto si perde in mancanza di corrente elettrica.
Contrapposta alla memoria sequenziale (non ne abbiamo più accesso, sono scomparsi) era tipico delle
videocassette.
Memorie di massa
Chiavi USB, SSD (dischi a stato solido) e hard disk
Funzioni inputo e output
Archivio permanente di dati
Differenza nella vita “attesa”
La memoria a stato solido si deteriora
Altre periferiche
Tastiera
Mouse
Stampante (periferica di uscita output)
Schermo (periferiche di uscita output)
Casse audio microfono
Telecamera
Processo di booting
Fa partire un programma iniziale che è in grado di far funzionare il computer. Il boot è ciò che fa partire il
processo.
Booting: accensione del computer
Rebooting: ri-accensione rapida del computer (riavvio)
Istruzioni memorizzate in un microchip
Chiamato “boot ROM”
Deriva da “bootstrapping”
Ciclo macchina
È l’essenza del tipo di elaborazione che può fare un processore. Il ciclo macchina è il ciclo che compie la CPU
quando deve svolgere delle operazioni. Consiste di una serie di operazioni.
Locazione discrete
Ogni locazione è di 1 byte
Indirizzi
Univoco per ogni locazione (intero a partire da 0, normalmente espresso come esadecimale)
Valori
Le locazioni di memoria memorizzano valori
Capacità finita
Sia nel numero di locazioni sia nella capacità di ogni locazione.
Locazione da un byte
CPU
Ha due responsabilità specifiche:
ALU, è la parte che fa effettivamente i calcoli, non solo aritmetico
Controllo, controlla cosa gli viene chiesto di fare e si preoccupa di realizzare ciò che richiesto
14/03/2022
17/03/2022
Sistemi operativi
Offrono le operazioni base per l’uso del computer
Non supportate direttamente dall’hardware
I tre più usati per personal computer:
Microsoft Windows
Apple MAC OS X
Linux (Unix)
GUI
È un tipo di interfaccia utente che consente l'interazione uomo-macchina in modo visuale utilizzando
rappresentazioni grafiche.
Sono “impacchettati” e forniti con l’OS.
bordi delle finestre
le barre di scorrimento
i pulsanti
i puntatori, ecc.
Mutitasking
Può eseguire più processi per volta
Gestione dei programmi in esecuzione
Multiuser
Più utenti in “contemporanea”
Shell
Interfaccia con l’utente
Contiene anche la GUI
Spesso viene confuso con il sistema operativo
Kernel è il nucleo del sistema operativo che controlla tutte le attività del sistema mentre la Shell è l'interfaccia che
consente agli utenti di comunicare con il Kernel.
Kernel
Memory manager
Gestisce la RAM e i processi in esecuzione
Paginazione questa tecnica consente di elaborare dati che sono più grandi rispetto alla capacità di
memoria della RAM. Non tutta la quantità di memoria è necessaria, perciò suddivide in pagine, in
blocchi e gestisce cosa ci deve stare in memoria in quel momento o ciò che può stare fuori e caricarli
quando serve.
Memoria virtuale.
File manager
È un modo di organizzare i contenuti nella memoria di massa (hard disk), dove anche in quella memoria, i dati
sono organizzati con degli indirizzi e sotto forma di byte.
Virtualizza (far vedere in modo diverso, più organizzato) i file e ci permette di vederli. Fornisce anche altri
servizi: servizio di permessi di accesso.
Gestisce i file nella memoria di massa
Permessi di accesso
Allocazione
Icone
Cos’è la comunicazione?
Nella comunicazione è necessario che ci siano almeno due attori, un mittente e un ricevente, altrimenti la
comunicazione non c’è.
Deve avvenire tramite un canale di comunicazione, questo va a collegare le due entità che comunicano, le quali
possono essere distanti.
Quanti comunicano
Broadcast (o multicast) una singola fonte e tutti gli ascoltatori. È più generale (esempio: radio)
Multicast una singola fonte e molti ascoltatori (ma selezionati)
Point-to-point una singola fonte e un singolo ascoltatore (telefonata tra due entità)
L’area di comunicazione che va a connettere tutti i dispositivi elettronici del mondo, prende il nome di
INTERNET (è una rete) è qualche cosa che ha una struttura reticolare in cui ci sono delle connessioni tra dei
dispositivi, connessioni che avvengono tramite router o gateway unità di comunicazione.
Pacchetti IP
I documenti sono divisi in una sequenza di piccole unità di dimensione prefissata.
Ogni pacchetto contiene:
Lo spazio per contenere un’unità di documento
L’indirizzo IP del destinatario
Un numero progressivo
L’indirizzo IP del mittente
Tecnologia di internet
Internet è fatta di sistemi elettrici, elettronici e ottici
Utilizza linee telefoniche, dedicate, radio, ecc.
Tecnologia indipendente dal protocollo
la trasmissione di un documento può utilizzare diverse tecnologie
Internet
Non è una rete, è la rete delle reti. Connette reti diverse.
Costituita da una collezione di reti geografiche.
Progettate per inviare informazioni tra località distanti
Ethernet
È la tecnologia per le reti locali. Il modo di trasmettere è dato da un cavo fisico.
Canale: cavo fisico
Ogni computer è collegato al canale
Può inviare un segnale rilevato da tutti i computer connessi al canale
Il funzionamento è decentralizzato
Ogni computer ascolta il canale e può trasmettere quando lo sente libero
Ha una trasmissione broadcast, proprio per il fatto che tutti i computer possono ascoltare. Non c’è sicurezza nella
comunicazione.
Web server:
Programma che invia I file richiesti dai browser (modo per chiedere i servizi al www.), il server fornisce i
contenuti. La richiesta è mediata dal browser
Eseguito su computer in Internet
I web server e i loro file costituiscono il World Wide Web
È un sottoinsieme di Internet
24/03/2022
URL
È il modo per identificare i servizi.
Universal Resource Locator
Protocollo: dice al computer o al browser come gestire il file.
Nome del server: l’indirizzo del server (DNS)
Percorso (o path) del file (opzionale)
Attraverso i percorsi si possono visualizzare non solo file ma anche servizi (servizio mail)
Il formato con cui si descrive un contenuto web è l’HTML (HyperText Markup Language)
È un linguaggio per descrivere la struttura del documento (non nasce come linguaggio grafico come riporta il
libro). Da delle indicazioni al browser su qual è la struttura, è compito del browser ricostruire il contenuto del….?
HTML, è fatto per la struttura. Da struttura.
Ipertesto
Documenti con organizzazione non sequenziale
- documenti non lineari
Link o collegamenti
- permette di “collegare” le parti di un ipertesto
- testo enfatizzato
I browser lo rendono come corsivo, ma non è detto, ti dice che il testo deve essere distinto.
Corsivo: <i> </i>
- testo enfatizzato
Enfasi multiple
Si possono applicare più enfasi contemporaneamente
Esempio: <em><strong>testo</strong></em>
Tag singoli
Ci sono tag singoli che non hanno chiusura, poiché non ha senso che contengano del testo al loro interno.
Alcune informazioni nella parte “head” sono obbligatorie, il “title” titolo della pagina
Nel “body” non è obbligatorio nessuna informazione, può anche essere vuoto.
Tag notevoli
<!doctype html>
Indica al browser la versione del linguaggio
Intestazioni
HTML descrive la relazione tra le diverse parti di un documento.
Indica anche il livello di gerarchia che andiamo a definire (es. gerarchia di un libro)
Caratteri speciali
Se la nostra pagina dovesse contenere una relazione matematica come 0< p>r, il browser interpreterebbe < p >
come tag visualizzando scorrettamente il testo.
Esempio:
<style>
body {background-color:black; color:white}
h1 {color:red}
</style>
Separation of concerns è un principio di progettazione per separare un programma per computer in sezioni
distinte. Tecnica di problem-solving generica. Separare gli ambiti, e di focalizzarsi un singolo.
Crawler è un sistema automatico che simula l’interazione dell’umano sulla rete. Naviga per il motore
di ricerca sul web, recuperando le informazioni che sono accessibili attraverso il link. Ha come obiettivo
quello di creare un modello del contenuto del web, cerca di indicizzare le pagine in modo che poi la
rappresentazione interna del motore di ricerca….
È una sorta di esploratore del web, cerca di analizzare il contenuto di ogni pagine per aggiungerlo ad una
lista che poi verrà interpretata dal Query processor (?non sono sicura)
Costruisce una sorta di indice. Non c’è solo un Crawler
ma più macchine contemporaneamente che esplorano il
web.
Ricerche avanzate:
AND
OR
Operatore binario
Dice al motore di ricerca di restituire le pagine che contengono almeno una delle
parole caramella OR fragola OR cioccolato
NOT
Operatore unario
Dice al motore di ricerca di restituire le pagine che
non contengono la parola
Roma NOT calcio
Descrizione precisa
Capacità Quali operazioni svolgere
Linguaggio Descrizione non ambigua, non lasciano più interpretazioni.
Contesto Caratteristiche dell’input e ambiente di esecuzione
Input specificato
Dati trasformati per produrre l’output
Specifica di:
- Tipo
- Quantità
- Forma
Output specificato
Come sarà il risultato atteso della computazione
Determinatezza
Indipendenza dall’esecutore
La sequenza delle operazioni dev’essere specificata
- Ogni passo dev’essere descritto in ogni suo aspetto
- Senza lasciare aspetti non definiti
- Quali operazioni eseguire e quando
Effettività
L’esecutore può eseguire le istruzioni senza ulteriori informazioni
Operazioni effettivamente eseguibili
Finitezza
L’elaborazione deve giungere al termine in un tempo finito
Con il compito completato
Oppure con la segnalazione che non si può arrivare alla soluzione
Algoritmi e linguaggi
Linguaggio naturale
Utilizzato per comunicare fra persone
Sviluppato nel corso del tempo
L’ambiguità è parte dei linguaggi naturali
Linguaggi di programmazione
Linguaggi formali
Progettati per esprimere algoritmi
Hanno una definizione precisa
Non presentano ambiguità
L’algoritmo per essere concreto ha bisogno di essere specificato in un linguaggio di programmazione. Gli
algoritmi sono scritti in un linguaggio di programmazione.
Programmi e algoritmi
La natura è la stessa, cioè sono dei procedimenti per risolvere dei problemi. La differenza sta nel livello di
astrazione.
Distinzione:
Programmi è un algoritmo espresso in un linguaggio artificiale, opera in un determinato contesto. Il
programma è un metodo specializzato. È la concretizzazione di un algoritmo espresso in un linguaggio di
programmazione. È concreto, realizzato per una specifica macchina
Algoritmi è un metodo generale. È a un livello di astrazione maggiore, è più astratto.
Algortimo IAL
1. Inserisci un marcatore all’inizio della lista di ogni token
2. Se tutti i marcatori puntano allo stesso URL, salvalo
3. sposta il marcatore (o i marcatori) alla posizione successiva per gli URL che sono i primi, in ordine alfabetico,
tra quelli marcati
4. ripeti i passi 2 e 3 sino a che almeno uno dei marcatori supera la fine della sua lista; quindi, termina
Algoritmo NAL
Inserisci un marcatore all’inizio della lista di ogni token
Avanza il marcatore della lista più a destra passo-passo fino alla fine
Verifica se c’è una corrispondenza dei marcatori
Per ogni altra lista: verifica se il marcatore della lista immediatamente a destra è arrivato in fondo
- e il suo cursore no, avanza il cursore
- altrimenti riporta il cursore all’inizio della lista
Termina quando tutti i cursori sono in fondo alle loro liste
Nella scrittura degli algoritmi analizzare se un algoritmo va meglio di un altro, si cerca di farlo nel modo più
astratto possibile.
Hanno un’efficienza diversa, ma quali dei due è meglio? IAL è meno generico, ha meno operazioni.
Ricerca di un valore
C’è un dato autore in una sequenza ordinata di n libri?
Ricerca lineare
Ricerca binaria
Definizione di privacy
Gli aspetti di privacy sono legati al fatto che l’informazione che viene trattata o comunicata riguarda anche gli
aspetti personali delle persone o di quelli coinvolti. È legata anche ad aspetti politici e sociali. Già emersa alla fine
dell’800 (con le foto).
È un concetto di carattere generale che ha a che fare con:
Le persone
I nostri corpi intesi come immagine
I luoghi che noi frequentiamo
Le informazioni che ci riguardano
Le comunicazioni personali
Con i moderni dispositivi è possibile violare la privacy delle persone senza che se ne accorgano
Nel 1890, Brandeis scrisse che gli individui meritano “protezione sufficiente contro la circolazione
impropria” delle loro immagini
Social network
Noi abdichiamo alla nostra privacy già dal momento in cui ci iscriviamo in un social network (quando accetto i
termini e le condizioni).
Riduzione volontaria della propria privacy
La rete non dimentica mai, per essere distrutti, bisognerebbe tutte le copie dei contenuti.
Utilizzati regolarmente anche per le assunzioni
Cookie
Siamo sottoposti all’abuso che viene fatto di questa tecnologia, a causa di questo abuso, ogni volta che ci
attacchiamo ad un sito web e dobbiamo dare un consenso esplicito all’uso di questa tecnologica, questi sono i
cookie.
Sono una minaccia alla privacy, non sono pensati per essere qualche cosa da utilizzare per spiare il
comportamento. Anzi, fine meritorio ( comunicazione client/server, è senza memoria, significa che l’atto di
comunicazione del client/server non viene ricordato, una richiesta ad un server è sempre come se fosse la prima
volta. Per gestire una sorta di memoria, nelle tecnologie legate al web per il server, si è introdotto il concetto di
cookie).
Il concetto di cookie è qualche cosa che il server manda insieme alla risposta (al client), in modo che il client, a
successive richieste ricordi (richieste con il biscottino). Grazie a questo biscottino il server è in grado di
riconoscere che quella richiesta arriva da qualcuno che mi ha già contattato prima.
Il fatto che mi arrivi un cookie, e poi tutte le richieste successive abbiano questo cookie, consente di “marcare”
/identificare tutta la sequenza di richieste come un qualcosa di univoco, come una storia sessione serie di
richieste successive che sono identificabili grazie al cookie.
Esempio:
Il client chiede di effettuare l’operazione di login, il server dice “ok sei tu”, mandandogli user e password.
C’è l’illusione che il server si ricordi del client, quando in realtà non è vero, perché è il client che ricorda al server,
attraverso il cookie che era lui e che era stato autorizzato a fare delle cose.
È stato creato per evitare che ci sia questa mancanza di memoria.
Cookie:
Un piccolo file che contiene sette campi di informazione
Identificare univocamente una sessione
Il cookie è memorizzato sul computer client
Lettura e scrittura solo dal sito che si sta visitando
Essi non sono cookie legittimi, tecnici, quelli per realizzare l’interazione, per tenere traccia del login, del carrello,
ecc…
Sono un meccanismo subdolo. Il client accetta biscottini solamente dal server con il quale sta interagendo. Quello
che mi arriva con la risposta non è solo un cookie, ma è anche un contenuto html (contenuto della pagina, ad
esempio, home page). In quelle pagine, c’è un tag che si chiama IMEG ha un attributo SRC, con URL, il server in
risposta mi dice, questa è la pagina con le news, in questo punto c’è un’immagine, ma per visualizzare questa
immagine devi andare a questo URL.
Proteggere la privacy
Aggiornare il software antivirus
Configurare la gestione dei cookie
Fare sempre attenzione ai messaggi di possibili “phishing”
Scaricare file solo da siti affidabili
Mantenere sempre un sano scetticismo
Mantenersi aggiornati sulle tecniche di attacco alla privacy
Accesso
Coppia login-password
- Identificazione univoca dell’utente (login)
- Firma elettronica
Login e password
Il meccanismo di login e password è un meccanismo che può essere attaccato con un algoritmo, il quale è
sufficiente per trovare tutte le combinazioni possibili.
Dimenticare la password:
Le password sono criptate e registrate (CRITTOGRAFIA è una tecnica che nasconde il contenuto
trasformandolo in un contenuto che non è immediatamente intellegibile, ma che in qualche forma ci
consente di tornare indietro.
Il modo in cui viene memorizzata la password, è particolare, è un tipo di crittografia che funziona in un
solo senso, non in senso inverso. Perciò, dalla password criptata, non riesco a ritornare a quella originale.
L’amministratore del sistema non può ricostruire una password dimenticata, può solo cancellarla o
sostituirla
Cambiare password
Una password dovrebbe essere cambiata periodicamente, infatti molti sistemi impongono un cambiamento
periodico
Sicurezza
Malware
Protezione
Virus
È un programma che ne "infetta" un altro attaccandogli una copia di sé stesso.
Quando il programma infettato viene eseguito, il virus crea ulteriori copie di sé e infetta altri programmi
ancora
Worm
È un programma indipendente che copia se stesso e viaggia sulla rete
Trojan
È un programma che si nasconde all’interno di un altro programma utile, esegue operazioni all’insaputa
dell’utente
I trojan possono registrare le battute dei tasti o altri dati dell’utente o keylogger
Mandare in esecuzione programmi dannosi
Exploit
È un programma che sfrutta la vulnerabilità del software
La backdoor permette l’accesso al computer e ne riconfigura il comportamento da remoto
Virus per e-mail
Non aprite quell’allegato:
- Conosco il mittente di questo messaggio?
- Il contenuto è coerente con la nostra ultima conversazione?
- È plausibile che il mittente voglia dirmi delle cose?
- C’è una buona ragione per includere un allegato?
CRITTOGRAFIA
È una serie di sistemi, protocolli, algoritmi, che consente di rendere sicura la comunicazione (non può esser
intercettata) e di rendere privata la registrazione delle informazioni.
L’idea alla base della crittografia è la cifratura.
Modalità per mantenere un certo grado di sicurezza nella comunicazione crittografia modo per nascondere
l’informazione che viene trasmessa.
Un sistema di crittografia consiste in due fasi: cifratura(crittografia) e decifratura (decrittografia).
La crittografia è nata per ovviare i problemi del fatto che i canali di comunicazione possono essere pubblici.
Terminologia:
Cifratura rende la rappresentazione incomprensibile. È una trasformazione di rappresentazione,
con lo scopo di renderla incomprensibile, non a tutti, ma solamente alle persone alle quali questa
informazione non è rivolta.
Sistema di crittografia per la cifratura e la decifratura
Testo in chiaro l’informazione prima di essere cifrata. Contenuto originale
Testo cifrato l’informazione cifrata
Crittografia monodirezionale (usata per le password) non può essere facilmente decodificato. Noi
abbiamo una regola per passare dal nostro testo in chiaro, al nostro testo cifrato, ma non abbiamo una
regola per tornare indietro, o facilmente indietro.
Crittografia bidirezionale abbiamo qualche cosa che dal testo in chiaro va al cifrato, e dal cifrato al
testo in chiaro.
Decifratura operazione inversa della cifratura. Rendere comprensibile.
Crittografia simmetrica
Usiamo una chiave crittografica, che può essere utilizzata sia nella crittografia monodirezionale, sia in quella
bidirezionale. La chiave è un parametro del nostro sistema crittografico, ci consente di specificare la regola.
La chiave è un modo ulteriore per raggiungere un livello di sicurezza anche in sistemi crittografici semplici.
Gli schemi crittografici tipicamente usano un ulteriore parametro
Stessa chiave segreta
- Cifrare
- Decifrare
XOR- OR esclusivo
La crittografia simmetrica si basa su un operatore XOR, è un operatore binario particolare, prende dei numeri
binari e li trasforma con una regola. La cosa buona di questo operatore è che se lo riapplichiamo, ci restituisce il
risultato originale; mischia e poi se facciamo un’operazione, nasconde il contenuto che c’era prima, ma se lo
riapplichiamoci fa ritrovare il risultato originale.
Operatore binario, ⊕
0⊕0⇒0
1⊕0⇒1
0⊕1⇒1
1⊕1⇒0
XOR e crittografia
Facilita l’applicazione di una chiave a un testo in chiaro (la chiave è una sequenza di bit)
Per ottenere di nuovo il testo in chiaro basta riapplicare la stessa chiave
Il risultato dello XOR non cambia se la chiave è a destra o sinistra dell’operatore
Questo operatore è particolarmente utile, di solito uso delle chiavi che sono almeno di 16 bit, ma anche più lunghe
fino a 256 bit, per garantire una certa sicurezza.
Esempio:
La chiave, 16 bit, è: 00010111 00101101
Usiamo rappresentazione ASCII del messaggio
XOR, bit per bit, tra il messaggio e la chiave
Ripetendo la chiave per la lunghezza necessaria
Ci sono altri schemi crittografici che cercano di evitare questi problemi, al fatto di avere una chiave per almeno
ogni coppia di utenti, al problema della rimozione e quello della ripudiabilità.
Infrangere il codice
È possibile, tuttavia, che attraverso delle proprietà statistiche dei testi, di infrangere il codice. La persona che
intercetta la nostra comunicazione può usare delle tecniche statistiche, sulla frequenza delle lettere, per ricostruire
il testo originario.
Più è lungo il testo più è facile decodificarlo
Si notano quali sequenze di bit compaiono più frequentemente
Ci si basa sulla conoscenza delle lettere più comuni nel linguaggio in cui è stato scritto il messaggio
Limiti
Nessuna autenticazione sender
Ripudiabile Non c’è nessuna indicazione di chi ha emesso il messaggio, pertanto quest’ultimo è
ripudiabile.
Integrità del messaggio non verificabile
Per ovviare al problema dell’integrità e per rafforzare il meccanismo della comunicazione a chiave pubblica, si
usa il concetto di firma, complicando un po' il protocollo, ciò nonostante, questo garantisce di andare ad ovviare a
tutte e tre queste limitazioni, a garantire perciò la non ripudiabilità.
Funzione hash
Per aggiungere questo ulteriore livello di sicurezza, si usano delle funzioni di “hash” (polpettone che ci trita e ci
restituisce un riassunto del contenuto originale in lunghezza fissa). Queste funzioni di hash sono le stesse della
crittografia monodirezionale, funziona in un verso. Dal testo originale otteniamo una sorta di riassunto del testo. È
una funzione di riassunto, di trasformazione.
Basta alterare di poco il testo originale e noi otteniamo una firma diversa.
Le funzioni hash hanno delle caratteristiche:
Firma digitale
Attraverso la firma digitale, ovviamo al problema della ripudiabilità.
Meccanismo: Il messaggio viene crittografato con la chiave pubblica di Bob, è apribile solo da Bob con la sua
chiave segreta, con questa ricostruisco il contenuto.
Funziona anche all’inverso, se io codifico un contenuto con la mia chiave segreta, quel contenuto potrà essere
aperto solo con la mia chiave pubblica.
Le due chiavi devono essere utilizzate entrambe, una in un verso, l’altra nell’altro, ma entrambe hanno la
possibilità di crittografare o di decrittografare (non è prescritto un compito preciso a ciascuna di esse).
Noi otteniamo un qualcosa che può essere aperto da tutti (basta avere la chiave pubblica di Alice), ma siamo sicuri
che sia Alice ad averlo generato.
Con questo meccanismo evitiamo il problema della non ripudiabilità.
Usiamo queste due chiavi, in un verso o nell’altro. Questo, crea una copia del messaggio, che è criptata, così
siamo sicuri che sia stata solo Alice.
Questo messaggio per farlo leggere solo a Bob, uso la sua chiave pubblica per trasformarlo, perché quello che
ottengo è un messaggio doppiamente criptato. La chiave criptata di Bob serve solo per decriptare qualcosa che è
stato criptato con la sua chiave pubblica.
Con questo aspetto però, non abbiamo ancora risolto il problema dell’integrità perché se qualcuno conoscesse
la chiave segreta di Alice e manipolasse il messaggio, questo sarebbe possibile.
Per garantire anche l’integrità del messaggio, tipicamente i sistemi di … digitale, fanno un ulteriore passo
Prendono e mettono insieme non solo il documento, ma anche la firma digitale (riassunto del messaggio).
Caso di non ripudiabilità: Bob deriva questo testo inviato da Alice (è il cattivo), supponiamo che sia un contratto e
che lui modifichi il prezzo dicendo “questo è quello che mi hai inviato tu”, Alice non può dire di non essere stata
lei, non c’è prova.
Busta digitale
Meccanismo crittografico.
Quando i contenuti sono più di uno, è più efficiente utilizzare il sistema a chiave simmetrica (ha il vantaggio che
prima di effettuare la comunicazione bisogna scambiarsi la chiave).
Protocollo https
L’idea alla base del protocollo https è quella di usare la tecnica di
criptazione a chiave pubblica e privata (simmetrica), come un modo per
scambiarsi una chiave in modo sicuro.
Autenticazione
Tutta l’infrastruttura di chiave pubblica e privata, si basa sulla reputazione di quel registro, noi ci fidiamo di quel
registro (ci fidiamo di WhatsApp, è lui che tiene le nostre chiavi pubbliche). Ci dobbiamo fidare di quel registro,
ed è la reputazione di quel registro che fa funzionare tutta l’infrastruttura.
Esempio: se qualcuno sostituisce le chiavi pubbliche o se ci da delle chiavi false, tutta l’impalcatura crolla.
Tenere centralmente tutte le chiavi pubbliche è impossibile, si utilizza una sorta di distribuzione, uno schema
piramidale per la distribuzione delle chiavi, attraverso le autorità di certificazione.
Autorità di certificazione AC (Certification Authorities) Sono quelle che tengono le chiavi
pubbliche e sono non una sola, ma distribuite. Quindi abbiamo dei livelli. Garantiscono che le nostre
chiavi pubbliche siano realistiche.
Terza parte fidata
Certificati digitali è qualche cosa che identifica queste chiavi pubbliche assieme alla nostra identità
(SPID). Il certificato digitale di ciascun individuo contiene la chiave pubblica del soggetto e altre
informazioni:
- Nome del soggetto
- Chiave pubblica del soggetto
- Numero di serie del certificato
- Date di rilascio e di scadenza
- Informazioni ulteriori
- Firma digitale della CA che rilascia
Caratteristiche:
Efficace per i messaggi su Internet
Inutile contro gli impiegati malfidati
Nessuna garanzia che l’utente del computer sia la persona del certificato
Nessuna garanzia che il computer della controparte sia sicuro
Le CA sono società private
ELIZA
Per certi tipi di interazioni limitate e con un tipo di colloquio molto generico e
strutturato, un esempio di interazione stile Turing è stato proposto negli anni
’70, attraverso un sistema che si chiama Eliza.
Eliza mimava l’interazione fra un utente e uno psicanalista, in questa
configurazione particolare, lo psicanalista pone delle domande più che delle
risposte.
Eliza aveva questo tipo di interlocuzione a domande, cercando di sviare
l’argomento (perché è limitato da delle regole), individuazione di parole
chiave (es. depressione).
Uno dei primi tentativi per realizzare questo tipo di interazione, non passa il
test di Turing, in quanto un giudice è in grado di capirlo.
Al tempo, è stato un modo per caratterizzare gli sforzi che sono stati fatti nell’intelligenza artificiale.
Scopo di creare delle machine che sapessero interagire con gli umani.
Interazione subsimbolica
Accanto a questo tipo di intelligenza artificiale, quindi quello legato all’interazione (Turing), esiste un ulteriore
tipo di intelligenza artificiale, quella che attualmente ha il sopravvento, si tratta di quella subsimbolica. Questo
sub, ha il significato di elaborare un qualcosa che non è ancora un simbolo, è una percezione (es. visione,
comprensione del parlato, percezione tattile o pseudo). Questo tipo di intelligenza artificiale, va a un livello
sottostante, non costruisce dei simboli, costruisce qualche cosa che noi umani sappiamo fare molto bene.
Esempio:
Noi umani riusciamo a capire che nello spazio bianco c’è scritto qualcosa.
Per insegnare ad una macchina di vedere è qualcosa di molto problematico, attualmente l’intelligenza artificiale
subsimbolica che va sotto il nome di “machine learning” è quella che equipaggia i droni, la guida automatica,
quello che è incorporata nei nostri telefoni (Siri, Google), Alexa cercano di effettuare un ascolto e
un’elaborazione di quello che noi diciamo; è basata su uno strato piuttosto subsimbolico, da un certo punto di
vista mima quello che faceva Eliza. Funziona bene per la guida automatica.
Questo tipo di intelligenza si occupa della percezione, dando poco spazio al simbolo (al ragionamento).
Computazioni trattabili
Un altro aspetto fondazionale del calcolo ha a che fare con uno degli aspetti che abbiamo visto parlando di
algoritmi.
Gli algoritmi che abbiamo presentato (ricerca, intersezione di liste, ricerca di un libro in uno scaffale), hanno la
caratteristica di trovare un risultato, in realtà è possibile caratterizzare ulteriormente i processi di calcolo a seconda
di quanto tempo richiedano per trovare il risultato.
Le computazioni trattabili sono relative a dei problemi, per i quali esistono degli algoritmi che restituiscono il
risultato corretto in un tempo ragionevole.
La trattabilità viene definita come ragionevolezza del tempo che stiamo ad aspettare, se le dimensioni
crescono, noi ci aspettiamo che il tempo per effettuare l’operazione di ricerca, cresca di conseguenza in maniera
proporzionale ad un polinomio della dimensione del nostro scaffale.
Polinomio n, dove “n” è la dimensione dei nostri dati e “” la nostra costante. -
Esempio: problema del commesso viaggiatore (TSP), supponiamo di avere un insieme di città, noi per andare da
una città all’altra, mi imbatterò in un tempo di percorrenza. Ho delle città da visitare, devo cercare di visitarle
facendo la minor strada possibile, devo cercare un percorso che tocchi tute le città e che faccia meno strada.
Dato un insieme di città, e note le distanze tra ciascuna coppia di esse, trovare il tragitto di minima percorrenza
che un commesso viaggiatore deve seguire per visitare tutte le città una ed una sola volta e ritornare alla città di
partenza.
Per questo tipi di problemi, se ho “n” città, i numeri di possibili percorsi è dato da questa formula n-1!
(fattoriale)/2.
Ad oggi non esistono metodi che ci garantiscano di trovare una soluzione al problema del commesso viaggiatore
che sia sicuramente la migliore possibile.
Esempio:
Se io ho 10 città, il numero di possibili percorsi è 180.000. Solo con 10 città, per il problema del commesso
viaggiatore, ho 362.880/2, circa 180.000 possibili percorsi diversi.
Computazioni intrattabili
Sono quelli in cui l’esecuzione sarebbe eccessivamente lunga anche per dimensioni del problema limitate (10-15
città). I problemi non trattabili vengono chiamati problemi della famiglia NP I problemi sono intrattabili
indipendentemente dalla tecnologia che abbiamo a disposizione, anche se miglioriamo la nostra tecnologia. È
indipendente dai progressi tecnologici.
Caratteristica dei problemi intrattabili è quella di crescere o di avere insieme di possibilità particolarmente elevato.
Calcolo eseguibile in tempo più che polinomiale.
Le computazioni intrattabili hanno la caratteristica che il calcolo è eseguibile in tempo più che polinomiale,
richiedono un tempo non ragionevole
Esempio:
- permutazioni di caratteri
- n caratteri ⇒ tempo K * n!
Altro esempio di problema non trattabile che è simile a questo, i problemi non trattabili hanno la caratteristica di
crescere o di avere un insieme di possibilità particolarmente elevato.
Problema di calcolare l’esito di questa è partita:
Albero possibilità
Gli alberi sono una struttura concettuale per rappresentare una serie di
possibilità, si basano sul fatto che rappresentiamo ciascuno stato
(della nostra scacchiera), con un nodo dell’albero (è un punto), altri
nodi corrispondo ad altre situazioni.
È una rappresentazione di situazioni, può anche rappresentare le scelte
della prossima città da raggiungere. In questo albero, richiede una
mossa dell’avversario. Nella situazione iniziale, tutte le mosse sono
possibili e anche le risposte dell’avversario. Da una situazione
singola, siamo arrivati a 4 soluzioni.
Computazioni trattabili
Esempi:
Contare valori in una tabella (database) n record ⇒ tempo lineare K*n
Ordinare una serie di valori n valori ⇒ tempo K *n*log2(n)
Creatività
Un altro aspetto legato ai limiti di quello che possono fare è legato alla creatività.
Esiste un movimento artistico arte degenerativa cerca attraverso degli algoritmi di creare degli artefatti
artistici, tuttavia, in un algoritmo, la creatività non è del calcolatore ma è del programmatore che ha programmato
l’algoritmo per insegnare al calcolatore di generare.
Rilevatore di cicli
Abbiamo visto alcuni concetti relativi ai problemi suddividendoli in:
Trattabili (per cui esiste un algoritmo che richiede tempo ragionevole)
Esempio: ricerca di un libro in uno scaffale, intersezione di liste, commesso viaggiatore (???????)
Intrattabili (sono quelli per cui non c’è un algoritmo che richiede tempo ragionevole)
l’intrattabilità non ha a che fare con il fatto che non esista un algoritmo per risolversi, esiste,
ma richiederebbe troppo tempo
o Questa suddivisione si applica a dei problemi per il quale siamo in grado di trovare o determinare un
algoritmo che è in grado di risolverli problemi calcolabili esiste un algoritmo per risolverli, sono
suddivisibili a loro volta in queste due famiglie (trattabili, intrattabili)
o Esistono un insieme di problemi che non hanno questa caratteristica, per il quale è possibile dimostrare
che non esistono nessun algoritmo per risolverli problemi non calcolabili per questi problemi che
hanno un’essenza molto filosofica,
o Turing aveva individuato dei problemi che non possono essere effettivamente risolti tramite un algoritmo
risultato oppure se continuerà a ciclare senza restituirci nessun
valore (in informatica ciclare significa continuare).
Terminologia dell’interazione
Nell’interazione, il focus è che cosa fanno le varie componenti dell’interazione. Gli obiettivi non sono del tutto
generici, sono stanziati in un determinato dominio applicativo (messaggistica, editing di testi, contabilità). Gli
obiettivi dell’utente non sono generici, ma hanno un contesto applicativo.
L’utente usa il sistema interattivo per raggiungere i suoi obiettivi, nell’ambito di un certo dominio
applicativo
Obiettivo: quello che l’utente vuole raggiungere
Dominio: area applicativa oggetto dello studio
Descrive concetti, competenze e conoscenze
Intenzione: sequenza di azioni generiche che portano al raggiungimento dell’obiettivo. È il cosa voglio
ottenere.
Compito o azione: traduzione dell’intenzione in azioni specifiche. È l’azione di questa intenzione
generica
Questo tipo di suddivisione è dovuta a Norman, che ha condensato l’interazione in un modello molto semplice,
comprende tutti i tipi di azione.
Modello di Norman
Il suo focus di analisi è sull’utente, rispetto ai modelli precedenti che erano concentrati sulle macchine. Su chi e
su quello che la persona percepisce dell’interazione.
In questo modello l’attenzione è incentrata maggiormente sulla visione che l’utente ha della interazione
È basato su di un ciclo di esecuzione/valutazione
Ciclo di valutazione/esecuzione
Abbiamo 2 entità: utente e sistema, l’utente ha un obiettivo (cosa voglio fare). Perché l’interazione sia ricca e
utile, c’è bisogno che l’interfaccia ci restituisca qualche informazione. L’azione è quella successiva, guardando il
messaggio che compare ad esempio nella nuvoletta su WhatsApp, l’utente osserva che è cambiato qualcosa
nell’interfaccia, che comunica all’utente il risultato dell’azione e se questo risultato è corrispondente al suo
obiettivo oppure no. A seconda di quello che è accaduto può determinare delle azioni successive oppure no.
Golfi
Golfo dell’esecuzione differenza tra le azioni formulate dall' utente per raggiungere l'obiettivo e le
azioni permesse dal sistema. Più distante è ciò che l’interfaccia ci consente per descrivere le azioni che
abbiamo in mente, più lontani siamo dal risultato.
Golfo della valutazione differenza tra la rapresentazione dello stato del sistema e le aspettative
dell'utente. Cosa avviene quando ci viene dato del feedback. Golfo di valutazione ampio se non abbiamo
un feedback.
L’interfaccia è un ponte gettato sul golfo (i golfi sono intesi come due zone che sono in qualche forma sono
distinte, separate). Il golfo misura quanto è difficile per noi formulare un piano.
Esempio:
Versione vecchie di power point, non si capiva se veramente avessimo salvato, in quanto non c’è un feedback.
Come rimediare?
Svista: migliorare interfaccia
Sbaglio: bisogna fornire all’utente una migliore comprensione del sistema; riprogettazione radicale
dell’interfaccia
Le ultime tre sono regole che non sono così prescrittive, sono delle regole di buonsenso, regole empiriche nate
dall’osservazione nella progettazione e nell’interazione con l’interfaccia, hanno la caratteristica di guidarci ma
non obbligarci a fare qualcosa.
Regole di design
Sono delle regole che hanno come obiettivo non quello di normare una cosa, quindi irrigidire il progettista su certi
modelli di scrittura dell’interfaccia utente, bensì di guidarlo nelle scelte progettuali (scelta del colore, di un’icona).
Sono regole basate su dei principi che sono stati condensati nel tempo, in 50 anni di studio.
Guidano il progettista non con lo scopo di limitarne la creatività, bensì di dargli la consapevolezza che
determinate scelte possono essere fallimentari, e che perciò a volte è bene aderire a certe regole.
La verifica empirica viene fatta attraverso sia degli aspetti informatici (esempio: posso realizzare certi tipi di
interazione solo se il sistema me lo consente, su certi tipi di pc in cui lo schermo non è tattile, non posso usare
un’interazione tattile, ma dovrò trovare un altro modo, ad esempio il mouse perciò si può dire che le mie
opzioni sono limitate dal sistema)
Le regole di design forniscono ai progettisti la capacità di stabilire le conseguenze sull’usabilità delle loro
decisioni di progetto
Servono per limitare la gamma di opzioni di design tra cui scegliere (aspetto informatico spiegato sopra)
Ci sono altri aspetti invece, che sono relativi alle scienze sociali. Servono per applicare la teoria
(psicologica, ergonomica, sociologica, informatica) alla pratica di progettazione (senza che il
progettista sia esperto della teoria)
Le regole di design si differenziano in base a:
Autorità (prescrittività):
- Obbligo (alta)
- Suggerimento (bassa)
Generalità:
- Campo di applicabilità:
o In tutte le situazioni (alta) o
o Solo in alcune (bassa)
Livello di astrazione:
- Vicino (basso) o lontano (alto) al dettaglio di progetto
- Varia inversamente alla specificità
In base a questa tassonomia, le regole vengono anche definite in modo diverso, sottoforma di principi (non
obbligatori, sono guide), di solito derivano da logiche computazionali.
Derivano dalla conoscenza di teorie psicologiche, computazionali, sociali e sono indipendenti dalla tecnologia
STANDARD alta autorità, limitata applicabilità, specifiche. Sono delle regole assolutamente
prescrittive, sono necessarie per uniformare l’interfaccia, non nel senso assoluto, ma in senso relativo al
sistema (IOS). Obiettivo fornire qualcosa di omogeneo
LINEE GUIDA bassa autorità, alta generalità, specifiche. Regole con basso livello di prescrittività
Apprendibilità: grado di facilità con cui l’utente novizio impara e diventa produttivo. Il sistema
dovrebbe consentire all’utente di diventare produttivo, di imparare ad usarlo in modo efficace. Che il
sistema sia autoesplciativo.
Flessibilità: molteplicità dei modi con cui l’utente e il sistema si scambiano informazioni.
Robustezza: livello di supporto fornito all’utente nel raggiungere e valutare gli obiettivi. Quando
previene gli errori. (es. salva con nome, se noi salviamo un file con lo stesso nome, il sistema ci avverte
che ce ne uno già presente)
Ciascuno di questi principi, fondamentali per la progettazione, sono principi che poi si stanziano in linee guida,
standard, design pattern, sono a loro volta suddivisibili in ulteriori specifiche.
Esempio: un sistema è attendibile se ha tutte o alcune di queste caratteristiche:
APPRENDIBILITÀ
Predicibilità
Ci sono 2 aspetti della prevedibilità che sono legati sia alla capacità di prevedere cosa avverrà quando faccio
un’operazione. Altro aspetto oltre quello di esecuzione (prevedibilità delle azioni eseguite), anche quello di
valutazione (feedback).
L’utente non risponde bene alle sorprese
Un’ interfaccia è prevedibile se:
- La conoscenza della storia delle precedenti interazioni è sufficiente per stabilire il risultato delle future
interazioni
Vari livelli:
- Contingente: data la schermata attuale
- Storica: date altre schermate precedenti
Principio centrato sull’utente: la macchina è sempre deterministica
Due forme:
- Capacità di prevedere l’effetto delle azioni
- Visibilità delle operazioni: capacità di individuare quali azioni sono consentite
Sintetizzabilità
È la capacità che l’utente ha di stimare delle azioni che non ha mai fatto.
Capacità dell’utente di stimare l’effetto delle operazioni precedenti sullo stato corrente
Serve alla creazione di un modello mentale della UI (Interfaccia Utente) Trasparenza fornire un
rapporto informativo visibile del cambiamento di stato della macchina
Può essere:
- Immediata (Es. spostamento file in interfacce WIMP)
- Differita (Es. spostamento file in interfacce a linea di comando) (aspettare il risultato)
Esempio: login, il sistema deve farmi vedere che il login è avvenuto, non deve darmi la stessa interfaccia di prima
Familiarità
Ha anche a che fare con la familiarità, la differenza è il contesto di riuso delle conoscenze o del modello mentale.
Ha a che fare con l’analogia.
Anche i neofiti hanno esperienze di interazione in domini diversi:
- Col mondo reale
- Con altre interfacce
La familiarità misura la correlazione tra la conoscenza precedente e la conoscenza necessaria per
iniziare l’interazione presumibilità
Sfrutta l’analogia (Es. word processor è familiare a chi ha esperienza con la macchina da scrivere)
Le metafore generano interfacce familiari
Affordance
La familiarità non è un concetto che si applica solo tra uomo e macchina, è un concetto più generale che si
chiama affordance proprietà di un oggetto di fare o suggerire come utilizzarlo, ci fa sapere già da sé come
interagire o manipolarlo, di solito è legato ad un oggetto fisico (maniglia della porta).
L’idea dell’affordance è quella che l’oggetto abbia una forma che suggerisce già come interagire con l’oggetto.
La familiarità è collegata alla nozione di affordance: proprietà intrinseche di un oggetto che suggeriscono
come manipolarlo interagire
L’aspetto dell’oggetto stimola familiarità con il suo comportamento
“La forma segue la funzione”
Generalizzabilità
Generalizzabilità è la misura in cui la conoscenza acquisita per il raggiungimento di un obiettivo
passato è applicabile al raggiungimento di un nuovo obiettivo contingente.
La generalizzazione è una caratteristica naturale dell’uomo (ragionamento induttivo)
Può essere presente: all’interno della stessa applicazione interattiva o tra applicazioni simili (esempio.
taglia e incolla)
Coerenza
È ciò che sarebbe richiesta all’interfaccia, è una coerenza interna. Elementi che si comportano in modo simile.
Modello concettuale (o metafora)
Esperienza passata del mondo reale (familiarità)
Esperienza passata con lo stesso sistema o simili (generalizzabilità)
Non è un principio ben definito, qualcuno lo vorrebbe porre su un
livello diverso (meta principio)
È il principio: più menzionato, più pervasivo, quindi difficile da
definire
Gli elementi dell’interfaccia come i pulsanti o gli slider sono utilizzati in modo coerente: aspetto e
funzionamento sono simili
FLESSIBILITÀ
Un sistema è flessibile se mi da modi diversi per interagire con il sistema che sto considerando
Iniziativa di dialogo
- Chi guida l’interazione
Multi-threading
- Più di un compito alla volta, capacità del sistema di svolgere più azioni contemporaneamente, si può
ritenere flessibile, più ha questa capacità, più è flessibile
Migrablità dei compiti
- Compiti che può svolgere il computer/o l’utente.
Sostitutività
- Equivalenza di valori in input e output che io do al sistema, a seconda del contesto generale
Personalizzazione
- Modificabilità dell’interfaccia. Quanto io posso adattare l’interfaccia alle mie esigenze
Iniziativa di dialogo
Il dialogo è qualche cosa che si differenzia in 2 macrocategorie.
Interazione come dialogo tra partner
Quale partner ha l’iniziativa dell’interazione?
Si differenzia tra:
- System pre-emptive (preamption significa poter terminare un’attività senza che questa sia finita). Il
sistema decide “non vado avanti con l’attività che stavo facendo” (es. l’utente chiede di salvare un file,
non c’è più spazio su disco, il programma non salva il file, quindi non realizza l’azione che stava
facendo, ma da un messaggio di errore). Il system pre-emptive è dato dal fatto che l’azione non è
terminata, è il sistema che l’ha bloccata perché non poteva eseguirla.
o Rigidità (non posso salvare)
o Sicurezza garantita
- User pre-emptive l’utente sta facendo una operazione che richiedete tempo (scaricare un file da
teams), non sappiamo quando è stato caricato perché l’interfaccia rimane uguale, l’utente, che si è
stufato annulla l’operazione che stava facendo.
o Flessibilità (però se mi dimentico che non ho finito di scaricare il file e interrompo l’azione, il
risultato non sarà quello atteso
o Aumenta la probabilità che l’utente si dimentichi dei compiti che sono stati iniziati e non ancora
completati
Entrambi gli stati di dialogo è un’iniziativa che non porta necessariamente il dialogo al compimento dell’azione
che era prevista, proprio per queste 2 possibilità di poter interrompere l’azione, entrambi le interruzioni hanno i
lor pro e i loro contro.
Multi-threading
Ha a che fare con il fatto che più compiti sono fattibili simultaneamente (vedere un video e chattare allo stesso
tempo). Sebbene il sistema stia facendo 2 cose contemporaneamente,
Thread (filo): interazione dedita ad un solo compito
Multithreading: capacità di supportare interazioni relative a più compiti nello stesso momento
Concorrente
Comunicazione simultanea riguardante compiti separati (es. bip della posta mentre uso powerpoint)
Interfogliato (interleaved)
Sovrapposizione temporale dei compiti, ma in ciascun istante uno solo è attivo (es. Finestre WIMP)
Multimodalità
Sostitutività
Ha a che fare con la sfaccettatura con cui la stessa informazione verrà visualizzata all’utente. L’interfaccia
sostitutiva mi consente di giocare con questa natura dell’informazione in modo distinto.
Richiede che valori equivalenti possano essere sostituiti l’uno con l’altro
Si definisce rispetto:
- All’input
o Unità di misura
o Formule invece di valori
- All’output ( molteplicità delle rappresentazioni)
o Flessibilità nella presentazione dello stato (esempio. grafico + numero)
Pari opportunità: si perde la distinzione tra input e output: “se riesci a vederlo, lo puoi usare”
Esempio: Foglio elettronico
Personalizzabilità
Ha a che fare con il fatto di modificare l’interfaccia, è qualche cosa che è richiesto da programmi molto complessi
ed evoluti (lightroom).
Modificabilità dell’interfaccia: da parte dell’utente (adattabilità) o del sistema (adattività)
ROBUSTEZZA
È il principio per cui il sistema risponde in modo coerente a possibili errori o sviste, a possibili mal
funzionamenti, non necessariamente un errore dell’umano ma anche del sistema.
Osservabilità
- Valutare lo stato interno dall’output
Ripristinabilità
- Correzione errori
Velocità di risposta
- Velocità di comunicazione
Conformità dei compiti
- Le funzionalità sono adeguate al compito
Osservabillità
Permette all’utente di valutare lo stato interno del sistema tramite la sua rappresentazione percettibile
fornita dall’ l’interfaccia. valutazione esecuzione
Fase di valutazione del ciclo di Norman
Può essere ottenuta attraverso altri principi:
- Visibilità dell’operazione (già vista)
- Navigabilità
- Default
- Raggiungibilità
- Persistenza
Navigabilità consente all’utente di esaminare lo stato interno del sistema tramite la visualizzazione parziale che
ne fornisce l’interfaccia
Lo stato interno del sistema è complesso: una visualizzazione globale non avrebbe senso
Una buona navigabilità è ottenuta munendo l’interfaccia di comandi di visualizzazione relativi al compito
che si sta svolgendo
Default assistono l’utente informandolo dello stato del sistema con un ricordo passivo
Di due tipi:
Statico: i valori di default vengono fissati in inizializzazione e non cambiano più
Dinamico: i valori possono cambiare
Raggiungibilità possibilità di visitare (raggiungere) tramite la UI tutti gli stati osservabili del sistema
Ripristinabilità
Capacità di raggiungere l’obiettivo desiderato dopo un errore
Due direzioni di ripristino:
- Forward
o Accettazione dello stato corrente
o Negoziazione dello stato verso l’obiettivo desiderato
- Backward abbiamo fatto un’azione che non volevamo fare
o Rifiuto della situazione attuale
o Annullamento all’indietro delle operazioni effettuate fino ad uno stato sicuro
Principio di sforzo proporzionato: se è difficile annullare un’azione, dovrebbe essere altrettanto difficile
eseguirla
STANDARD
Sono stabiliti da organismi nazionali e internazionali
- Sono relativi ad:
o Hardware:
Intersecano fisiologia, ergonomia
Producono dettami ben precisi, applicabili
o Software:
Intersecano psicologia, scienze cognitive
Producono dettami vaghi, non facili da interpretare
Agenzie:
- BSI (British Standard Institution)
- ISO (International Organization for Standardization)
- IEEE
L’efficacia, l’efficienza e la soddisfazione con cui utenti specifici raggiungono determinati obiettivi in
particolari ambienti:
- Efficacia: la precisione e la completezza con cui utenti specifici possono ottenere determinati
risultati in particolari ambienti
- Efficienza: le risorse impiegate rispetto alla precisione e alla completezza degli obiettivi raggiunti
- Soddisfazione: la comodità e l’accettabilità del sistema di lavoro per i suoi utenti e altre persone
influenzate dal suo uso
LINEE GUIDA
Vengono incontro alla difficoltà di produzione di standard di costruzione di prodotti software
Rappresentano la maggior parte delle regole di design per i sistemi interattivi
Coinvolgono tutte le fasi della progettazione dell’interazione
Le linee guida più astratte servono per i documenti dei requisiti
Le linee guida più specifiche servono per la progettazione dettagliata
Definiscono, tra l’altro, gli stili di interazione
7 Principi di Norman
1. Bisogna usare sia la conoscenza presente nel mondo sia la conoscenza mentale
Conoscenza incorporata in attività, processi, relazioni sociali, artefatti fisici (affordance) del
mondo reale
Modello mentale
2. Si deve semplificare la struttura dei compiti
Per evitare carico cognitivo e STM
3. Si rendano le cose visibili: colmare i golfi di esecuzione e valutazione
4. Le corrispondenze vanno chiarite (fornire corrisp. naturali)
Quale interruttore accende quale luce?
5. Si sfrutti il potere dei vincoli
Eseguire solo l’azione corretta nel modo corretto
Fisici, logici, culturali
6. Bisogna progettare per gli errori
7. Quando tutto il resto non ha successo, si creino degli standard
Se le corrispondenze sono arbitrarie, vanno standardizzate
Le 8 regole d’oro di Schneiderman
Preservare la coerenza in sequenze di azioni, formato, terminologia, uso dei comandi e così via
Consentire agli utenti abituali di usare comandi rapidi , come abbreviazioni, speciali sequenze di tasti
e macro
Offrire un feedback informativo per ogni azione dell’utente, a un livello adatto all’estensione
dell’azione
Progettare dialoghi provvisti di chiusura, in modo che l’utente sappia quando ha finito un compito
Offrire una prevenzione e una gestione semplice degli errori , in modo che si impedisca la nascita di
errori, e, se li fanno, si offrano loro istruzioni chiare per correggerli
Permettere un’inversione semplice delle azioni per tranquillizzare l’utente e controllare il sistema, che
risponde alle sue azioni
Supportare il controllo interno in modo che sia l’utente a controllare il sistema, che risponde alle sue
azioni
Ridurre il carico della memoria a breve termine mantenendo semplici le visualizzazioni, sfruttando le
visualizzazioni multi-pagina e fornendo all’utente il tempo necessario per imparare la sequenze delle
azioni
10 euristiche di Nielsen
1) Rendere visibile lo stato del sistema
2) Creare relazioni tra il sistema ed il mondo reale
3) Abilitare il controllo dell’utente e lasciargli libertà
4) Essere coerenti e seguire gli standard
5) Aiutare l’utente a riconoscere, diagnosticare e correggere gli errori
6) Prevenire gli errori
7) Aiutare il riconoscimento piuttosto che il ricordo
8) Garantire flessibilità ed efficienza d’uso
9) Adottare un design esteticamente accattivante e minimalista
10) Fornire aiuti ed istruzioni
I pattern di interazione
Sono dei metodi per poter trasformare i casi di successo in processi ripetibili
Estraggono i dettagli essenziali dai progetti di successo in modo che possano essere applicati in nuove
soluzioni
Un pattern è:
- Una soluzione parzialmente specificata a un problema ricorrente all’interno di un contesto
specifico
- Tratta un problema che i progettisti incontrano spesso e fornisce un “inizio di soluzione”
Flow experience
The concept of Flow Experience (Csikszentimihalyi, 1990) originated in studies of happiness, enjoyment,
and play.
"A holistic sensation present when we act with total involvement."
Flow arises from a balance of ability and responsibility, control and uncertainty, skill and challenge.
Consciousness is greater in flow than in panic (challenge > skill) or boredom (skill > challenge). In both
panic and boredom, consciousness reverts to automatic or automatized actions.
Flow emerges in circumstances which are perceived as both problematic and soluble.
Italiano:
- Il concetto di Flow Experience (Csikszentimihalyi, 1990) ha origine negli studi sulla felicità, il
divertimento e il gioco.
- "Una sensazione olistica presente quando agiamo con totale coinvolgimento."
- Il flusso nasce da un equilibrio di abilità e responsabilità, controllo e incertezza, abilità e sfida.
- La coscienza è più fluida che nel panico (sfida > abilità) o nella noia (abilità > sfida). Sia nel panico
che nella noia, la coscienza ritorna ad azioni automatiche o automatizzate.
- Il flusso emerge in circostanze percepite come problematiche e solubili.
Italiano:
- Trascendenza personale. il senso di sé come separato è svanito, poca distinzione tra sé e ambiente o
sé e attività
- Ricompense intrinseche. Le attività vengono svolte per la propria ricompensa, non per obiettivi.
- Coinvolgimento. C'è un pieno coinvolgimento nel momento e nell'attività presenti.