1) computer Flashcards

1
Q

Cos’è un computer oggi?
Cos’era nel 17° secolo?

A

Un computer è un qualsiasi agente (ovvero, quell’entità in grado di agire se istruita appropriatamente, come una persona o una macchina) che sia in grado di fare calcoli e produrre una risposta (detta output) a partire da qualche informazione iniziale (detta input).

Nel 17° secolo un computer era chiunque eseguisse calcoli matematici.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Le 4 soluzioni al problema dei calcoli lunghi:

A
  1. Babbage (1822) sviluppa una macchina in grado di sostituire l’uomo nell’effettuare alcuni calcoli, la Macchina Differenziale (solo un prototipo parziale).
  2. Tuttavia, la Macchina Differenziale non era programmabile e, di conseguenza, era in grado di fare solo alcuni calcoli (utilizzare solo un numero limitato di operazioni sull’input ricevuto).
    Babbage (1837) progetta la Macchina Analitica (nessun prototipo, solo disegni del progetto): essa era programmabile tramite schede perforate ed è considerato il primo computer general purpose.
  3. Cent’anni dopo:
    Electronic Numerical Integrator and Computer (ENIAC, 1946): il primo computer interamente digitale (processa le informazioni e le trasforma in un sistema binario&raquo_space; digitalizza le informazioni), sviluppato negli Stati Uniti d’America.
    completamente programmabile attraverso l’uso di cavi e interruttori
    punto fisso nel tempo da cui tutti i moderni computer sono poi stati creati
  4. La ‘Bomba’ (1940), sviluppata da Alan Turing, è stata il principale strumento che ha permesso a un gruppo di persone, rinchiuse nella base militare segreta britannica di ​Bletchley Park​, di decifrare (grazie anche al lavoro pregresso fatto da crittologi polacchi come ​Marian Rejewski​) le comunicazioni tedesche che erano state cifrate dalla ​macchina Enigma​.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

‘scrivere un programma’:

A

comunicare ad un computer elettronico utilizzando un linguaggio (in questo caso formale) che sia l’istruttore umano sia il computer stesso possano comprendere

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

definizione di ‘pensiero computazionale’:

A

approccio per risolvere problemi, sviluppare sistemi e capire il comportamento umano che riprende i concetti fondamentali della computazione (= calcolo).
Definisce i processi mentali che coinvolgiamo quando formuliamo un certo problema ed esprimiamo le relative soluzioni usando un linguaggio che un computer (sia esso umano o macchina) può comprendere e, conseguentemente, eseguire

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

definizione di ‘astrazione’:

A

processo di rimozione dei dettagli trascurabili di una situazione in modo da semplificarla, per così focalizzare l’attenzione sulle sue caratteristiche principali.
Usiamo queste astrazioni in modo intenzionale o inconscio nella vita quotidiana.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

obiettivi del pensiero computazionale:

A
  1. Dare nuovamente forma alle astrazioni che abbiamo già immagazzinato in passato come conseguenza della nostra esperienza personale – e che, spesso, riutilizziamo inconsciamente.
  2. Essere nuovamente e interamente coscienti di queste astrazioni significa doverle ridefinire usando un linguaggio appropriato per renderle comprensibili a un computer.
  3. Obiettivo principale (dell’insegnamento) del pensiero computazionale: permettere alle persone di pensare come se fossero computer scientist, anche quando bisogna affrontare attività del quotidiano.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

organizzare l’informazione al fine dell’astrazione:

A

Organizzare l’informazione fa parte del processo di astrazione il descrivere l’informazione presente in una certa situazione secondo un’organizzazione generica e riutilizzabile in più contesti.

Si usano quelle che comunemente sono chiamate strutture dati.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

‘strutture dati’:

A

struttura dati: una sorta di contenitore dove possiamo posizionare alcune informazioni, e che fornisce dei metodi specifici per aggiungere e richiedere pezzi di questa informazione

Tipologie di strutture dati: liste, code, pile, insiemi, dizionari, alberi e grafi.

Queste strutture hanno determinate caratteristiche per scelta di design a seguito di analisi per scegliere le strutture data più efficienti per i programmatori.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

strutture dati: ‘lista’, ‘pila’, ‘coda’, ‘insieme’, ‘dizionario’, ‘albero’, ‘grafo’.

A
  1. Lista: sequenza di elementi ordinati e potenzialmente ripetibili che si possono contare, perché si può sapere quanti elementi essa contiene in un dato momento. Gli elementi possono essere aggiunti e rimossi senza regole particolari.
  2. Pila: Una lista particolare, poiché le operazioni di aggiunta e rimozione seguono una strategia fissa, ‘last in first out’ (LIFO&raquo_space; il primo che arriva è il primo a cui posso accedere).
  3. Coda: una lista particolare vista da un’altra prospettiva e con uno specifico insieme di operazioni che possono essere effettuate sugli elementi che contiene. Le operazioni di aggiunta e rimozione seguono una strategia first in first out (FIFO).
  4. Insieme: una collezione di elementi non ordinati e non ripetibili che si possono contare.
  5. Dizionario: una collezione non ordinata di elementi definiti da coppie chiave-valore che si possono contare, dove la chiave non è ripetibile.
  6. Albero: una struttura dati composta da un insieme di nodi collegati tra loro da una relazione gerarchica genitore-figlio.
    Qui vi è una relazione fra gli elementi contenuti nella struttura dati!
  7. Grafo: un insieme di nodi di una rete collegati da archi (che possono essere orientati). Usati per descrivere, in termini astratti, molte situazioni del mondo reale: tragitti tra città, relazioni tra persone nei social network, l’organizzazione dei collegamenti ipertestuali tra pagine Web e le relazioni concettuali nelle basi di dati.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

‘algoritmo’:

A

un algoritmo è un’astrazione di una procedura (procedura = una sequenza di istruzioni) passo passo che prende qualcosa come input e produce un certo output, scritta in un linguaggio specifico in modo che le istruzioni che definisce possano essere comunicate e comprese da un computer in modo da ottenere qualcosa come conseguenza dell’elaborazione di qualche materiale di input.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

‘programmatore’:

A

Un programmatore è una persona che crea algoritmi e li specifica in programmi usando uno specifico linguaggio comprensibile dal computer (elettronico).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Ada Lovelace e la ‘Macchina differenziale’:

A

Ada Lovelace era una matematica inglese.

Partecipò nel 1833 ad una festa organizzata da Charles Babbage per presentare la Macchina Differenziale, e ne fu così colpita che iniziò una corrispondenza epistolare con lui che durò 27 anni.
Fu la traduttrice in inglese del primissimo articolo sulla Macchina Analitica scritto da Luigi Federico Menabrea, e che lei stessa arricchì con un grande numero di annotazioni personali e riflessioni.

Tra le varie annotazioni che Ada aggiunse al testo, c’era anche una descrizione di come usare la Macchina Analitica per calcolare i numeri di Bernoulli.

Questo è riconosciuto come il primo programma della storia dei computer, creato senza avere a disposizione la macchina reale, visto che la Macchina Analitica era soltanto teorica, che di fatto fa di Ada la prima programmatrice della storia.

