Il 0% ha trovato utile questo documento (0 voti)
2 visualizzazioni6 pagine

Informatica

Il documento descrive il concetto di computer come una macchina in grado di elaborare dati e compiere calcoli, evidenziando la sua evoluzione storica da Charles Babbage fino all'invenzione del primo computer digitale, l'ENIAC. Viene inoltre esplorato il pensiero computazionale, le strutture dati, e i linguaggi di programmazione, sottolineando l'importanza di programmare in modo formale per comunicare con i computer. Infine, si discute l'evoluzione del web e dei browser, con riferimenti a figure chiave come Tim Berners-Lee e Douglas Engelbart.
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
2 visualizzazioni6 pagine

Informatica

Il documento descrive il concetto di computer come una macchina in grado di elaborare dati e compiere calcoli, evidenziando la sua evoluzione storica da Charles Babbage fino all'invenzione del primo computer digitale, l'ENIAC. Viene inoltre esplorato il pensiero computazionale, le strutture dati, e i linguaggi di programmazione, sottolineando l'importanza di programmare in modo formale per comunicare con i computer. Infine, si discute l'evoluzione del web e dei browser, con riferimenti a figure chiave come Tim Berners-Lee e Douglas Engelbart.
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

CHE COS’E’ UN COMPUTER?

È una macchina che riesce ad elaborare dati rappresentati da caratteri alfanumerici


variamente codi cati che vengono sottoposti a ragionamenti aritmetici e logici, memorizzati in
archivi e resi reperibili e trasmissibili.

Qualsiasi agente, in grado di agire, se istruito correttamente, come una persona oppure una
macchina (accezione generale di computer). In grado di fare calcoli e di produrre una risposta. I
computer possono essere anche umani (gruppo) quando vengono usati per compiere calcoli
matematici di cili.

Charles Babbage fu il primo ad intuire la possibile esistenza di una macchina che potesse
compiere calcoli no ad allora eseguiti rigorosamente a mano: la prima macchina di erenziale.
Problema: la macchina di erenziale non era programmabile e dunque estremamente limitata
cosicché 15 anni dopo Babbage comincia la creazione della prima macchina analitica (1837).
Essa non fu mai costruita e ettivamente, la rivoluzione stava nella progammabilità di tale
macchina, non c’era più bisogno di modi carla sicamente, i calcoli procedurali erano risolti
settando la macchina tramite l’uso di schede perforate.

Dopo Babbage viene compiuto un ulteriore passo quasi un secolo dopo durante la WW2 con
Turing, creatore di “The Bomb”. La macchina dello scienziato inglese rimaneva tuttavia
focalizzata su elementi meccanici, in più era capace di compiere un solo lavoro sebbene cruciale
a livello storico. Il primo computer digitale fu invece creato nel 1946 con il nome di ENIAC,
completamente programmabile tramite cavi ed interruttori.

PROGRAMMARE: comunicare ad un computer elettronico tramite un linguaggio formale


comprensibile dal computer stesso e dal comunicatore (probabilmente umano).

PENSIERO COMPUTAZIONALE: approccio per risolvere i problemi, sviluppare sistemi e capire il


comportamento umano che riprende i concetti fondamentali della computazione intesa come
“calcolo”. Pensiero computazionale de nisce i processi mentali che attuiamo quando formuliamo
un problema + le eventuali soluzioni ad esso tramite un linguaggio che un computer (umano o
digitale) sia in grado di comprendere ed eseguire.

Astrazione: rimuovere dettagli trascurabili da una situazione per sempli carla e renderla più
“generica”. Concetto alla base del pensiero computazionale.

Il pensiero computazionale prende queste “astrazioni” fate in maniera volontaria o inconscia dal
nostro cervello e cerca di dargli nuova luce, de nendole tramite un linguaggio formale. Con il ne
di rappresentare e risolvere meglio i problemi in maniera sempre precisa.

