480 likes | 751 Views
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/
E N D
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” (IDU), diviso in due parti consecutive allo stesso orario: Orario: Lun., Giov., Ven. 12-14 Contenuti: elementi di IU-B e -C, più alcune parti nuove • 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 I.U. possono presentarsi all’esame di IDU: • Come non frequentanti, con il vecchio programma di IU-C (3 crediti), con le stesse modalità di esame (vedi sito) • Come frequentanti del nuovo programma, parte I (6 crediti) • Come non frequentanti del nuovo programma (6 crediti)
Web & esercitazioni • Sito web con materiali del corso ed informazioni sull’esame: http://people.lett.unitn.it/zamparelli/ (click su IDU/IU) • Esercitazioni in laboratorio informatico: • Per gli studenti di filosofia: A. Bucchiarone (XML, orario pomeridiano da determinare • Per gli studenti di beni culturali: F.Cavulli: (Data Base e GIS) • Esame: orale con discussione di un progetto informatico (da determinare, vedi sito)
Contenuti • Parte I: • Nozioni di base: struttura fisica e teorica dei computer • Informazione e sua codifica vari livelli • Basi di dati e loro usi in campo umanistico • Linguaggi di marcatura: HTML ed XML • Biblioteche digitali • 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: • 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) • Parte II (inizio: 5 novembre) • Qualsiasi manuale introduttivo sul linguaggio Perl • Note del docente (Marco Baroni)
Credits Slide adattate e modificate da materiali su web di: • Massimo Poesio • Roberta Cuel • Ciotti e Roncaglia • … A tutti, grazie!
email Marco Baroni:marco.baroni@unitn.itRoberto Zamparelli:roberto.zamparelli@unitn.it
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 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 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
Concetti scientifici entrati nell’uso comune • Dalla fisica: • Entropia • Relatività • Principio di indeterminazione • Dall’informatica: • Informazione, codice (e crittografia) • Digitale vs. analogico • 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 Muhammad ibn Mūsa 'l-Khwārizmī che attorno all’825 scrisse un trattato chiamatoKitāb al-djabr wa 'l-muqābala (Libro sulla ricomposizione e sulla riduzione) • AL-KHWARIZMI ALGORISMO ALGORITMO • (ALGEBRA deriva da AL-DJABR)
ALGORITMO • Definizione informale di ALGORITMO: una sequenza FINITA di passi DISCRETI e NON AMBIGUI che porta alla soluzione di un problema
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): • Scomponi M ed N in fattori primi • Estrai i componenti comuni • Questo metodo si’ puo’ solo applicare per numeri piccoli (la scomposizione in fattori primi e’ molto costosa)
MCD: ALGORITMO DI EUCLIDE • I moderni calcolatori non usano l’algoritmo elementare per calcolare il MCD, ma un algoritmo molto piu’ efficiente la cui prima menzione e’ negli Elementi di Euclide, e che divenne noto agli occidentali tramite Al-Khwarizm
Esempio linguistico: inserimento di spazi nella Divina Commedia • Nelmezzodelcammindinostravita • Miritrovaiperunaselvaoscura • chéladirittaviaerasmarrita. • Ahquantoadirqualeraècosadura • 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 delle scelte, rappresentabili come diagrammi di flusso
Diagramma di flusso: spazi in Dante Legenda: i rettangoli = azioni; rombi = test. Il diagramma si inizia da una casella di partenza (qui in verde); si seguono quindi le frecce.Quando si incontra un rombo, si verifica se la condizione è soddisfatta o meno, e si prosegue attraverso la freccia "Si" o quella "No", a seconda dei casi. L'algoritmo termina se arriva in ogni caso ad una posizione terminale (qui "Successo!" o "fallimento"); non termina se entra in un circolo chiuso.
Limiti dell’algoritmo? Nelmezzodelcammindinostravita Miritrovaiinunaselvaoscura …
: Inserimento spazi, 2 “Prendi sempre la parola più lunga possibile”
Spazi in Dante, take 3 "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.” (dettagli del meccanismo di backtracking non rappresentati)
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 • …
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 (HARD DISK) • fare l’input/output dell’informazione elaborata • usando i dispositivi di input/output
CPU INPUT OUTPUT Istruzioni Dati MEMORIA COMPUTAZIONE E MEMORIA IN UN COMPUTER
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 macchina) 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 sul nastro, leggendo e a volte caso modificando il contenuto delle cellette • Una ‘MEMORIA’: • un nastro di lunghezza indefinita, suddiviso in cellette che contengono simboli predefiniti (ad es. ‘0’e ‘1’);
UNA DIMOSTRAZIONE DEL FUNZIONAMENTO DELLA MACCHINA DI TURING • Simulazioni di Macchina di Turing su web: • http://www.warthman.com/ex-turing.htm • http://ironphoenix.org/tril/tm/
PROGRAMMI E DATI • Programmi: • Prossima lezione: i programmi dal punto di visto dell’hardware • 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
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
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
Dalla macchina di Turing alla macchina di von Neumann • Un passo ulteriore, volendoci avvicinare al funzionamento di un vero computer, è costituito dalla MACCHINA DI VON NEUMANN
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 VonNeumann”influenzò direttamente la realizzazione di EDVAC (ElectronicDiscrete Variable Automatic Computer)
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 • http://www.dimi.uniud.it/~cicloinf/mostra/index.html • 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 applets • http://www.warthman.com/ex-turing.htm • http://ironphoenix.org/tril/tm/