“[La Macchina Analitica] potrebbe operare su altre cose oltre ai numeri, se si trovassero oggetti le cui relazioni fondamentali possano essere espresse da quelle della scienza astratta delle operazioni”

Scienza astratta delle operazioni = informatica.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Che linguaggio usare per definire un algoritmo?

A

Non esiste un linguaggio standard per descrivere un algoritmo in modo che possa essere immediatamente comprensibile da un qualunque computer.

Di solito si usa uno pseudocodice, ovvero un linguaggio informale per descrivere i passi principali di un algoritmo ad un umano, anche se non è direttamente eseguibile da un computer elettronico – anche se i suoi costrutti sono strettamente connessi con quelli tipicamente definiti nei linguaggi di programmazione.

Un esempio di pseudocodice: i diagrammi di flusso (diagramma di flusso: descrive il flusso di istruzioni che l’algoritmo deve seguire.)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

oggetti grafici di un diagramma di flusso: linea/freccia, terminale, processo, decisionale, input/output:

A
  • linea di flusso: la freccia è usata per definire l’ordine in cui le operazioni sono eseguite.
  • terminale (cerchio): viene usato per indicare l’inizio e la fine di un algoritmo.
  • processo (rettangolo): viene usato per esprimere un’istruzione che è eseguita e che può cambiare lo stato corrente di qualche variabile usata nell’algoritmo.
  • decisionale (rombo): permette di esprimere operazioni condizionali, dove una condizione è verificata e, a seconda del valore di alcune variabili usate nell’algoritmo, l’esecuzione continua in un particolare ramo del flusso invece che in un altro.
    Di solito questa operazione crea due possibili rami: un seguito se la condizione è vera, e un altro che viene seguito quando la condizione è falsa.
  • input/output (rettangolo obliquo): permette di specificare un possibile input o output che viene usato o restituito dall’algoritmo solitamente all’inizio o alla fine della sua esecuzione.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

il paradosso del pensiero computazionale e ‘reductio ad absurdum’:

A

Tre domande chiave del pensiero computazionale:
1. Possiamo usare gli algoritmi per computare qualsiasi cosa vogliamo? Possiamo generare qualsiasi tipo di informazione?
2. Esiste un limite a quello che possiamo computare?
3. È possibile definire un problema computazionale – ovvero un problema che può essere risolto algoritmicamente da un computer – che non può essere risolto da nessun algoritmo?

Definizione paradosso: data una situazione che descrive un particolare problema, qualunque strada che si intraprende per trovare la soluzione del suddetto problema porta ad una contraddizione.

Uno degli approcci più usati per dimostrare che qualcosa non esiste è quello di costruire una situazione in apparenza plausibile che, poi, si rivela paradossale e auto-contraddittoria – in cui, per esempio, l’esistenza di un algoritmo contraddice se stessa.

Questo approccio dimostrativo porta il nome di ‘reductio ad absurdum’ (dimostrazione per assurdo): stabilire che una situazione è contraddittoria cercando di derivare un’assurdità dalla sua negazione, in modo da dimostrare che una tesi deve essere accettata perché la sua negazione non può essere difesa e, alla fine, genera un paradosso.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

il problema della terminazione: la ‘macchina teorica’ di Turing:

A

Per dimostrare che non è possibile usare un algoritmo per definire qualsiasi cosa, il matematico Hilbert dimostra che non è possibile sviluppare un algoritmo che fosse in grado di dirci se un altro algoritmo, specificato come input, terminasse la sua esecuzione o no.

Turing sviluppò la sua macchina teorica (1936) proprio per rispondere al problema della terminazione di Hilbert.

La macchina è in grado di simulare l’esecuzione di qualunque algoritmo realmente implementabile.

Approssimazione della soluzione di Turing:
Premessa: supponiamo sia possibile sviluppare l’algoritmo “termina?”, che prende in input un certo algoritmo e restituisce “vero” nel caso in cui l’algoritmo specificato come input termina, mentre restituisce “falso” in caso contrario

NB: è soltanto un algoritmo ipotetico, stiamo supponendo che possiamo svilupparlo in qualche modo, senza mostrare come farlo davvero.
Usiamo questo algoritmo per crearne un altro.

Caso 1: se l’algoritmo “termina?” afferma che il nuovo algoritmo termina, conseguentemente (per come è definito) il nuovo algoritmo non termina l’esecuzione.

Caso 2: se l’algoritmo “termina?” afferma che il nuovo algoritmo non termina, e conseguentemente (per come è definito) il nuovo algoritmo restituisce 0 e termina l’esecuzione.

Paradosso: l’algoritmo che verifica se un altro termina non può esistere.

Questo risultato ha avuto un effetto dirompente sulla percezione delle abilità computazionali che un computer può avere.

La macchina di Turing e le relative analisi effettuate su di essa hanno imposto dei limiti chiarissimi a quello che possiamo calcolare, e hanno permesso di dimostrare che determinati problemi computazionali interessanti, come quello della terminazione, non possono essere risolti da nessun approccio algoritmico.

Tutto questo è stato possibile solo grazie all’applicazione di un pensiero computazionale esclusivamente astratto, considerando che la macchina di Turing è solo uno strumento prettamente teorico.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

i linguaggi formali:

A

I linguaggi naturali non sono formali per definizione, tuttavia molti studi in linguistica cercano di fornirne una formalizzazione mediante l’uso di strumenti matematici-
Chomsky è uno dei padri della linguistica moderna – le cui ipotesi di ricerca principali sul linguaggio umano sono:
* la sua struttura sintattica di base è rappresentabile mediante una teoria matematica
* tale struttura è determinata biologicamente in tutti gli umani.

Un linguaggio formale possiamo pensarlo come un insieme di frasi.
Una grammatica formale permette di generare un linguaggio ed è definita da 4 elementi:
1. un insieme di regole di produzione,
2. simboli terminali
3. simboli non-terminali
4. simbolo iniziale

Un insieme di regole di produzione di forma “premessa ::= espressione”, dove la premessa e l’espressione possono contenere uno o più:
* simboli terminali (specificati tra virgolette), che identificano tutti i simboli elementari del linguaggio in considerazione (come nomi, verbi, etc.)
* simboli non terminali (specificati tra parentesi angolari), che identificano tutti i simboli di una grammatica formale che possono essere sostituiti da una combinazione di simboli terminali e non terminali.

Esempio:

<frase> ::= "Io" <verbo>
<verbo> ::= "scrivo" | "leggo"

Il simbolo non terminale <frase> è il simbolo iniziale.
Frasi che possiamo produrre da questa grammatica:
-Io scrivo
-Io leggo
</frase></verbo></verbo></frase>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

le grammatiche formali e la ‘gerarchia di Chomsky’:

A

Chomsky ha proposto una gerarchia (gerarchia di Chomsky) per descrivere formalmente le relazioni che possono esistere tra diverse grammatiche in termini delle loro possibili strutture sintattiche che sono in grado di generare. Sono ordinate dalla meno espressiva alla più espressiva