Strutture dati: modi in cui possiamo organizzare l’informazione ed i dati da essere processati e
restituiti da un computer così da potervi accedere in maniera e ciente ed e cace a livello
computazionale. Scatola in cui riporre informazioni che fornisce regole per aggiungere
informazioni al suo interno o raggiungere informazioni già contenute.

Lista: insieme di dati ordinati (in ordine speci co di precedenza) e ripetibili (+ di una volta) e de niti
(sappiamo quanti sono).

Pila: funziona come una lista ma i dati sono organizzati uno sopra all’altro. Questo comporta
che per la rimozione di un dato venga sempre tirato in ballo l’ultimo dato aggiunto, ovvero quello
che è in “cima” alla Pila. “Last rst out”. In più se vogliamo rimuovere un elemento in mezzo
dobbiamo eliminare tutto ciò che è sopra.

Coda: lista vista da sinistra a destra. First in rst out => l’ultimo elemento aggiunto è il primo ad
essere rimosso a seguito di una richiesta in quanto occupa lo spazio libero più estremo verso
sinistra. Anche qui, rimuovo nel mezzo = tolgo tutto quello che viene prima.

Insieme: collezione di elementi non ordinati e non ripetibili.


ffi
fi
fi
ff
ff
fi
fi
fi
fi
fi
fi
fi
ffi
fi
ffi
ff
fi
fi
Dizionario: collezione non ordinata di elementi de niti da coppie chiave-valore dove la chiave
non è ripetibile. Non c’è nessuna relazione di cardinalità tra gli elementi (per questo non sono
ordinati).

Albero: struttura dati composta da un’insieme di nodi organizzati tramite una gerarchia “genitore-
glio”: root node = nodo senza genitore. Leaf node = nodi senza gli. Parent Node = nodo
genitore. Child node = nodo che proviene dal nodo esaminato. Sibiling node = stesso genitore del
nodo esaminato. Ancient node = nodo raggiungibile andando verso nodo radice. Descendant
node = nodo che si raggiunge allontanandosi dal nodo radice. Non serve solo come scatolone per
scatoline.

Gra : usati per descrivere situazioni del mondo reale. Struttura dati derivata dall’omonimo
strumento matematico inventato da Eulero. Si divide in gra orientati e non ==> posso
percorrere gli archi in qualsiasi direzione oppure sono a “senso unico”.

ADA LOVELACE fu un’importante matematica. Entra in contatto con la macchina analitica e scrive
il privo programma della storia senza nemmeno avere a disposizione tale strumento (calcolare
numeri di Bernoulli). Intuì n da subito gli in niti utilizzi che questa nuova tecnologia poteva avere,
parlando d’informatica 100 anni prima della sua e ettiva introduzione a livello formale.

Algortimo
Deriva dalla combinazione del latino algorismus a sua volta latinizzazione del nome “Al-
Khwarizmi”, famoso matematico persiano dell’ottavo secolo e dalla parola greca arithmos =
numero.

È l’astrazione di una procedura che preso qualcosa come input restituisce qualcos’altro come
output. Ognuno di essi è scritto in un linguaggio speci co così da essere comprensibile ad un
computer.

Programmatore = qualcuno che crea algoritmi e li speci ca in programmi usano uno speci co
linguaggio. Più generico: una qualsiasi entità in grado di creare algoritmi che possano essere
interpretati da un qualsiasi “computer”.

Pseudocodice = linguaggio informale che solitamente è usato per comunicare i passi principali di
un algoritmo ad un umano. Non è eseguibile da un computer elettronico.

Linguaggio di programmazione = non omette niente al contrario dello pseudocodice. Bisogna


speci care ogni singola mossa.

Non può esistere un algoritmo che indica se un altro algoritmo termina oppure no. Questo è stato
dimostrato da Turing ponendo dei limiti ben tangibili al pensiero computazionale.

