informatica per le discipline umanistiche e...
TRANSCRIPT
Informatica per le discipline umanistiche e linguistiche
Roberto Zamparelli (parte prima)
Marco Baroni (parte seconda)
Precursori nel precedente ordinamento (509): IU B/C/D
�Informatica Umanistica A (= ECDL, impartito a livello di ateneo; vedi http://www.unitn.it/ecdl/
ora un prerequisito)�Informatica Umanistica B (Poesio, 3 crediti)�Informatica Umanistica C (Zamparelli, 3 crediti)�Informatica Umanistica D (M.Baroni, 3 crediti)
Due o tre di questi moduli obbligatori per ogni corso di studi a Lettere & Filosofia
Situazione attuale
�Un singolo corso di “Informatica per le discipline umanistiche e linguistiche” (IDUL), diviso in due parti consecutive allo stesso orario:
Orario: Lun., Giov. 12-14, Ven 10-12
Contenuti: elementi di IU-B e -C, più vari argomenti nuovi.
�Le due parti (ciascuna di 30 ore, 6 crediti) possono essere seguite indipendentemente.�Parte I: richiesta nella triennale di Beni Culturali, Filosofia�Parte II: più specialistica (uso di PERL), in inglese
Requisiti per studenti 509
Gli studenti del precedente ordinamento (“509”) che devono superare moduli di IU (B e/o C). possono presentarsi all’esame di IDUL:
�Come non frequentanti, con il programma di IU-C 2008/09 (3 crediti) e con le stesse modalità di esame (vedi sito)�Come frequentanti del nuovo programma, parte I (6 crediti)�Come non frequentanti del nuovo programma, parte I (6 crediti)
Web & esercitazioni
�Sito web con materiali del corso ed informazioni sull’esame:
http://people.lett.unitn.it/zamparelli/ (click su IDUL / IU per l' A/A in corso)
�Esercitazioni in laboratorio informatico:�Per gli studenti di filosofia: Paolo Massa (HTML/XML/WIKI)�Per gli studenti di beni culturali: F.Cavulli: (Data Base e GIS)
�Esame: orale con discussione di un progetto informatico (vedi sito per i dettagli)
Contenuti
�Parte I:�Nozioni di base: struttura fisica e teorica dei computer�Informazione e sua codifica vari livelli�Linguaggi di marcatura: HTML ed XML�Basi di dati e loro usi in campo umanistico�Nozioni di linguistica computazionale�Concetti e problematiche del “WEB 2.0”
Contenuti�Parte II�Introduzione generale alla programmazione: l'ambiente di lavoro, input, output�Espressioni regolari e ricerca di stringhe in un testo�Segmentazione del testo�Raccolta di statistiche sui profili di occorrenza e co-occorrenza delle parole�Misurare la somiglianza semantica tra parole con metodi geometrici
Bibliografia
�Parte I:�Lazzari, et al. “Informatica Umanistica”, McGraw Hill. 2010�Materiali sul sito (Note del docente,siti web)
�Parte II (inizio: 5 novembre)�Qualsiasi manuale introduttivo sul linguaggio Perl�Note del docente (Marco Baroni)
Bibliografia (IU-C)
�Per chi segue per dare IU-C:�Castano, Ferrara e Montanelli "Informazione, conoscenza e web per le scienze umanistiche",Pearson Addison Wesley, 2009�Ciotti Testi elettronici e banche dati testuali: problemi teorici e tecnologie, disponibile online.�Materiali sul sito (Note del docente,siti web)
Credits
Slide adattate e modificate da materiali su web di:
�Massimo Poesio�Roberta Cuel�Ciotti e Roncaglia�…
A tutti, grazie!
Marco Baroni:
[email protected] Roberto Zamparelli:[email protected]
Perché mai uno studente di Lettere & Filosofia dovrebbe seguire un
corso di informatica?
La madre di tutte le domande su questo corso:
Tre risposte
�Per motivi PRATICI generali�Per motivi SPECIFICI alle materie umanistiche�Per motivi SOCIALI e CULTURALI
Informatica come strumento pratico
�Saper usare strumenti informatici per
�Email�Web�Composizione di un documento�Uso di spreadsheet (“fogli di calcolo”) o di un database
fa ormai parte delle qualificazioni di base richieste per qualunque professione
�Un sito web e’ ormai un modo standard per distribuire informazioni e farsi pubblicita’
Anche un sito molto semplice puo’ essere utilissimo!
Informatica come strumento culturale (anche per le discipline umanistiche)
�Storici, materie letterarie:�Archivi di testi con possibilità sofisticate di ricerca�Analisi di testo (per esempio, riconoscimento di autori)�Archeologia:�strumenti CAD/GIS per visualizzare ed analizzare reperti�Beni culturali:�Database di immagini�Analisi di oggetti d’arte�Lingue, mediazione linguistica:�Dizionari online, creazione di dizionari�Traduzione automatica e aiutata dal computer
Informatica come strumento sociale
Importanza degli strumenti informatici per la comunicazione e l'informazione diffusa
• “Social network” (Facebook, Twitter, Google+,...)• Wikipedia, Youtube, etc.• “Cloud computing” (I nostri dati e programmi in mano altrui)
Questi strumenti non sono “neutrali”, ed è cruciale capire in che direzione ci spingono e quale effetto hanno su di noi e sulla società.
Chi li controlla?
Concetti scientifici entrati nell’uso comune
�Dalla fisica :�Entropia�Relatività�Principio di indeterminazione
�Dall’informatica :�Informazione, codice (e crittografia)�Digitale vs. analogico�Bootstrapping�Computabilità e suoi limiti
Nozioni di base:
� Modelli teorici della computazione: algoritmi� Modelli matematici della computazione: la macchina di Turing
I: MODELLI TEORICI DELLA COMPUTAZIONE� Un PROGRAMMA e’ un ALGORITMO posto in forma comprensibile al computer� Il nome ALGORITMO non e’ stato inventato dagli informatici ma dai matematici� Deriva dal nome del matematico persiano MuhammadibnMūsa'l-Khwārizmī che attorno all’825 scrisse un trattato chiamato Kitāb al-djabr wa 'l-muqābala (Libro sulla ricomposizione e sulla riduzione)� AL-KHWARIZMI � ALGORISMO � ALGORITMO� ALGEBRA AL-DJABR
ALGORITMO
�Definizione informale di ALGORITMO:
una sequenza FINITA di passi DISCRETI e NON AMBIGUI che porta alla soluzione di un problema
UN PROBLEMA E IL SUO ALGORITMO: IL MASSIMO COMUN DIVISORE
MCD: UN ALGORITMO ELEMENTARE�A scuola si impara un algoritmo molto semplice per calcolare MCD: la SCOMPOSIZIONE IN FATTORI PRIMI
� 42 = 2 x 3 x 7� 56 = 2 x 2 x 2 x 7
�Algoritmo MCD(M, N):1.Scomponi M ed N in fattori primi2.Estrai i componenti comuni e moltiplicali
�Questo metodo si può solo applicare per numeri piccoli (la scomposizione in fattori primi richiede molto tempo)
Esempio linguistico:il copista frettoloso
1.Nelmezzodelcammindinostravita
2.Miritrovaiperunaselvaoscura
3.chéladirittaviaerasmarrita.
4.Ahquantoadirqualeraècosadura
5.estaselvaselvaggiaeaspraeforte
Come poter riinserire automaticamente gli spazi omessi dal copista frettoloso?:
Esempio linguistico:il copista frettoloso
1.Nelmezzodelcammindinostravita
2.Miritrovaiperunaselvaoscura
3.chéladirittaviaerasmarrita.
4.Ahquantoadirqualeraècosadura
5.estaselvaselvaggiaeaspraeforte
Ingredienti:�lessico del linguaggio dantesco,�un sistema per leggere singoli caratteri
Idea generale ( prima versione )
�Si legge un carattere alla volta, accumulando i caratteri in una stringa (= una sequenza di caratteri).�Appena la stringa è una parola del lessico, si inserisce uno spazio.
Questo algoritmo richiede dei test (punti di scelta), rappresentabili come rombi in un diagramma di flusso
Diagrammi di flusso
TEST
AZIONE B
AZIONE ASI
NO
Legenda Rombi = test Rettangoli = azioni Frecce = passaggio
"Scegli la parola più lunga possibile, ma se con questa scelta non riesci a completare il verso, ritorna sui tuoi passi e scegline un'altra.” (“backtracking” – dettagli del meccanismo non rappresentati)
Spazi in Dante, take 3
Algoritmo 3: risultati
�Nelmezzodelcammindinostravita�Nel--mezzodelcammindinostravita�Nel--mezzo--delcammindinostravita�Nel--mezzo--delcammindinostravita�Nel--mezzo--del--cammin--dinostravita�Nel--mezzo--del--cammin--*dino--stravita ("Fallimento! ritorna a *)�Nel--mezzo--del--cammin--di--nostravita�Nel--mezzo--del--cammin--di--nostra—vita�…
MODELLI MATEMATICI DELLA COMPUTAZIONE
Le funzioni di un computer
�elaborare l’informazione�usando il processore (Central Processing Unit - CPU)�memorizzare l’informazione�usando la memoria principale (RAM)�usando la memoria secondaria (MEMORIA PERMANENTE)�fare l’input/output dell’informazione elaborata�usando i dispositivi di input/output
COMPUTAZIONE E MEMORIA IN UN COMPUTER
INPUT OUTPUT
MEMORIA
CPU
Istruzioni Dati
LA MACCHINA DI TURING...
�È una descrizione estremamente astratta delle attivita’ del computer, che pero’ cattura il suo funzionamento fondamentale�Basata su un’analisi di cosa fa un calcolatore (umano o meccanico)
Alan Turing, 1912-1954
COMPUTAZIONE E MEMORIA NELLA MACCHINA DI TURING
In una macchina di Turing abbiamo:�Una ‘CPU’:�Un programma: un insieme di regole che determinano il comportamento della testina a partire dal suo stato e dal simbolo letto (= sistema operativo)�una testina che si trova in ogni momento in uno fra un insieme limitato di stati interni e che si muove sulla memoria, leggendone e a volte modificandone il contenuto.�Una ‘MEMORIA’:�un nastro di lunghezza indefinita, suddiviso in cellette che contengono simboli predefiniti (ad es. ‘0’e ‘1’);
FUNZIONAMENTO DI UNA MACCHINA DI TURING
UNA DIMOSTRAZIONE DEL FUNZIONAMENTO DELLA MACCHINA DI TURING
Simulazioni di Macchina di Turing su web:
•http://ironphoenix.org/tril/tm/
MACCHINA DI TURING UNIVERSALE
�Nelle macchine di Turing piu’ semplici, si trova una distinzione molto chiara tra PROGRAMMA (= gli stati) e DATI (= contenuto del nastro)�Turing pero’ dimostro’ che era possibile mettere anche il programma sul nastro, ed ottenere una macchina di Turing ‘universale’ – che LEGGEVA sul nastro la prossima istruzione da eseguire prima di leggere i DATI su cui occorreva eseguirla�I computer moderni sono macchine di Turing universali.
ALCUNI RISULTATI DIMOSTRATI USANDO IL MODELLO DI TURING
�Non tutte le funzioni sono CALCOLABILI�Ovvero: non e’ possibile scrivere un algoritmo per risolvere qualunque problema in modo ESATTO ed in tempo FINITO
�Il PROBLEMA DELL’ARRESTO (HALTING PROBLEM): non e’ possibile dimostrare che una macchina di Turing universale si fermera’ o meno su un programma specifico�Questi risultati valgono per qualunque calcolatore, ammesso che valga la TESI DI CHURCH-TURING(per cui si veda p.es. http://unipa.cblue.org/ia/TesiCTIta.pdf )
DALLA MACCHINA DI TURING AI COMPUTER MODERNI
�La macchina di Turing aiuta a capire come sia possibile manipolare informazione in base a un programma, leggendo e scrivendo due soli simboli: ‘0’e ‘1’
�Da questo punto di vista, pur essendo un dispositivo ideale, la macchina di Turing è strettamente imparentata col computer
PROGRAMMI E DATI�La macchina di Turing ci aiuta a capire la differenza tra programmi e dati.�Programmi:�I programmi: sequenze di istruzioni per l’elaborazione delle informazione�Definiscono quale debba essere il comportamento del processore�Dati:�Distinzione tra dato e informazione:�Dato: sequenza di bit, può essere interpretato in più modi diversi�Informazione: dato + significato del dato
STORIA DEI COMPUTER ELETTRONICI�Ispirati alla macchina di Turing
�1936 Konrad Zuse costruì in casa lo Z1 usando i relè;�1941 c/o politecnico di Berlino Z3;
�1942 macchina per il computo elettronico (Satanasso-Berry-Computer). La memoria erano condensatori fissati ad un grande tamburo cilindrico di 1500 bit;
�1943 COLOSSUS, costruito e rimasto segreto fino al 1970. Memorizzazione di dati in aritmetica binaria basati sulla ionizzazione termica di un gas
SVILUPPO DEI CALCOLATORI ELETTRONICI
�1943-46 ENIAC (Electronic Numerical Integrator and Computer) sviluppato da Eckert & Mauchly�Logica DECIMALE�30 armadi x 3m, 30t per una superficie di 180mq, 300 moltiplicazioni al secondo�fino al 1973 ritenuto il primo calcolatore elettronico ‘programmabile’ (riconnettendo i circuiti!!)
�1945-49 EDVAC (Electronic Discrete Variable Automatic Computer )�Primo computer basato sull’ “Architettura di von Neumann” (dovuta a Eckert, Mauchly & von Neumann): programmi immagazzinati in memoria�Logica BINARIA
ARCHITETTURA ‘DI VON NEUMANN’
Eckert e Mauchly, dopo aver sviluppato ENIAC, proposero un modello in cui i programmi erano immagazzinati direttamente in memoria. (Mentre in ENIAC il programma doveva essere codificato direttamente in hardware). Il modello teorico che ne risulto’ – l’Architettura “di Von Neumann” influenzò direttamente la realizzazione di EDVAC (Electronic Discrete Variable Automatic Computer)
DA ZUSE A EDVAC
DOPO EDVAC
�1948: primo computer commerciale (UNIVAC)�1954: primo computer a transistors (Bell Labs)�~1960: valvole sostituite da transistors�1971: primo microprocessore (Intel 4004)�1975: primo microcomputer (Altair)�1975: fondazione di Microsoft�1976: Apple I e Apple II�1979: primo Spreadsheet (VisiCalc)
PROSSIME LEZIONI
�Architettura di Von Neumann�Rappresentazione dei dati
LETTURE
�Storia dell’Informatica�Wikipedia: http://it.wikipedia.org/wiki/Storia_dell%27informatica�Wikipedia: http://it.wikipedia.org/wiki/Storia_del_computer
�Paul Ceruzzi, Storia dell’Informatica, Apogeo� Macchina di Turing on-line�http://www.warthman.com/ex-turing.htm(solo addizione)�http://ironphoenix.org/tril/tm/