Queste tipologie sono caratterizzate dal tipo di simboli che possono essere usati nella premessa e nell’espressione delle regole di produzione (lettere greche usate per indicare una combinazione di simboli terminali e/o non terminali):
1. grammatiche regolari – <nt> ::= "t" | "t" <nt>
2. grammatiche libere dal contesto – <nt> ::= γ
3. grammatiche dipendenti dal contesto – α <nt> β ::= α γ β (viene mantenuto lo stesso contesto (in questo caso α e β) in cui si trova il simbolo non terminale.
4. grammatiche ricorsivamente enumerabili – α ::= β</nt></nt></nt></nt>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

cosa soo i ‘linguaggi di programmazione’:

A

Un linguaggio di programmazione è un linguaggio formale che obbliga l’uso di specifiche regole sintattiche sviluppate in modo tale da evitare possibili istruzioni ambigue.

Solitamente l’espressività del linguaggio è ridotta ma tutte le “frasi” componibili trasmettono un solo possibile significato.

I linguaggi di programmazione sono solitamente basati su grammatiche libere dal contesto e possono distinguersi per un basso o elevato livello di astrazione dal linguaggio propriamente in uso da un elaboratore elettronico per eseguire le operazioni.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

esempi di linguaggi di programmazione:

A
  1. Linguaggio macchina: Un insieme di istruzioni che possono essere eseguite direttamente dalla CPU (central processing unit, o processore) di un computer elettronico. E’ basato sul codice binario – una sequenza di 0 e 1 – rivisitato da Leibniz alla fine del diciassettesimo secolo.
  2. Linguaggi di programmazione a basso livello: Forniscono un livello di astrazione sopra il linguaggio macchina e permettono di scrivere programmi in modo che siano un pochino più intellegibili dagli umani.
    Il più famoso linguaggio di questo tipo è l’*Assembly *– anche se introduce simboli più comprensibili, di solito una linea di codice in Assembly rappresenta una specifica istruzione in linguaggio macchina
  3. Linguaggi di programmazione ad alto livello: Caratterizzati da un forte livello di astrazione dal linguaggio macchina – esempio: Python.
    Possono usare parole proprie del linguaggio naturale per definire costrutti specifici, così da essere di più facile comprensione per un umano.
    Più astrazione da un linguaggio di programmazione a basso livello è fornita, più comprensibile è il linguaggio.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

i primi linguaggi:

A

Grace Brewster Murray Hopper è tra i più grandi pionieri dei linguaggi di programmazione.

Il primo programmatore dell’Harvard Mark I, un computer elettromeccanico general-purpose usato durante la seconda guerra mondiale.

Hopper era fermamente convinta della necessità di avere linguaggi di programmazione che fossero indipendenti dalle macchine su cui erano utilizzati, che l’ha portata allo sviluppo del COBOL (linguaggio ad alto livello).

In modo da facilitare l’avvicinamento all’uso dei linguaggi di programmazione tradizionali, negli ultimi anni sono stati sviluppati diversi linguaggi di programmazione visuali che permettono lo sviluppo di piccoli programmi per risolvere problemi computazionali specifici.
Alcuni sono proposti sotto forma di gioco, e permettono l’introduzione dei costrutti principali propri dei linguaggi di programmazione mediante l’utilizzo di oggetti grafici.
(ex. il linguaggio del coniglio di Goggle, che deve ricevere istruzioni per mangiare tutte le carote posizionate sul suo percorso come ‘vai avanti’ o ‘gira a destra’).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

definizione ‘ipertesto’ e prima esemplificazione tecnologica:

A

ipertesto: un testo (corpo di materiale scritto) interconnesso in modo così tanto complesso che non è conveniente presentare su carta.

Prima esemplificazione tecnologica: 1945
Vannevar Bush scrive l’articolo “As We May Think”, che contiene una sequenza di visioni tecnologiche che sono state realizzate nei decenni a venire e che tuttora influenzano lo sviluppo di nuove tecnologie
Scenario: crescita esponenziale delle pubblicazioni, conseguenza delle nuove scoperte scientifiche, che necessitano di essere divulgate + meccanismi di produzione sempre più industrializzati.

Il problema: i meccanismi che venivano usati per trasmettere e/o revisionare i risultati di una ricerca erano molto vecchi e per niente adatti a facilitarne la divulgazione.
Se non si fosse intervenuti per tempo, ci sarebbe stato il rischio di perdere importanti pietre miliari della ricerca all’interno di una massa sempre più corposa di materiale irrilevante.
La tecnologia allora in fase di sperimentazione poteva già dare largo supporto alla creazione di piattaforme elettro-meccaniche che semplificassero notevolmente il salvataggio, la ricerca, e la consultazione di materiale rilevante.

Vannevar Bush suggeriva di usare i microfilm, che erano una tecnologia di frontiera in quel periodo.
Secondo Bush, era possibile salvare un’intera copia dell’Enciclopedia Britannica all’interno di un supporto grosso quanto una scatola di fiammiferi.

Uno dei problemi principali alla consultazione di un qualsiasi materiale, era la sua organizzazione sequenziale e l’artificialità del meccanismo di indicizzazione dei contenuti.
Quando un’informazione viene raccolta in un dispositivo di memorizzazione, essa viene in qualche modo indicizzata alfabeticamente o numericamente, e può essere contenuta soltanto in un posto specifico, a meno che non venga in qualche modo duplicata.
Per recuperare una certa informazione a partire dagli indici a disposizione, una persona deve seguire determinate regole in modo da identificare la posizione in cui tale informazione si trova.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

il ‘meccanismo per associazioni’:

A

Il meccanismo di indicizzazione non è il modo in cui la mente umana solitamente opera.

Partendo da una specifica informazione, la mente si sposta istantaneamente alla successiva mediante un processo associativo: un’informazione ne richiama un’altra, conformemente a una complicata rete di pensieri veicolata dalle cellule del nostro cervello.

Secondo Bush questa selezione poteva essere meccanizzata e conseguentemente esplicitata in una macchina.
“Il memex”:

Macchina che avrebbe permesso di memorizzare informazioni di vario genere su microfilm, così da accedervi in modo meccanico, flessibile, e veloce, e offriva:
* Indici tradizionali
* Consultazione sequenziale dei documenti
* Annotazioni
* Percorsi tra informazioni attraverso collegamenti associativi
* Condivisione percorsi via microfilm

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

la nascita degli ipertesti:

A

Ted Nelson aveva iniziato a lavorare ad un nuovo progetto, chiamato Xanadu (1965).

Obiettivo: creare una rete di computer che potesse essere depositaria dell’intera conoscenza umana e che potesse essere estesa mediante dei collegamenti ipertestuali bidirezionali che permettessero di collegare tra loro idee contenute in diversi documenti – idea molto simile ai percorsi associativi introdotti da Vannevar Bush.

Nel frattempo, Douglas Engelbart aveva iniziato l’implementazione di un sistema rivoluzionario che di fatto permetteva per la prima volta la creazione di ipertesti su un computer – tra le tante cose.
Questo sistema, chiamato oN-Line System (NLS), fu mostrato in una sessione dimostrativa nella Fall Joint Computer Conference del 1968, suscitando commenti entusiastici da parte di tutta la comunità, tanto da aver poi etichettato quella sessione come la madre di tutti i demo.

Innovazioni:
Software (le applicazioni e i programmi a disposizione di un computer)
1. finestre come meccanismo visuale per l’organizzazione di contenuti
2. ipertesto
3. un sistema di videoscrittura (o word processor in inglese, tipo Microsoft Word)
4. meccanismi per il controllo delle versioni dei documenti
5. editor collaborativo in tempo reale (tipo Google Docs)

Hardware (ovvero la parte fisica di un computer)
1. sistema di videoconferenza
2. il mouse

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

cos’è il Web nella testa del suo creatore:

A

Un ipertesto che potesse descrivere una varietà di risorse eterogenee (documenti, persone, concetti astratti, …) collegabili tra loro mediante l’uso di collegamenti ipertestuali etichettati, in modo da poter specificare la semantica del collegamento come parte esplicita del link.

Semplificazione rispetto a Nelson: collegamenti ipertestuali del Web dovevano essere percorribili in un’unica direzione.

Primo prototipo: un’ulteriore semplificazione: soltanto una tipologia di risorse (la pagina Web) e una sola tipologia di collegamento ipertestuale, ovvero il semplice riferimento (il documento A fa riferimento al documento B).
Sviluppò una serie di tecnologie che permettessero agli utenti:
* la creazione di documenti ipertestuali.
* di mettere a disposizione i suddetti documenti ipertestuali sul Web.ùdi identificarli mediante l’utilizzo di un opportuno identificativo.
* di richiederli mediante l’utilizzo di uno specifico protocollo di comunicazione.
* di visualizzarli su un computer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

identificare le risorse sul Web: URL:

A

Il computer non mostra tutto quello che conosce sui link ipertestuali presenti in quella pagina.
Dentro quel frammento di testo sottolineato e solitamente colorato in blu (o in viola, nel caso sia stato già visitato) che può essere cliccato, c’è nascosto un oggetto invisibile che inizia per “http://” (o, a volte, “https://”)
Quell’oggetto è un Uniform Resource Locator, o URL, rappresenta una sorta di nome (o più propriamente, un indirizzo) della pagina web a cui il link punta e permette di accedere cliccandoci sopra, ad esempio:
http://it.wikipedia.org/wiki/Barack_Obama

Struttura di un URL:
La forma di un qualunque URL presente nel Web è conforme con la seguente struttura (ove gli elementi tra parentesi quadre sono opzionali):

<schema>://<host>[:<porta>][/<percorso>][?<interrogazione>][#<frammento>]

**Metafora**: arrivare in una specifica posizione all’interno di una casa per prendere oggetto specifico.

1. schema: mezzo di trasporto usato per raggiungere la casa
2. host: indirizzo della casa da raggiungere
3. porta: ingresso da utilizzare per entrare nella casa
4. percorso: sequenza dei locali da percorrere per arrivare in quello di interesse
5. interrogazione: chiedere alla casa di eseguire azioni in quel locale
6. frammento: oggetto specifico dentro il locale raggiunto.

!!: ormai generalmente non è più necessario uno 'schema' per arrivare alla pagina web dedicata a qualcosa (Ex. it.wikipedia.org ci porta allo stesso documento a cui ci porta http://it.wikipedia.org).
</frammento></interrogazione></percorso></porta></host></schema>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

‘browser’:

A

Un ‘browser’ è un’applicazione software che permette di accedere e ottenere le informazioni presenti nel Web, così da poterlo “navigare” – esempi: Internet Explorer, Firefox, Microsoft Edge, Safari, Google Chrome
Il primo browser sviluppato da Tim Berners-Lee si chiamava WorldWideWeb.

Come funziona un browser:
Il browser permette di specificare un URL della risorsa a cui siamo interessati in un apposito campo della sua interfaccia, solitamente in alto
A seconda del tipo di risorsa, permette di visualizzarla all’interno della finestra browser (ad esempio nel caso di una pagina web) o di salvarla in uno specifico documento nel proprio computer (ad esempio nel caso di un documento PDF)

Nel primo caso, la pagina web visualizzata è un documento ipertestuale a tutti gli effetti: può contenere dei link che, se cliccati, indicano al browser di richiedere e scaricare la risorsa identificata dall’URL del link stesso così da visualizzarla
La navigazione nel Web è solo metaforica, siccome non ci si sposta fisicamente da una pagina web ad un’altra come se prendessimo un autobus.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

‘protocollo di comunicazione’:

A

Protocollo di comunicazione: un insieme di regole che due entità, parte di un sistema di comunicazione, devono seguire per scambiarsi informazioni

Cosa serve?
* Una sintassi da seguire per costruire i messaggi.
* Delle regole interpretative del messaggio così da definire la semantica dei messaggi.
* Dei meccanismi per sincronizzare la comunicazione.
* Dei meccanismi per correggere e/o gestire eventuali errori che possono intercorrere nello scambio dei messaggi.

Dove li usiamo: nella vita di tutti i giorni quando vogliamo, per esempio, comunicare con qualcuno.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

il protocollo HTTP:

A

l’Hypertext Transfer Protocol (HTTP) è un protocollo di comunicazione inizialmente sviluppato da Tim Berners-Lee per facilitare l’implementazione del Web.
Basato su metodi di comunicazione di richiesta-risposta
Esteso negli anni successivi – ad esempio con il protocollo HTTPS: un’estensione di HTTP che implementa un protocollo di comunicazione più sicuro sul Web, utile quando è necessario trasmettere dati di autenticazione come nomi utenti e password.

Entità coinvolte:
* Client: l’agente che fa la richiesta, ad esempio un browser
* Server: l’agente che dovrebbe avere informazioni su una risorsa, ad esempio un server Web, e che risponde alla richiesta.
* Messaggio di richiesta: il messaggio mandato dal client al server in cui vengono chieste informazioni riguardo una specifica risorsa indicata da un URL.
* Messaggio di risposta: il messaggio che il server restituisce al client, che può essere sia positivo sia negativo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

tipologie di richieste:

A

Tipologie di richieste = Metodi:
Le tipologie di richieste che possono essere effettuate da un client vengono definite grazie all’uso di uno specifico metodo, ovvero l’operazione di richiesta relativa all’URL coinvolto nella comunicazione.

Questa operazione può essere di diversa natura, come una semplice richiesta di informazioni, ad azioni più operative che determinano l’esecuzione di una specifica azione del server.

Non tutte le operazioni a disposizione, ovviamente, sono permesse – dipendono esclusivamente dalle capacità del server e dai permessi concessi al client.

31
Q

metodi HTTP:

A

Il metodo più usato nel Web è GET, che permette di richiedere informazioni sulla risorsa definita dall’URL specificato – per esempio come conseguenza di un click su un collegamento ipertestuale.

    1. PUT permette di creare sul server web contattato la risorsa specificata dall’URL utilizzato nella richiesta, e di associarvi informazioni incluse nella richiesta.
  • DELETE permette di rimuovere dal server web contattato tutte le informazioni relative alla risorsa specificata nella richiesta tramite l’URL.
  • POST permette di specificare informazioni aggiuntive, incluse nella richiesta, ad una risorsa esistente che già risiede sul server.

Classificazione metodi HTTP:
1. Safe: viene usato solo per recuperare delle informazioni dal server web, senza cambiarne lo stato, ad esempio aggiungendo nuovi dati (ad esempio GET).
2. Idempotente: molteplici richieste effettuate allo stesso URL hanno lo stesso effetto, sul server web, che effettuare una sola richiesta (ad esempio GET e PUT).

GET è preponderante nel Web, visto che viene usato per richiedere una qualsiasi risorsa, gli altri metodi non sempre sono liberamente utilizzabili da tutti i client – sta sempre al server decidere quali di questi metodi possano essere usati nella comunicazione.

32
Q

messaggi di risposta:

A

A prescindere dal metodo usato per la comunicazione, tutti i messaggi di ogni richiesta e risposta veicolano due tipi di dati ben distinti: i metadati relativi alla comunicazione – come il nome di client usato per effettuare la richiesta, il nome del server web che dovrebbe avere a disposizione la risorsa, etc. – ed eventuali dati (o contenuto) da accompagnare al messaggio. Per esempio, in una conversazione telefonica, il chiamante come prima cosa introduce chi è al ricevente (i metadati della comunicazione), per poi passare ad esplicitare il motivo della chiamata e le informazioni che si vorrebbero ottenere (il contenuto della comunicazione).

Queste due tipologie di informazioni, ovvero i metadati e i dati, sono contenute in due specifiche sezioni del messaggio, rispettivamente chiamate intestazione (header) e contenuto (payload).

Tutte le risposte, oltre che a contenere metadati nell’header e, talvolta, dati nel payload, specificano anche un codice di stato (sempre nell’header).

Un codice di stato è un numero di tre cifre, la cui prima (da 1 a 5) definisce la classe di risposta:
1. Risposta informativa (molto raro, di solito non usato)
2. Successo (es. 200 OK)
3. Redirezione (es. 303 See other)
4. Errore del client (es. 403 Forbidden, 404 Not Found)
5. Errore del server (es. 503 Service Unavailable).

33
Q

server web:

A

È un computer “speciale” che esegue un software specifico che permette di ricevere, gestire, e soddisfare richieste HTTP provenienti da un client, ad esempio un browser.

Il nome del server web è incluso nell’URL che identifica la risorsa di cui si vuole ottenere informazioni, nella parte host, come introdotto nella lezione precedente precedente (ad esempio it.wikipedia.org).
La richiesta HTTP da mandare al server è molto più strutturata rispetto a quello che abbiamo visto la scorsa volta con il semplice URL.

34
Q

Cosa succede lato server:

A

Una volta che il server web riceve una richiesta fatta come indicato in precedenza, cerca localmente informazioni del documento indicate nel percorso della richiesta.

Se trova la risorsa, ne fa una copia che viene impacchettata nel payload in un nuovo messaggio HTTP di risposta e la invia al mittente originale, specificando “200 OK” come stato.

Se non trova la risorsa, associa il codice di errore relativo nello stato e, opzionalmente, potrebbe anche specificare nel payload un qualche messaggio per specificare meglio l’errore o, in generale, la situazione occorsa.

35
Q

Indirizzo del server web: indirizzo IP

A

Seppur noi, utilizzatori di client come i browser, cerchiamo di accedere ad una risorsa a disposizione in un certo server web usando il nome di quest’ultimo ( ad esempio it.wikipedia.org), in realtà il server web non è direttamente raggiungibile usando il suo nome ma attraverso un indirizzo specifico.
Un qualunque server web è identificato (semplificando, per ora) in modo univoco da una sequenza di quattro numeri separati da punti, ad esempio 130.136.130.1, ove ogni numero può essere un valore che va da 0 a 255.

Questo numero si chiama indirizzo IP, dove “IP” è l’acronimo di “Internet Protocol”.

36
Q

distinzione ‘web’ e ‘internet’:

A

Il Web è uno dei più famosi servizi di Internet, perché si basa interamente sulle tecnologie messe a disposizione da Internet.

Internet in realtà è una contrazione di interconnected network (rete interconnessa), ovvero una rete composta da tante altre reti più piccole di dispositivi in qualche modo interconnessi tra loro mediante l’uso di specifici protocolli di comunicazione.

È un’infrastruttura generale che permette la creazione di nuove applicazioni.

37
Q

le origini di internet:

A

Motivazione (guerra fredda USA vs. Russia): provvedere ad una creazione di una rete di comunicazione che fosse abbastanza robusta da continuare a garantire la comunicazione tra tutti gli stati anche in seguito ad un attacco missilistico molto rilevante da parte della Russia.

Advanced Research Projects Agency (ARPA) fondata nel 1958 per la ricerca e lo sviluppo di tecnologie emergenti con forte applicabilità a livello militare.

Joseph Licklider (1962) iniziò a parlare di Galactic Network, ovvero un insieme di computer interconnessi.

ARPANET:
L’Advanced Research Projects Agency Network è stato il precursore di Internet
I suoi primi due nodi installati nel Network Measurement Center della University of California Los Angeles (UCLA) e lo Stanford Research Institute (SRI)
Primo messaggio della storia inviato il 29 ottobre 1969 da un computer del laboratorio dell’UCLA ad un computer dello SRI.

61 nodi nel luglio del 1977.

La rete venne ufficialmente e pubblicamente mostrata nel 1972 durante la prima International Computer Communication Conference a Washington – una delle prime applicazioni è electronic mail, o e-mail.

Sviluppo della tecnica a commutazione di pacchetto per trasportare dati su reti.
Nuove reti: Computer Science Network (CSNET), National Science Foundation Network (NSFNET), NASA Science Network (NSN).

La nascita di Internet avviene alla fine degli anni ottanta, quando ARPANET e NSFNET vengono intercollegate tra loro.

38
Q

commutazione di circuito:

A

Viene stabilito un circuito virtuale unico di comunicazione tra mittente e destinatario, ovvero una sequenza finita e sequenziale di nodi riservati che permette la sola comunicazione dal mittente al destinatario.

Viene usata tutta la banda a disposizione, che occupa in modo esclusivo i suddetti nodi fino al termine della comunicazione.

39
Q

commutazione di pacchetto:

A

Pacchetto: unità atomica in informazione, formata solitamente da l’header e il payload.
Dimensione massima in termini di informazione che possono contenere: un messaggio viene spezzato in diversi pacchetti, trasmessi sulla rete senza occupare l’intera banda, e instradati dal mittente al destinatario seguendo, potenzialmente, percorsi diversi.

Vantaggio: tolleranza ai guasti.

40
Q

L’intervento di Al Gore:

A

La spinta definitiva del processo di espansione e popolarità della rete come la conosciamo oggi venne data dal Governo degli Stati Uniti d’America, in particolare dall’allora senatore Al Gore.

Nel 1991, Al Gore introduce un atto, l’High Performance Computing Act of 1991 (HPCA), che – grazie all’investimento di 600 milioni di dollari e all’attiva collaborazione di industrie, accademia, e governo – prevedeva la creazione di un’enorme rete ultraveloce chiamata National Research and Education Network.

Obiettivo: permettere la connessione contemporanea di milioni di computer, non solo appartenenti a enti di ricerca o a industrie, ma (e soprattutto) posseduti da comuni cittadini.

41
Q

gerarchia protocolli:

A

Lo scambio di dati tra due computer collegati in rete è realizzata mediante l’uso dei pacchetti
Esiste una gerarchia di incapsulamento dei dati da spedire, definita dalla suite di protocolli Internet TCP/IP, organizzata in quattro livelli.

42
Q

internet protocol (IP):

A

È il protocollo che regola l’instradamento attraverso i vari nodi di Internet dei vari pacchetti IP che, in qualche modo, compongono il messaggio originale.

Due versioni, entrambe correntemente utilizzate in Internet: la versione 4 (IPv4) e la versione 6 (IPv6).

Pacchetti IP specificano, per ogni pacchetto, l’indirizzo IP del mittente e l’indirizzo IP del destinatario – sì, anche il mittente ha un indirizzo IP assegnato, e anche tutti i nodi di Internet ne hanno uno.

Un indirizzo IP può essere statico (non cambia) o dinamico (cambia ogni volta che ci si connette a Internet).

43
Q

comunicazione senza connessione:

A

I pacchetti IP di un certo messaggio vengono instradati in modo completamente indipendente tra loro, visto che ogni pacchetto contiene esplicitamente l’indirizzo del computer a cui deve essere recapitato.

Nello strato di rete, il mittente e il destinatario non devono mettersi d’accordo prima di inviare i dati, ma semplicemente agiscono senza conoscere l’eventuale stato (attivo, non disponibile, etc.) dell’altro.

I pacchetti possano perdersi, non arrivare nell’ordine in cui sono stati mandati, arrivare duplicati, e quant’altro – e il protocollo IP non è responsabile della risoluzione di queste problematiche, demandando tutta questa gestione allo strato di trasporto.

44
Q

Domain Name System (DNS):

A

È una sorta di elenco del telefono di Internet.

Partendo dal nome di un server web (es: it.wikipedia.org = host) permette di ottenere il relativo indirizzo IP (es: 208.80.154.224).

In Internet ci sono diversi computer speciali chiamati server DNS il cui ruolo è quello di restituire il corretto indirizzo IP per un certo nome a seguito di una richiesta fatta dal DNS Resolver, che conosce l’IP del server DNS più vicino perché preconfigurato o ottenuto dinamicamente nel momento in cui il computer mittente si è connesso a Internet.

Il server DNS può chiedere aiuto ad altri server DNS se non conosce direttamente l’IP dell’host richiesto dal Resolver.

45
Q

i nodi di Internet:

A

Ogni nodo di Internet è uno specifico computer che può avere uno o più ruoli.

I nostri computer personali, i server web, i server DNS, sono tutti computer parte della rete e identificati da uno specifico indirizzo IP.
C’è almeno un altro computer speciale, fondamentale per il corretto funzionamento della rete: il router.

46
Q

router:

A

router: dispositivo di rete dedicato a svolgere un compito molto peculiare e preciso: l’instradamento dei pacchetti IP dal mittente fino al destinatario.

Esistono diversi tipi di router usati in rete dipendentemente dal ruolo che svolgono:
il router che abbiamo a casa, che permette al nostro computer di connettersi a Internet mettendoci in contatto con il nostro Internet Service Provider (ISP), ovvero l’operatore che ci permette di usufruire dei vari servizi di Internet
router di collegamento tra sottoreti diverse ma sempre facenti parte di Internet

I router agiscono principalmente sullo strato di rete, svolgendo il ruolo di vigile urbano di Internet: veicolano il traffico dei pacchetti IP verso il percorso più appropriato dal mittente al destinatario.

Quando un router riceve un pacchetto IP, controlla qual è il prossimo nodo a cui il pacchetto deve essere trasmesso in modo da avvicinarlo al destinatario e, una volta identificato l’indirizzo IP del prossimo nodo, questa informazione viene incapsulata in un nuovo pacchetto dello strato di accesso alla rete, così che venga recapitato al nodo identificato.

Un router non entra mai nel merito del payload del pacchetto IP e non ne tiene traccia.

47
Q

Dimensione massima dei pacchetti:

A

Un particolare messaggio deva essere spezzato in uno o più pacchetti IP prima che questi vengano instradati in rete
Due diversi fattori:
* il limite dato dalla massima quantità di dati che ogni pacchetto IP può trasportare (che dipende dalla versione considerata del protocollo, IPv4 o IPv6).
* il limite imposto dalla rete a cui si instradano i pacchetti, ovvero il suo Maximum Transmission Unit (MTU)

48
Q

come sono espressi questi limiti:

A
  • Byte: unità minima di informazione occupabile su un computer, che storicamente corrisponde al numero di bit necessari per codificare un carattere sul computer.
  • Bit (contrattura di binary digit): l’unità minima di informazione che si può scambiare in una comunicazione e può assumere solo uno di due valori: 0 o 1
    1 byte = 8 bit

Il concetto di bit è stato usato da diversi studiosi del passato (ad esempio Babbage con le schede perforate), ma introdotto come termine formalmente da Claude Shannon (1948).

Ogni carattere, numero, programma, applicazione all’interno di un computer, così come un qualunque messaggio da scambiare in Internet, è codificato come una sequenza di bit che, in qualche modo, vengono poi decodificati con la sequenza di caratteri corretta dalla particolare applicazione che riceve ed interpreta quell’informazione.

Per esempio, nella codifica binaria tradizionale dei numeri interi, il numero 0 è rappresentato dalla sequenza “0”, il numero 1 da “1”, il numero 2 da “10”, il numero 3 da “11”, il numero 4 da “100”, e così via.

49
Q

la teoria dell’informazione:

A

Nell’articolo che introduce il bit, Shannon in realtà mette le basi di uno specifico campo di ricerca e studio chiamato teoria dell’informazione.

La teoria dell’informazione si occupa di studiare come quantificare, memorizzare, e scambiare informazione, che ha tuttora svariate applicazioni pratiche, oltre che aver caratterizzato e veicolato l’invenzione di diverse tecnologie del passato, incluso lo sviluppo di Internet.

Esempio: evincere la capacità massima di un canale per trasmettere informazione in modo affidabile è stato uno degli studi più importanti della teoria dell’informazione (a cui l’MTU è strettamente connesso).

50
Q

I pacchetti trasmessi:

A

Un qualunque messaggio e/o pacchetto spedito attraverso Internet è di fatto codificato usando una sequenza di bit.

Una parte di questi bit corrispondono a informazioni relative all’header del pacchetto, mentre altre sono relative al payload.

Normalmente la dimensione massima dell’header e del payload è fissata a priori.

51
Q

Transmission Control Protocol (TCP):

A

Sia il riordino dei pacchetti sia lo spezzare il messaggio originale in più pacchetti conformemente con l’MTU della rete, è gestito dallo strato di trasporto.
Protocollo principale: Transmission Control Protocol (TCP) proposto da Vinton Cerf e Robert Kahn nel 1974 per ARPANET.

Il TCP permette la consegna affidabile, ordinata, e esente da errori di un flusso di byte tra due computer in comunicazione tra loro attraverso una rete basata sul protocollo IP, e gestisce tutti quei processi che garantiscono la ritrasmissione di un pacchetto nel caso in cui non sia stato recapitato al destinatario entro un certo tempo limite.

L’header di un pacchetto TCP contiene informazioni relative alla comunicazione a livello trasporto tra i due computer mittente e destinatario (le porte usate per la comunicazione e un numero di sequenza che indica l’ordine dei vari pacchetti TCP), mentre il payload contiene le informazioni che devono essere scambiate tra i partecipanti alla comunicazione.

52
Q

Comunicazione connessa:

A

Il mittente e il destinatario si mettono d’accordo di iniziare una comunicazione in modo esplicito prima di scambiarsi i dati, e dichiarano altrettanto esplicitamente quando questa comunicazione si può ritenere conclusa
Il processo di inizio della comunicazione, è regolato dal meccanismo del three-way handshake (il mittente e destinatario si scambiano 3 pacchetti TCP prima di iniziare a scambiare dati), mentre quello di chiusura è il four-way handshake.

53
Q

Altri protocolli basati su TCP: SMTP:

A

Il Simple Mail Transfer Protocol (SMTP) è il principale protocollo di comunicazione dello strato applicativo per spedire email.

Ogni volta che si spedisce una mail, in realtà non viene recapitata direttamente al destinatario, ma viene raccolta da un server di posta di competenza del dominio della mail del destinatario.
Dominio identificato dalla parte dell’indirizzo email che segue il carattere “@”.

Questo server è come un server web ed è in grado di ricevere email attraverso il protocollo SMTP, per poi inoltrarle ai relativi destinatari quando questi ne fanno richiesta mediante l’uso del protocollo POP o IMAP.

54
Q

Altri protocolli basati su TCP: POP e IMAP:

A

Sono entrambi utilizzati per richiedere e ricevere email da un server di posta.
Con il Post Office Protocol (POP), il server di posta consegna tutti i messaggi precedentemente inviati a quel particolare destinatario e, una volta consegnati, li cancella dal server.

L’Internet Message Access Protocol (IMAP) è stato esplicitamente sviluppato per facilitare la gestione di una stessa casella di posta elettronica da parte di più dispositivi – infatti i messaggi di posta elettronica non vengono eliminati automaticamente dal server anche se sono stati già recapitati ai rispettivi destinatari a seguito di una loro richiesta, ma devono essere eliminati esplicitamente dall’utente, se lo desidera.

55
Q

Altri protocolli basati su TCP: FTP:

A

Il File Transfer Protocol (FTP) è un protocollo che permette il trasferimento di un qualunque file da un computer ad un server e viceversa.

È uno dei protocolli più adottati di Internet per permettere lo scaricamento di una grossa mole di dati, mentre è poco adatto per scaricare documenti molti piccoli, come pagine web.

56
Q

Marcatura di un testo:

A

la marcatura di un testo è l’annotazione del testo così da definire esplicitamente i vari ruoli strutturali e semantici delle varie parti che lo compongono.

57
Q

Da SGML a XML:

A

In modo da definire formalmente la marcatura relativa a un certo testo, sono stati sviluppati diversi linguaggi di markup.

Quelli di maggiore rilevanza per il Web seguono una sintassi specifica introdotta per la prima volta nello Standard Generalized Markup Language (SGML, 1986), e poi ripresa dal suo successore, l’Extensible Markup Language (XML, 1996).

Sono metalinguaggi: definiscono le regole sintattiche che devono essere seguite per specificare la marcatura di un testo, ma non impongono alcun vocabolario particolare per il nome da assegnare ai vari marcatori – cosa che invece viene poi fatta quando si definisce un linguaggio di marcatura vero e proprio basato su queste regole sintattiche.

58
Q

Da SGML a XML:

A

In modo da definire formalmente la marcatura relativa a un certo testo, sono stati sviluppati diversi linguaggi di markup.

Quelli di maggiore rilevanza per il Web seguono una sintassi specifica introdotta per la prima volta nello Standard Generalized Markup Language (SGML, 1986), e poi ripresa dal suo successore, l’Extensible Markup Language (XML, 1996).

Sono metalinguaggi: definiscono le regole sintattiche che devono essere seguite per specificare la marcatura di un testo, ma non impongono alcun vocabolario particolare per il nome da assegnare ai vari marcatori – cosa che invece viene poi fatta quando si definisce un linguaggio di marcatura vero e proprio basato su queste regole sintattiche.

59
Q

Regole sintattiche: elementi:

A

Il nome informativo che esprime la semantica della porzione del testo al quale l’elemento si riferisce – quello che abbiamo fatto finora.

60
Q

Regole sintattiche: attributi:

A

Contiene delle informazioni aggiuntive che si riferiscono all’elemento su cui viene specificato – un elemento può avere nessuno, uno o più attributi.

61
Q

Regole sintattiche: commenti:

A

Informazioni opzionali che possono venire inserite in qualsiasi punto della documento marcato, ma non fanno parte effettiva del contenuto.

62
Q

HTML:

A

L’Hypertext Markup Language (HTML) è il linguaggio di markup usato per creare tutte le pagine web e le applicazioni presenti sul Web.

È un linguaggio che segue una sintassi simile a quella XML, e che mette a disposizione uno specifico vocabolario di elementi ed attributi per identificare i vari ruoli strutturali e semantici di una pagina web.

Ogni qual volta viene fatta una richiesta per una pagina web, viene restituita una copia di un documento HTML contenente opportuni marcatori che il browser è in grado di interpretare e visualizzare a video in qualche modo.

Prima versione di HTML (di Berners-Lee) è del 1990, ed era basata su SGML.

HTML inizia ad avere una fortissima diffusione in seguito ai primi utilizzi commerciali del Web.

Negli anni successivi al 1990, durante la cosiddetta prima guerra dei browser tra Netscape e Microsoft, le definizioni di nuove specifiche del linguaggio HTML si susseguono, rincorrendo le estensioni e le modifiche proposte dai produttori dei browser che cercano di accaparrarsi quote di mercato.

Vengono rilasciate diverse versioni di HTML, fino ad arrivare alla versione 4.01 del 1999, che era piuttosto caotica: alcuni marcatori funzionavano soltanto su alcuni browser o su versioni specifiche di questi, mentre le indicazioni per gestire gli errori di sintassi erano molto generiche e per nulla chiare.

63
Q

XHTML:

A

Il W3C decide di iniziare a lavorare ad una nuova versione di HTML basata interamente sulla sintassi XML, chiamata XHTML, pubblicata ufficialmente nel 2000.

Migliora l’interoperabilità con altri linguaggi basati su XML della stessa famiglia (SVG e MathML su tutti), ma sacrificando la piena compatibilità con HTML.

Nel giugno del 2004 il W3C decide di non mantenere retrocompatibilità con HTML, scatenando l’ira dei vendors dei browsers, che formano il Web Hypertext Application Technology Working Group (WHATWG) per proseguire il lavoro di miglioramento di HTML al di fuori del W3C.

64
Q

HTML 5:

A

Nel 2006, Tim Berners-Lee annuncia la creazione di un nuovo gruppo di ricerca nel W3C orientato ad HTML e a quello che sta facendo il WHATWG.

Da quel momento in avanti il W3C e il WHATWG collaborano fino al 2011, ma continuano ad avere obiettivi inconciliabili.

  • Il W3C vuole cristallizzare e pubblicare la specifica della nuova versione di HTML5 (quella in uso correntemente nel Web) in un documento ufficiale e definitivo.
  • Il WHATWG non vuole la pubblicazione di una specifica versione ma piuttosto un living standard in evoluzione continua
    Pubblicano entrambe.
65
Q

Struttura dei documenti HTML:

A

Il primo elemento con il quale inizia un documento HTML non è un elemento HTML, ma è la Document Type Declaration: <!DOCTYPE html>.

È la dichiarazione che indica al browser che il documento in questione utilizza le regole di marcatura di HTML5.

Il primo elemento, la radice dell’albero, di un documento HTML è html, che contiene tutti gli altri elementi che descrivono la pagina HTML e può definire molti attributo, tra cui l’attributo lang per definire la lingua principale dei contenuti.

L’elemento html contiene direttamente due elementi per distinguere due sezioni importanti della struttura base di un documento HTML: head e body.

Il contenuto testuale di un documento HTML è contenuto dentro l’elemento body e può essere organizzato mediante l’uso di appropriati elementi HTML, che veicolano una precisa semantica (titoli).

Abbiamo poi link ipertestuali, titoli, paragrafi, enfasi, citazioni, liste e tabelle e multimedia.

66
Q

Struttura dei documenti HTML:

A

Il primo elemento con il quale inizia un documento HTML non è un elemento HTML, ma è la Document Type Declaration: <!DOCTYPE html>.

È la dichiarazione che indica al browser che il documento in questione utilizza le regole di marcatura di HTML5.

Il primo elemento, la radice dell’albero, di un documento HTML è html, che contiene tutti gli altri elementi che descrivono la pagina HTML e può definire molti attributo, tra cui l’attributo lang per definire la lingua principale dei contenuti.

L’elemento html contiene direttamente due elementi per distinguere due sezioni importanti della struttura base di un documento HTML: head e body.

Il contenuto testuale di un documento HTML è contenuto dentro l’elemento body e può essere organizzato mediante l’uso di appropriati elementi HTML, che veicolano una precisa semantica (titoli).

Abbiamo poi link ipertestuali, titoli, paragrafi, enfasi, citazioni, liste e tabelle e multimedia.

67
Q

Citazioni:

A

Tre differenti elementi per specificare le citazioni in un testo:
* cite, il titolo di un lavoro citato
* q, citazione in linea
* blockquote, citazione come blocco a sé stante

67
Q

Enfasi:

A

Per enfatizzare porzioni di testo in HTML si specifica mediante i seguenti due elementi:
* em per enfasi “leggera”
* strong per enfasi “forte”

68
Q

Liste e tabelle:

A

In HTML esistono due elementi che permettono di creare una lista:
* ol per la lista ordinata
* ul per la lista non ordinata
Le singole voci della lista vengono indicate usando l’elemento li.

Una tabella (elemento table) è composta da una sequenza di righe (elemento tr), ognuna delle quali contiene una o più celle che possono essere di due tipi:
1. celle contenenti dati (elemento td)
2. celle che definiscono intestazioni per le righe o le colonne identificate dalla tabella (elemento th)

69
Q

Multimedia:

A

L’elemento HTML per specificare un’immagine è img, un elemento che non contiene alcun testo ma che deve specificare i seguenti due attributi:
* src, l’URL dove reperire l’immagine
* alt, un testo alternativo mostrato al posto dell’immagine se quest’ultima, per qualsiasi ragione, non è visualizzabile.

L’elemento video usato insieme all’elemento source permettono di inserire un video in un documento HTML – l’elemento source deve avere specificato l’attributo src che, come per le immagini, si riferisce all’URL dove reperire il video.

70
Q

Presentazione di un documento HTML: CSS:

A

Nel 1996 viene rilasciata per la prima volta la specifica del Cascading Style Sheet (CSS), ovvero un ulteriore linguaggio che permette di definire il livello presentazionale degli elementi di HTML, come ad esempio:
* il colore e la dimensione del testo contenuto nei titoli e nei paragrafi.
* la posizione di sezioni, articoli, immagini o video.
* l’animazione dinamica quando si posiziona il cursore del mouse su una voce del menu e/o sui link.

71
Q

Le tecnologie informatiche nelle scienze umane:

A

L’uso delle tecnologie informatiche è estremamente pervasivo, visto che concilia, regola, e scandisce ogni momento delle nostre attività quotidiane.

Lo studio delle materie umanistiche non fa eccezione: il processo di digitalizzazione di artefatti fisici – come lettere, carteggi, libri, archivi – in documenti digitali ha reso possibile il loro accesso e studio in modo totalmente remoto, senza necessariamente recarsi nel luogo dove l’opera viene custodita ma richiedendola in digitale.

Al giorno d’oggi e contrariamente a quel che avveniva ancora una ventina di anni fa, risulta praticamente impossibile non considerare le tecnologie informatiche nell’approccio allo studio di materie e argomenti prettamente umanistici.

In questo contesto, l’informatica e il pensiero computazionale non devono essere visti come oggetti ostili, ma piuttosto come strumenti non solo utili ma fondamentali per uno studio completo, appropriato ed efficace delle discipline umanistiche.

72
Q

Progetti digitali:

A

Tutti i progetti digitali che riguardano le scienze umane hanno delle caratteristiche comuni:
* piattaforma (generalista o specialistica) solitamente Web, che permette di usufruire del contenuto digitale del progetto e di presentarlo al pubblico
* gestire delle risorse digitali
* organizzare queste risorse in modo strutturato e informativo per un qualunque agente, sia esso umano o macchina
* permettere l’accesso a queste risorse
* visualizzare appropriatamente a video le informazioni rilevanti e di rilievo per una specifica ricerca

73
Q

‘valore’ e ‘dato’:

A

Un dato può essere visto come una frase dichiarativa soggetto-predicato-oggetto.

In pratica, attribuisce (attraverso il predicato) ad una entità (il soggetto) un valore o la mette in relazione con un’altra entità (l’oggetto).
Esempi:
-Luigi è una persona
-Luigi ha codice fiscale SPRLGU00A0A000A