Linguaggio
Linguaggio naturale : le istruzioni possono sembrare ambigue. Si sviluppa in maniera “naturale”
all’interno di una comunità. Non sono linguaggi formali per de nizione, nonostante la linguistica
tenti di dimostrare una possibile formalizzazione tramite l’uso di strumenti matematici (Chomsky, il
quale sostiene che la struttura sintattica di base è rappresentabile tramite una formula
matematica + tale struttura è determinata biologicamente in tutti gli umani, ed è dunque una
prerogativa evolutiva unica nell’uomo e non negli altri animali).

Grammatica formale: formata da un insieme di regole di produzione di forma => premessa =


espressione che possono contenere una o più simboli delle seguenti tipologie: simbolo terminale
fi
f
fi
fi
fi
ff
fi
fi
fi
fi
fi
fi
fi
(simboli elementari del linguaggio in considerazione come: nomi, aggettivi ecc..) e non terminale
(simboli di una grammatica formale che possono essere sostituiti da una combinazione di simboli
terminali e non).

Regola di produzione => sostituzione dei simboli nella premessa con quelli speci cati
nell’espressione nche non si raggiunge una sequenza che include solamente simboli terminali.

Come si comunica con un computer elettronico? Attraverso i linguaggi di programmazione,


ovvero un linguaggio formale munito di regole sintattiche precise con lo scopo di evitare
istruzione ambigue, questo ne permette inoltre una leggibilità corretta anche al di fuori del
contesto. Si possono dividere in basso o elevato livello di astrazione.

Linguaggio macchina: codice eseguibile direttamente da una CPU (Central processing unit) come
ad esempio il “codice binario”.

Linguaggi di programmazione a basso livello: sono linguaggi più intellegibili dall’essere umano
come Assembly. Questi linguaggi forniscono comunque istruzioni alla macchina.
Sostanzialmente sono dei facilitatori di programmazione, Assembly infatti traduce poi dopo, è
un’istruzione che permette di comunicare con il codice macchina.

Grace Hopper è stata la prima informatica della storia ad insistere sulla creazione di linguaggi di
programmazione indipendenti rispetto alla macchina su cui venivano utilizzati. Questo
pensiero la portò a sviluppare COBOL. Tutto ciò portò la programmazione ad un nuovo step,
rendendo il linguaggio leggermente più verboso ma, allo stesso tempo, più leggibile e chiaro.

Dopo la seconda guerra mondiale: furono creati moltissimi altri linguaggi di programmazione in
base ai problemi computazionali che bisognava risolvere ed agli ambiti d’applicazione interessati.
Il COBOL nacque per le applicazioni industriali, ma anche il FORTRAN si costituì analogamente
per la computazione dei dati scienti ci.

Python: linguaggio di programmazione ad alto livello di General purpose.

WWB
Ipertesti: corpo materiale scritto interconnesso in modo complesso.

Bush: famoso ingegnere ed inventore statunitense. A rontò il problema della crescita


esponenziale delle pubblicazioni. C’era troppo materiale da analizzare e si rischiava spesso di
perdere il “buono” in mezzo ad una gigantesca valanga di nulla. Inoltre era di cile accedere a
molti materiali e consultarli. Lui dice “bro possiamo già fare qualcosa che aiuti le persone con le
tecnologie elettromeccaniche che si stanno sperimentando oggi”. Per lui lo sbatti stava nel dover
cercare dati “correlati” alla ricerca che si stava eseguendo. L’indicizzazione dei contenuti era
arti ciale.

Bush dice che la mente ragiona in maniera associativa e sostiene di poter meccanizzare questo
ed esplicitare questo processo in una macchina.

Memex: macchina teorica di Bush che avrebbe permesso di salvare dati e comunicazioni di vario
genere su dispositivi appropriati. Bush pensò addirittura ad un sistema che permettesse di
aggiungere annotazioni e indici a tali documenti. In più la macchina aveva la possibilità di creare
percorsi tra le informazioni.

