FONDAMENTI DI INFORMATICA
Prof. Salvatore Tucci
Obiettivi: Lo scopo del corso è lo studio dei concetti fondamentali dell'informatica. La presentazione degil argomenti, per certi aspetti necessariamente tecnica, non trascurerà i problemi lergati all'influenza che la disciplina e le tecnologie connesse (reti di comunicazione) hanno sulla società. Sarà esaminato in particolare il mutamento indotto nel mondo del lavoro dall'emergere delle nuove professioni che da un lato offrono prospettive di impiego, dall'altro producono fratture sempre più profonde. Alla fine del corso si richiede che lo studente abbia compreso gli aspetti formali, anche se elementari, dell'informatica e acquisito le conoscenze che consentono di utilizzare gli strumenti dell'automazione dell'ufficio.
Parte I: I fondamenti.
1. Introduzione all'informatica
1.1 Il Calcolo: Algoritmi e macchine calcolatrici: si affrontano i concetti elementari di calcolo come procedimento per l'esecuzione di operazioni complesse e ripetitive; esigenza di macchine di supporto al calcolo tra cui le calcolatrici; nozione di algoritmo ed esempi.
1.2 Storia del calcolo e dei calcolatori: i primi prototipi di calcolatore (fino a Leibnitz e Jacquard); i primi calcolatori (da Babbage in poi); la nozione di algoritmo (da La Khuwarizmi a Turing); affermazione della teoria degli algoritmi (da ENIAC fino ad oggi); sintesi dei livelli di evoluzione tecnologica (hw e sw) raggiunta.
1.3 Il ruolo del calcolatore: influenza sul lavoro e Problemi sociali; nuove (e vecchie) professionalità; la società dell'informazione.
2. L'architettura dei Sistemi di Elaborazione. Cenno al calcolatore (reale) visto come macchina a livelli di astrazione.
2.1 Il livello hardware: il modello Von Neumann, Unità centrale di elaborazione, Memoria centrale; dispositivi di input/output, dispositivi secondari per la memorizzazione delle informazioni.
2.2 Il livello macchina virutale: il Sistema Operativo e sue funzioni, Il file-system.
3. La definizione degli algoritmi.
3.1 Algoritmi e programmi: paradigma di Wirth per la nozione di programma; la nozione di tipo di dato (primitivo/derivato, alfanumerico/logico).
3.2 Linguaggi di programmazione: strutture sintattiche di un linguaggio di programmazione;
strutture dati fondamentali, Iterazione e ricorsione, Input/Output.
3.3 Esempi di algoritmi: classificazione orientata a problemi; algoritmi numerici, di ricerca (binaria con chiave), ordinamento, su grafo (cammini minimi e chiusura transitiva). [esposizione su pseudo-codici]; esempi (organizzati in corrispondenza) di programmi realizzati in un ambiente integrato.
4. Aspetto logico-linguistici.
4.1 Linguaggi formali: grammatiche formali e Classificazione di Chomsky; equivalenza con problemi di decisione della teoria degli automi.
4.2 Programmazione logica: paradigma Dichiarativo vs Imperativo; calcolo Proposizionale e regola di risoluzione; struttura dei programmi PROLOG: automi, clausole, obiettivi; esempi di programmi logici; problemi: negazione, indecidibilità, efficienza.
4.3 Linguaggio naturale: esigenza di Interfacce in linguaggio naturale; strumenti per l'analisi morfologica- lessicale dei testi; modelli logici di Linguaggio naturale (Manca).
4.4 Linguaggi di gestione dei dati: motivazioni (grandi quantità di dati, relazione con il PROLOG); gerarchie di modelli per i dati (concettuali, logici); il modello relazionale.
Parte II: Applicazioni
5. L'interfaccia con le applicazioni.
5.1 Interfaccia Testuale: descrizione del sistema operativo MS/DO, comandi, tipi di files.
5.2 Interfaccia Grafica: organizzazione scrivania con finestre; operazioni del mouse; gli elementi della finestra; tipi di icone; operazioni con import/export di oggetti.
6. Le applicazioni per l'autoamzione dell'ufficio.
6.1 Word processing: funzioni del WP, descrizione dell'interfaccia, integrazione con altre applicazioni; il linguaggio Postscript; esempi con Word e Tex.
6.2 Data Base: funzioni di creazione e gestione di archivi; lo sviluppo delle applicazioni; l'analisi e la presentazione dei dati: fogli elettronici; esempi con DBASE e EXCEL.
6.3. Ipertesti e Multimedia: origini e definizione dei concetti di ipertesto e multimedia; struttura degli ipertesti: link, navigazione; gestione multimediale di immagini e suoni; vantaggi /svantaggi e rassegna dei principali tools; esempi con Hypercard/Toolbook.
7. Le applicazioni "fuori dall'ufficio".
7.1 Le reti di calcolatori: motivazioni per le reti (esigenza di sistemi distribuiti, eterogeneità HW, comunicazione, telelavoro); classificazione architetturale (LAN, WAN, etc.); preliminari tecnologici (modem, protocolli, velocità di trasmissione); evoluzione della quantità e tipo di dato trasmessa (messagistica, programmi, file immagini e sonori).
7.2 L'utilizzo delle reti di calcolatori: accesso remoto, condivisione di risorse (documenti); posta elettronica, gruppi di discussione; strumenti base di ricerca: navigazione tra documenti e interrogazione di indici; l'uso di ipertesti per la navigazione.
7.3 Strumenti di ricerca dell'informazione: il problema dell'Information retrieval; esempio di Database per la gestione delle biblioteche; strumenti avanzati di ricerca su Internet, strumenti automatici di interrogazione; biblioteche elettroniche (esempi Library of Congress, Technical Reports, BibTex).
Non è prevista propedeuticità, mentre è vivamente richiesta la frequenza al corso.
Le dispense saranno distribuite durante l'anno.