





























Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Riassunto completo di slide + appunti del corso di Informatica per studi umanistici dell'anno 2025/26. Docente Luigi Asprino
Tipologia: Appunti
1 / 37
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!






























Informatica per gli studi umanistici - prof. Luigi Asprino 2025/
Con il termine Informatica si indica l’insieme dei processi e delle tecnologie che rendono possibile la creazione, la raccolta, l’elaborazione, l’immagazzinamento e la trasmissione dell’informazione con metodologie e strumenti automatizzati.
Deriva dalla contrazione di due parole francesi: “information” e “automatique”.
Le tecnologie informatiche hanno tre funzioni principali:
Hardware e Software Le tecnologie informatiche sono sistemi caratterizzati da due livelli che integrano e si completano vicendevolmente: l’hardware e il software.
Hardware indica la struttura fisica dei dispositivi costituita (solitamente) da componenti elettronici che svolgono funzioni nel trattamento e trasmissione dell’informazione.
Software indica il livello logico, cioè l’insieme delle istruzioni che consentono all’hardware di svolgere i propri compiti
Computer: Macchina per l' elaborazione di dati rappresentati da caratteri alfanumerici variamente codificati , che vengono sottoposti a procedimenti aritmetici e logici ,
memorizzati in archivi e resi reperibili e trasmissibili.
Sistema :Un sistema è un insieme di parti (componenti) correlate tra loro che operano in maniera congiunta per svolgere una specifica funzione.
A seconda della scala un computer può essere considerato un sistema oppure un componente di un sistema di computer collegati tra loro (Internet).
punto di vista della temporizzazione degli eventi. Questo si ottiene grazie ad un orologio (clock) che fornisce una cadenza temporale a cui tutte le attività elementari sono sincronizzate. La frequenza del clock, cioè il numero delle attività elementari che vengono eseguite nell’unità di tempo (tale frequenza viene misurata in hertz, Hz), determina la velocità di elaborazione della CPU.
Al fine di poter essere processata dalla CPU qualsiasi informazione ricevuta manipolata o prodotta dalla CPU deve essere trasformata (più precisamente si dice “codificata”) in una sequenza di bit. Inoltre, anche le operazioni sono trasformate in una sequenza di bit per essere interpretate.
Memoria: I computer usano quindi supporti di memorizzazione di più tipi: ● una memoria centrale (RAM): contiene i programmi durante la loro esecuzione ed i dati relativi ● una o più memorie di massa (dischi etc.): che mantengono tutti i dati ed i programmi in attesa di essere eseguiti in modo persistente, anche dopo lo spegnimento del calcolatore
Tutte le informazioni vengono rappresentate mediante sequenze di 0 e di 1 (bit: Binary DigiT) I bit tra RAM e CPU fluiscono a gruppi di 8 (byte) che risulta essere la più piccola unità accessibile singolarmente.
Altri tipi di memoria: ● Memoria di sola lettura (Read-only memory - ROM): ○ Non può essere modificata. A differenza della RAM non è volatile. Contiene le informazioni di inizializzazione usate ogni volta che si accende l’elaboratore (bootstrap) ● Memoria cache ○ Livello di memoria intermedio tra i registri e la RAM. ○ Memorizza i dati usati più spesso senza doverli recuperare tutte le volte dalla RAM (che è più lenta) ○ Influisce moltissimo sulle prestazioni e sul costo della CPU (e quindi del computer) ○ E’ molto più costosa della RAM ○ Si basa sui principi di località “spaziale” o “temporale”: ■ Località spaziale: “quando si accede all’indirizzo A, è molto probabile che gli accessi successivi richiedano celle vicine ad A.” ■ Località temporale: “quando si accede all’indirizzo A, è molto probabile che gli accessi richiedano di nuovo la cella A.”
Legge di Moore: «La complessità di un microcircuito, misurata ad esempio tramite il numero di transistor per chip, raddoppia ogni 18 mesi (e quadruplica quindi ogni 3 anni).» Più transistor = maggior frequenza di funzionamento Analogamente: La capacità delle memorie DRAM quadruplica ogni tre anni (60% anno) I limiti della prima legge di Moore starebbero solo nel raggiungimento dei limiti fisici imposti per la riduzione delle dimensioni dei transistor al di sotto dei quali si genererebbero. Tali limiti sarebbero peraltro già stati raggiunti con la generazione dei processori Pentium al di sopra del quale l'unico modo possibile e praticabile per aumentare le prestazioni di calcolo è rappresentato dalla tecnologia multicore ovvero dall'accoppiamento in parallelo di più processori.
Il calcolatore elettronico è un Sistema Elettronico Digitale programmabile:
● Elettronico Digitale: ○ Sfrutta componenti elettronici digitali (porte logiche) che operano su grandezze binarie (bit) che possono assumere due soli valori (0 e 1) ● Sistema: ○ E’ composto da parti (o componenti) che interagiscono in modo organico fra loro (architettura di von Neumann) ● Programmabile: ○ Il comportamento del sistema è flessibile e specificato mediante un programma, ossia un insieme di ordini DOMANDE
SOFTWARE E DATI Software indica il livello logico, cioè l’insieme delle istruzioni che consentono all’hardware di svolgere i propri compiti. In generale, il mondo del software si divide in due grandi categorie: sistemi operativi (infrastruttura che offre delle funzioni di base) e programmi applicativi (che offrono funzionalità specifiche).
Pensiero computazionale 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
Astrazione: 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.
Dati e informazione
Un dato è un singolo fatto, è un elemento immediatamente presente alla conoscenza, ad esempio il numero “3” non ha bisogno di ulteriori spiegazioni per capirne il significato. E’
autoreferenziale, è l’elemento minimo di qualsiasi forma di conoscenza.
Vettore/Array: Collezione ordinata di elementi di lunghezza prefissata in cui:
● lo stesso elemento può occorrere una o più volte
Operazioni consentite su un array: ● Accedi/ Sostituisci l’elemento i-esimo
Esempi ● Coordinate latitudine e longitudine di un oggetto
Insieme: Collezione non-ordinata di elementi dove lo stesso elemento può occorrere una volta sola di lunghezza non prefissata****.
Operazioni consentite ● Aggiunta o rimozione di un elemento ● Verifica appartenenza di un elemento all’insieme
Esempi
● Colori primari ● Oggetti nella vostra borsa
Dizionario: Struttura dati che permette di memorizzare una collezione di elementi , in cui ogni elemento è identificato da un identificativo univoco.
Operazioni consentite ● Recupero elemento con un certo ID ● Inserisci un elemento con un certo ID ● Rimuovi un elemento con un certo ID ● Verifica l’esistenza di un elemento con un certo ID
Esempi ● Vocabolario ● Rubrica
Albero : Struttura dati in cui gli elementi sono organizzati gerarchicamente.
● Nodo : elemento che contiene informazioni ● Arco : collega un nodo “padre” ad un nodo “figlio” ● Ogni nodo ha un solo padre e un albero non contiene cicli Nodi “speciali” ● Radice: Nodo senza padre ● Foglie: Nodi senza figli Operazioni consentite ● A seconda del tipo di albero sono consentite o meno le operazioni di cancellazione, aggiunta e verifica appartenenza
Esempi ● Categorie ● Organigramma aziendale
Grafo: Struttura dati in cui gli elementi sono collegati da archi.
● Nodo: elemento che contiene informazioni ● Arco: collega due nodi chiamati sorgente e destinazione
Operazioni consentite ● Inserimento di arco/nodo ● Querying
Esempi ● Rete stradale (nodi incroci, archi strade) ● Rete internet (nodi router e server, archi collegamenti)
Matrice: Una matrice è un array bi-dimensionale in cui ogni elemento di un array è a sua volta un array.
Può essere visualizzato come se fosse una tabella (righe per colonne).
Per accedere ad un elemento bisogna fornire il numero di riga e il numero di colonna.
Esempi ● Matrice parola/documento
DOMANDA:
Come manipoliamo le informazioni? Le strutture dati offrono dei modi per organizzare informazioni generiche utilizzando dei costrutti standard. In altre parole, servono per memorizzare informazioni in modo statico. Per manipolare le informazioni al fine di produrne di nuove dobbiamo eseguire delle sequenze di operazioni. Queste sequenze di operazioni le chiamiamo algoritmi e sono qualcosa di cui tutti abbiamo esperienza quotidiana.. Possono essere ricette step by step, istruzioni per l’assemblaggio di un oggetto…
Un algoritmo è: un’astrazione di una procedura 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.
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:
Linguaggi grammaticali e formali: Un linguaggio formale possiamo pensarlo come un insieme di frasi. Una grammatica formale permette descrive come generare un linguaggio ed è definita da 4 elementi: ● un insieme di regole di produzione, ● simboli terminali ● simboli non-terminali ● simbolo iniziale
Grammatica formale: 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: ::= "Io" ::= "scrivo" | "leggo"
_- Io scrivo
Linguaggi di programmazione: 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.
Linguaggio macchina: Un insieme di istruzioni che possono essere eseguite direttamente dalla CPU ( central processing unit , o processore) di un computer elettronico Basato sul codice binario – una sequenza di 0 e 1 – rivisitato da Leibniz alla fine del diciassettesimo secolo.
A basso livello: Forniscono un livello di astrazione sopra il linguaggio macchina 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.
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.
Linguaggi visuali: 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.
Esempio: Nel 2017, Google ha messo a disposizione un doodle in cui si deve istruire un coniglio in modo che riesca a mangiare tutte le carote posizionate su un determinato percorso
Le azioni che si possono far compiere al coniglio riguardano attività di movimento, ad esempio “vai avanti” o “gira a destra”, e devono essere disposte in una specifica sequenza
Problema computazionale: mangiare tutte le carote presenti sul percorso.
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.
Meccanismo per associazioni: 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. Questa selezione poteva essere meccanizzata e conseguentemente esplicitata in una macchina.
DOMANDA:
L’avvento del web: Tim Berners-Lee, un giovane scienziato del CERN di Ginevra, propone (1989) un progetto chiamato World Wide Web. Inizialmente respinto da parte dei suoi superiori con il famoso commento “vago, ma eccitante”. Venne accettato come progetto collaterale per testare le potenzialità di un nuovo computer (il NeXT) che era stato appena comprato dal CERN.
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. I 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
Identificare le risorse del Web: 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):
://[:][/][?][#]
Metafora: arrivare in una specifica posizione all’interno di una casa per prendere oggetto specifico ● schema: mezzo di trasporto usato per raggiungere la casa ● host: indirizzo della casa da raggiungere ● porta: ingresso da utilizzare per entrare nella casa ● percorso: sequenza dei locali da percorrere per arrivare in quello di interesse ● interrogazione: chiedere alla casa di eseguire azioni in quel locale ● frammento: oggetto specifico dentro il locale raggiunto
Ogni qual volta che, da un proprio dispositivo (un computer, uno smartphone, etc.), si clicca su un link, il dispositivo stesso recupera una copia della risorsa a cui l’URL si riferisce, per poi visualizzarla a video.
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.
sulla risorsa definita dall’URL specificato – per esempio come conseguenza di un click su un collegamento ipertestuale
Classificazione metodi HTTP: Safe: viene usato solo per recuperare delle informazioni dal server web, senza cambiarne lo stato , ad esempio aggiungendo nuovi dati (ad esempio GET). 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.
DOMANDA:
Messaggio HTTP:
Messaggi di risposta: 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:
Server Web: È 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.
Informazioni principali di una richiesta: Quando un client (ad esempio, un browser) richiede informazioni su una specifica risorsa (ad esempio una pagina web) utilizzando l’URL relativo, ad esempio:
Cosa succede lato server: 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.
Distinzione importante: Web ≠ Internet 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
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).
Comunicazione senza connessione: 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 stato 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 (protocollo TCP).
Domain Name System (DNS): È una sorta di elenco del telefono di Internet. Partendo dal nome di un server web (es: it.wikipedia.org) 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.
I nodi di internet: 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.
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:
Cosa fanno: 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.
DOMANDA:
Dimensione massima dei pacchetti: La scorsa lezione abbiamo accennato al fatto che un particolare messaggio debba essere spezzato in uno o più pacchetti IP prima che questi vengano instradati in rete
Due diversi fattori:
Come sono espressi questi limiti:
Teoria dell’informazione: 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).
Da bit a simboli e viceversa: 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.