Nelson: creatore del termine “ipertesto”. Lavorò in giovane età ad un progetto nominato “Xanadu”
che aveva l’obbiettivo di creare una rete di computer nella quale depositare l’intera conoscenza
umana.
fi
fi
fi
ff
ffi
fi
Trasclusione: concetto associativo tipico della conoscenza umana coniato da Nelson sulle idee di
Bush.

Douglas Engelbart: famoso ingegnere che inventò oN-Line System (NLS) => un’invenzione
rivoluzionaria che permise al mondo dell’informatica una rapida evoluzione come: il miglioramento
software ed Hardware dei computer, il concetto di nestre come meccanismo di visualizzazione
e organizzazione di contenuti e applicazioni, il mouse, un sistema di videoscrittura e meccanismi
per il controllo delle versioni nei documenti.

Tim Berners-Lee: un giovanissimo scienziato del CERN nonché l’inventore del WWW. L’idea fu
inizialmente respinta e poi accettata come progetto collaterale per testare le potenzialità di un
nuovo computer della NeXT, posseduta da Steve Jobs negli anni di separazione da Apple. Egli si
ispirava fortemente alle idee di Douglas ma ne sempli cava alcuni aspetti, per esempio: i
collegamenti ipertestuali del WWW dovevano essere percorribili in un’unica direzione.

