














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
elementi di informatica, digital humanist
Tipologia: Dispense
1 / 22
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!















Digital Humanist L'informatica umanistica, o digital humanities o humanities computing, è un campo di studi che nasce dall'integrazione di procedure computazionali e sistemi multimediali nelle discipline umanistiche, relativa alla rappresentazione dei dati, alla formalizzazione delle fasi di ricerca e alle tecniche di diffusione dei risultati. Quali competenze deve possedere un umanista digitale? Un umanista digitale è anzitutto un umanista, dotato però delle nozioni tecniche e metodologiche necessarie per pensare il proprio lavoro e il proprio ruolo in modo assai diverso da quello tradizionale. Il compito forse più arduo per un umanista digitale è imparare a pensare in un modo diverso da quello cui ci hanno abituati secoli di tradizione scritta; questo non significa criticare questa tradizione, che è il fondamento stesso della disciplina, ma solo constatare che nel produrre risorse digitali l’umanista deve, per certi aspetti, adottare abiti mentali differenti. Ad esempio, uno dei temi che ricorrono più spesso a questo proposito è la necessità di separare i dati (il “contenuto”) dalle loro potenzialmente infinite visualizzazioni (la “presentazione”), laddove l’abitudine di pubblicare testi come risultato di un’attività scientifica ha sempre condotto a fondere questi due aspetti. DIZIONARIO: Un dizionario è un libro che si articola in voci, ciascuna delle quali è un testo, che contiene lemmi, parti del discorso, flessioni, traducenti, esempi, fraseologie, parole derivate o comparabili. Il testo qui è l’unica modalità di presentazione di questi dati, anche se questi si potrebbero incasellare in schede da riempire come moduli, piuttosto che essere calati in un’unica sequenza di parole che deve essere interpretata dal lettore. Questo limite si ripropone anche quando il dizionario venga trasportato dalla carta a un medium digitale: i primi dizionari digitali su web erano in fondo un testo codificato in HTML, il linguaggio di marcatura delle pagine web. Il miglior modo per “scrivere” un dizionario, è NON scriverlo: ovvero, non si tratta più di concepirlo come un testo, ma come un organismo complesso e indipendente da una specifica modalità di presentazione. In pratica, questo significa che gli autori del dizionario inseriranno dei dati in questo sistema, similmente a quanto si fa nel popolare un qualsiasi database. Questa “liberazione dei dati” è un processo da tempo auspicato e avviato per lo stesso futuro del web, nato come rete di (iper)testi. Non è ovviamente possibile che ogni umanista sia un informatico esperto e nessuna impresa digitale oggi può essere il prodotto di un singolo. Proprio nella prospettiva del lavoro di squadra, è però necessario che l’umanista sia in grado di modellare i propri problemi in modi nuovi e adatti alla loro metamorfosi digitale, in modo da poter dialogare in modo fruttuoso con gli specialisti di informatica, con una buona base informativa sui metodi di trattamento dei dati e sulle caratteristiche essenziali, i vantaggi e gli svantaggi di ciascuna tecnologia. Il termine “Informatica”: Etimologia Deriva dal francese informatique
Due aree principali:
Trasferimento = BUS Obiettivo : permettere lo scambio di informazioni tra le varie componenti funzionali del calcolatore. Trasferimento dei dati e delle informazioni di controllo.
Accesso misto : le celle sono organizzate in blocchi; ogni blocco è costituito da un certo numero di celle. Si ha accesso diretto ai blocchi e accesso sequenziale alle celle all’interno di un blocco. Permanenza dei dati In base alla capacità di memorizzare in maniera permanente i dati si distinguono due tipi di memoria:
Linguaggio Alfabeto: Collezione di simboli grafici, aventi di solito un ordine ben preciso, che servono a rappresentare le parole di una lingua; Vocabolario (o lessico): Insieme delle parole ammissibili di una lingua; Grammatica: Insieme di regole utili alla corretta costruzione di frasi, sintagmi e parole ; Semantica: Studia il significato delle parole (semantica lessicale), degli insiemi delle parole, delle frasi (semantica frasale) e dei testi; La funzione dei linguaggi I linguaggi sono strumenti per:
Gli Algoritmi Oggi Un algoritmo consente di realizzare un particolare trattamento dell’informazione o più in generale di risolvere uno specifico problema; calcolare la somma di due numeri; calcolare la lunghezza dell’ipotenusa di un triangolo rettangolo; risolvere un’equazione di secondo grado. L’esperienza quotidiana suggerisce infiniti esempi di algoritmi. Molte azioni che svolgiamo abitualmente possono essere modellate mediante algoritmi: preparazione del caffè, prelievo bancomat, preparazione di una ricetta, Indicazioni per un lavoro a maglia. Algoritmo: Definizioni Definizione 1: procedura di calcolo ben definita, che prende un insieme di valori come input e produce un insieme di valori come output; Definizione 2: sequenza di azioni elementari che consente di trasformare i dati iniziali nei risultati finali attraverso un numero finito di passi non ambigui. Esempio: Algoritmo per prendere l’Automobile Algoritmo:
Diagrammi di Flusso Blocchi Elementari : I blocchi elementari sono:
Componi il numero SE qualcuno risponde ALLORA Conduci la conversazione ALTRIMENTI Deponi il ricevitore e Ripeti l’intero procedimento, a partire dal punto 1. Un algoritmo può essere visto come un testo in grado di descrivere un insieme di sequenze di esecuzione. L’algoritmo per effettuare una telefonata potrebbe avere un processo ciclico che non termina mai. L’interlocutore non risponde mai al telefono. Prodotto di due Numeri mediante Addizioni Successive 7 * 3 = 21 7 è detto moltiplicando 3 è detto moltiplicatore Utilizzando il metodo delle Addizioni Successive, la moltiplicazione può essere espressa come 7 + 7 + 7 = 21 L’algoritmo potrebbe essere costituito semplicemente dal seguente testo “Si sommi il moltiplicando a sé stesso un numero di volte uguale al valore del moltiplicatore”. Ad esempio potremmo scrivere
I Programmi Negli ultimi anni l’Information & Communication Technology (ICT) è diventato un elemento strategico per il business, oltre che uno strumento essenziale in tutte le attività lavorative e sociali. Ha acquisito un valore irrinunciabile per tutte le istituzioni pubbliche e private, per le imprese, ma soprattutto per tutti noi. Il programma rappresenta l’elemento di base per il mondo dell’ICT. Fanno ormai parte di ogni nostra attività: Sistemi Operativi, Videogiochi, ATM, semafori, il motore di ricerca Google, sistemi per il supporto del trasporto Virus, Malware. Differiscono sotto vari aspetti: obiettivi, funzionalità, algoritmi, risorse ecc. Perché imparare a programmare? Automatizzare azioni e processi, Risparmiare tempo, Risparmiare risorse, Imparare un nuovo modo di pensare (Computational Thinking). Utilizzo dell'informatica e della computazione per risolvere problemi. Usare l’informatica in aree a cui le persone non hanno ancora pensato. Programmare richiede spesso di far fronte a nuove sfide, quindi un programmatore inconsciamente acquisirà capacità di problem solving. Questa abilità non è solo utile nella programmazione, ma è anche essenziale nella vita reale. Aggiungere una nuova lingua (linguaggio) è un’importante abilità per le nostre competenze. Imparare un nuovo linguaggio permette di usare nuove forme espressive. Imparare un nuovo linguaggio permette di usare nuove forme espressive, creare oggetti che in realtà sembrano non tangibili, ma che in realtà lo sono; lo sono perché in molti casi hanno cambiato il nostro modo di vivere, ma anche per il loro impatto economico. Utilizzando idee creative e competenze di programmazione è possibile creare tecnologie rivoluzionarie stando comodamente seduti al proprio computer. La programmazione consente alle nostre idee di prendere forma e materializzarsi. Di solito il tutto nasce dalla necessità di risolvere problemi concreti. Il CERN (Conseil européen pour la recherche nucléaire), il più grande laboratorio al mondo di fisica delle particelle, aveva necessità di strumenti software (programmi) che permettessero la diffusione di informazioni fra i suoi diversi centri di ricerca. Per risolvere questo problema, Sir Timothy John Berners-Lee sviluppò i programmi che rappresentano la base concettuale per il World Wide Web (WWW). Durante i suoi anni universitari Mark Zuckerberg non riusciva a trovare un modo efficace per raccogliere informazioni sugli altri studenti della sua università (Harvard). Per risolvere questo problema ha creato Facebook. Originariamente progettato per gli studenti dell’Università di Harvard, fu presto aperto anche agli studenti di altre università e scuole. “Facebook” prende spunto da un elenco con nome e fotografia degli studenti, che alcune università statunitensi distribuiscono all'inizio dell'anno accademico per aiutare gli iscritti a socializzare tra loro. Fino al febbraio 2005 non era possibile condividere e rendere pubblici sulla rete Internet i propri video. Per risolvere questo problema, 3 ragazzi che lavoravano a Paypal (Chad Hurley, Steve Chen e Jawed Karim) crearono YouTube. Larry Page e Sergey Brin immaginarono un luogo che permettesse loro di accedere, in maniera semplice e rapida, a tutte le informazioni presenti sulla rete Internet. Per fare questo hanno creato Google , un potente motore di ricerca che viene utilizzato da diversi miliardi di persone in tutto il mondo. Cos’è un Programma? Definizione: Realizzazione/implementazione di un algoritmo espressa in un linguaggio di programmazione specifico. Problema - Modellazione del Problema - Algoritmo – Programma Risolvere problemi complessi mediante azioni elementari. Le istruzioni corrispondono ad azioni elementari: Somma, differenza, prodotto, divisione (e poco più). Istruzioni e dati sono numeri binari.
comportamento delle macchine. Quanti sono i linguaggi di programmazione presenti al mondo? Più di
Linguaggi di Programmazione di Seconda Generazione Un linguaggio assembly (o assemblativo) utilizza codici mnemonici per rappresentare le istruzioni. Il codice può essere letto e scritto da programmatori umani. Ma è ancora fortemente dipendente dalla macchina. Per essere eseguito da un elaboratore, un codice assembly deve essere convertito (da un assemblatore), in una forma comprensibile dalla macchina mediante un processo chiamato assemblaggio. Linguaggio Assembly: Caratteristiche Principali Il linguaggio assembly supera le limitazioni del linguaggio macchina. Per rappresentare le istruzioni usa codici mnemonici alfanumerici invece che codici numerici. Ad es., usando ADD invece di 1110 (binario) o 14 (decimale) per rappresentare l'istruzione somma. Permette di rappresentare le locazioni di memoria sotto forma di indirizzi alfanumerici. Ad es., rappresentando le locazioni di memoria 1000, 1001 e 1002 rispettivamente come FRST, SCND ed ANSR. Vantaggi del Linguaggio Assembly rispetto al Linguaggio Macchina ❑ Più facile da capire ed utilizzare ❑ Più facile rilevare e correggere gli errori ❑ Più facile da modificare ❑ Non bisogna preoccuparsi degli indirizzi ❑ Efficiente quanto il linguaggio macchina Linguaggio Assembly Pro e Contro Pro: Adatti ad essere usati in elaborazioni estremamente intensive: Giochi, video editing, manipolazione grafica, rendering, etc. Contro: Dipendente dalla macchina. Tipicamente è necessario conoscere le caratteristiche della macchina (registri, dimensione dei dati, set di istruzioni, ecc.) su cui deve essere eseguito il codice. Anche semplici algoritmi richiedono molte istruzioni. Programmare in questo linguaggio risulta essere abbastanza complesso. Linguaggi di Programmazione di Terza Generazione I linguaggi di programmazione di alto livello usano parole English-like (Esempi: if, for, while, …), notazione matematica e punteggiatura per scrivere programmi.