Primo prototipo di WWW: realizzato da Tim, rappresentava uno scenario sempli cato di
collegamento ipertestuale, un solo riferimento. Per fare ciò Lee sviluppo tecnologie basate su altre
già esistenti creando HTML (permetteva creazione di documenti ipertestuali), URL (identi cativo
che permetteva di mettere i documenti sul web) e HTTP (protocollo di comunicazione speci co +
Browser (permetteva di visualizzare il documento sul computer).

U.R.L.
Una sorta di nome della pagina Web, a cui il link punta (HTTP v HTTPS). Ognuno di questi è
formato da una struttura canonica: schema, host (porta), (percorso, interrogazione), (frammento).

- Schema: è il protocollo di comunicazione usato (Http/Https) per richiedere informazioni sulla


risorsa indicata dall’URL. Una sorta di mezzo di trasporto che ci permette di raggiungere la
casa.
- Host: il nome/sequenza numerica associata al server Web (un computer speciale), che ha a
disposizione le informazioni della risorsa identi cata dall’URL. È l’indirizzo della casa che
contiene l’oggetto.

Schema + Host negli URL portano alla homepage

- Porta: il numero che identi ca il particolare servizio, le “diverse” entrate della nostra casa. Se
non è speci cata si assume sempre di usare la porta di Default associata al protocollo (80 per
HTTP e 443 per HTTPS).
- Percorso: la sequenza di locazioni all’interno del server Web separate da “/“ da raggiungere
per ottenere la risorsa indicata dall’URL. Locali della casa da attraversare per arrivare
all’oggetto.

Server Web: speciale computer elettronico che ha memorizzati diversi documenti organizzati in
diverse cartelle, esattamente come siamo abituati ad organizzare i nostri documenti.

- Interrogazione: sequenza di coppie “chiave-valore” separate da & che è possibile indicare al


server in modo da eseguire determinate operazioni sulla risorsa indicata dall’URL. Accendere le
luci della camera in cui ci troviamo.
- Frammento: sequenza di caratteri che permette di identi care una parte o una posizione
speci ca all’interno della risorsa indicata dall’URL. Indicare uno speci co oggetto.

Come si naviga? Il nostro dispositivo scarica integralmente una copia della pagina WEB
speci cata nell’url. Di fatto non ci muoviamo e tutto questo è resto possibile dai BROWSER.
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
BROWSER
Applicazione software che perfette di accedere e ottenere informazioni presenti nel web, così da
poterlo “navigare”.

Il primo fu WWW, uguale al web stesso creando confusione. Fu messo a punto per permettere al
NeXT di “navigare”

Primo sito fu “World Wide Web consortium”, organizzazione per governare in maniera comunitaria
l’evoluzione del Web.

Il Browser non naviga ma richiede copie che vengono poi proiettate a video.

Protocollo di comunicazione
Insieme di regole che 2 entità devono seguire per scambiarsi informazioni. Una sorta di
linguaggio usato per comunicare. Ogni protocollo ha una sintassi (come una lingua veicolata) ed
una semantica (parole della lingua) speci ca. Inoltre il protocollo ha meccanismi per
sincronizzare la comunicazione e gestire eventuali errori.

HTTP/S: sono protocolli nati da Lee. Il secondo è un’evoluzione più sicura del primo e viene usato
per trasmettere dati di autenticazione. Il suo funzionamento logico è abbastanza semplice: un
client (browser) manda una richiesta identi cata da un URL ad un agente (server) che
risponde. Le tipologie di richieste possono essere varie: da semplici richieste di informazioni ad
azioni operative che richiedono una speci ca azione del ricevente. Get: permette di richiedere
informazioni sulla risorsa de nita dall’URL. Put: permette di creare la risorsa utilizzata nella
richiesta e di associare informazioni incluse nella richiesta. Delete: rimuovere le informazioni
contenute nell’URL. Post: speci care informazioni aggiuntive ad una risorsa già esistente nel
server. Solamente Get è utilizzabile quasi sempre da qualsiasi tipo di Client.

I metodi HTTP sono classi cabili

- safe/non safe: metodo usato solo per recuperare informazioni dal server web senza cambiarne
stato. Get è un metodo safe, Put no.
- Idempotente: se eseguo la richiesta più volte sul server, ottengo la stessa risposta? Con Get,
Put e Delete si, con Post no.

Tutte le richieste veicolano 2 tipi di dati:

- Metadati relativi alla comunicazione: nome del client, del server che dovrebbe avere
l’informazione ecc.. => Header v intestazione (c’è sempre)
- Dati da accompagnare al messaggio (il contenuto) => Payload v contenuto (può essere vuoto)
- Codice di stato: non sempre speci cato, indica se la richiesta è andata a buon ne. È
composto da 3 cifre, la prima identi ca la classe di risposta, le altre indicano una speci ca
motivazione alla risposta. Le classi di risposta sono: 1-risposta informativa (tutto recepito
correttamente, attendere o cambiare protocollo), 2-successo (richiesta accettata), 3-redirezione
(bisogna e ettuare speci che azioni aggiuntive per completare la richiesta), 4-errore client
(errore lato client), 5-errore server (server ha avuto problemi nel soddisfare la richiesta). CODICI
COMUNI: 200 = tutto ok!, 303 = risposta può essere trovata ad un altro URL, 400 = richiesta
non processabile dal server, 403 = richiesta valida ma il client non è autorizzato, 404 =
informazioni relative alla richiesta non trovate , 500 = errore generico lato server non ha
ff
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
permesso il corretto processamento della richiesta, 503 = il server non è momentaneamente
disponibile

Server Web: computer speciale che gestisce un software speci co in grado di ricevere, gestire, e
soddisfare richieste HTTP provenienti da un client. Il suo nome è contenuto nella sezione “host”
dell’URL.

Come riesce un client a raggiungere un server Web? Digitando il nome del sito nella sezione
“host” all’interno dell’URL. Non esattamente, questa è solo l’azione sica che noi vediamo o che
compiliamo, ma in verità il server non è direttamente raggiungibile usando il suo nome. Esso
funge da “nome di rubrica” che contiene al suo interno una stringa di 4 numeri separati da un
punto con un valore da 1 a 255, questa combinazione viene chiamata indirizzo IP ed è il
“numero” telefonico associato al contatto che volgiamo chiamare. Ogni volta che avviamo un
protocollo questo numero viene recuperato e ciò permette al client di comunicare con il server.

La nascita di internet
fi
fi

Potrebbero piacerti anche