Fondamenti di Informatica Introduzione al Corso Prof. Michele Amoretti Fondamenti di Informatica a.a. 2007/2008
Crediti Il corso offre 5 crediti (44 ore) Lezioni (36 ore) Esercitazioni in laboratorio (8 ore) La prova d’esame è scritta, dura 2 ore e consiste di alcune domande a risposta aperta sugli argomenti del corso.
Orario lezioni ed esami Giovedì 8:30 - 10:30 Venerdì 8:30 - 10:30 (laboratorio) In novembre verranno fatti due gruppi che si alterneranno settimanalmente in laboratorio. Il gruppo che “riposa” potrà accedere comunque alle aule di informatica, di martedì dalle 16:30 alle 18:30. Esami: da definire.
Organizzazione del corso Teoria: Modelli per l’informatica Algoritmi e strutture dati Programmi e linguaggi di programmazione Ingegneria del software Rappresentazione dell’informazione Struttura dei calcolatori elettronici Introduzione ai sistemi operativi Reti di calcolatori e Internet Laboratorio: Linguaggio di programmazione Java Realizzazione di semplici programmi Java nell’ambiente di sviluppo Eclipse
Contatti Docente: Prof. Michele Amoretti E-mail: michele.amoretti@unipr.it Telefono ufficio: 0521 906147 Orario di ricevimento: mercoledì 10:30-12:30 L’ufficio è nella Sede Scientifica di Ingegneria, Palazzina 1. Esercitatori: Dott. Ing. Maria Chiara Laghi (laghi@ce.unipr.it) Dott. Ing. Matteo Agosti (agosti@ce.unipr.it)
Materiale didattico Le diapositive presentate a lezione saranno disponibili su Internet all’indirizzo: http://dsg.ce.unipr.it/People/amoretti/FI/corso.html Testi consigliati: G. M. Schneider, J. L. Gersting, “Informatica”, Ed. Apogeo, 2007. C. S. Horstmann, “Concetti di informatica e fondamenti di Java”, nuova edizione per le versioni 5 e 6, Ed. Apogeo, 2007. Testi di approfondimento: C.Batini, L.C.Aiello, M.Lenzerini, A.Marchetti Spaccamela, A.Miola "Fondamenti di Programmazione dei Calcolatori Elettronici", Ed. Franco Angeli, 1994. C. Ghezzi, D. Mandrioli, “Informatica Teorica”, Ed. CittàStudi, 1989. C. S. Horstmann, “Progettazione del software e design pattern in Java”, Ed. Apogeo, 2004.
Modalità d’esame Una prova scritta I risultati saranno disponibili sul sito Web del corso Se ci si ripresenta dopo aver ottenuto un voto sufficiente, il voto precedente viene cancellato Iscrizioni tramite il servizio elettronico di facoltà L'esame contiene domande su: Argomenti delle lezioni teoriche Java (commentare un programma, trovare errori in un programma, oppure trasformare un programma in un equivalente diagramma di flusso o viceversa)
Le parole chiave del corso Informazione Informatica Sistema di elaborazione Algoritmo Programma
Rilevanza pratica dell’informazione (effetto, scopo, ecc.) L'informazione è un concetto astratto, che viene comunemente identificato con il significato di un messaggio. Il messaggio tuttavia ha il solo compito di convogliare e rappresentare l'informazione. La quantità di informazione di un messaggio è tanto più grande quante più sono le alternative che esso esclude. informazione significato apparato simbolico Rilevanza pratica dell’informazione (effetto, scopo, ecc.)
Informazione La teoria dell’informazione è nata come disciplina scientifica nel 1948, grazie agli studi di Claude Shannon. La prima grande intuizione di Shannon fu quella di pensare all’informazione come a qualcosa che aiuta a rispondere a una domanda. - Qual è la soluzione di una equazione differenziale? - Qual è la capitale del Burkina Faso? - Quali sono le particelle che compongono l’atomo? … A una domanda di tipo sì/no (vero/falso) si può sempre rispondere con un singolo simbolo che può assumere uno tra due valori possibili (0 e 1). Tale simbolo è una cifra binaria (binary digit), o bit.
Informazione Il bit è l’unità fondamentale dell’informazione. Alla domanda: “Quale delle due strade possibili percorreranno le truppe degli invasori?” la risposta sarà un messaggio codificato nella forma concordata tra assediati e informatori. Ma anche se i mezzi di comunicazione possibili sono diversi, l’informazione contenuta nel messaggio è la stessa. Qualunque sia la sua forma, il messaggio porta un bit di informazione, che consente agli assediati di distinguere tra le due possibilità.
Informazione E per domande più complesse? “Quale dei quattro mezzi di trasporto possibili utilizzerai?” Con quattro possibilità, un solo bit di informazione non basta a rispondere in maniera esauriente alla domanda. Per distinguere tra quattro scenari ci vogliono due bit di informazione. Per quanto possa essere complicata una domanda, potete rispondere con una serie di bit. Shannon si rese conto che a una domanda con N possibili risposte diverse è possibile rispondere con una sequenza di log2N bit.
Informazione Il linguaggio scritto non è altro che una sequenza di simboli, e i simboli possono essere scritti come sequenza di bit. Quindi, qualsiasi domanda finita che ammetta una risposta esprimibile per iscritto in un certo linguaggio può venir codificata in una sequenza di 1 e 0. E qualsiasi risposta finita può essere espressa mediante una sequenza di 1 e 0. La misura dell’informazione in un messaggio è data dal numero di bit necessari per trasferirlo da un mittente a un destinatario. Un libro medio può contenere circa due milioni di bit di informazione, pari allo 0,25% della capacità di un CD, e allo 0,04% di quella di un DVD.
Informazione Attenzione però! Ogni cifra di una sequenza binaria può trasportare, almeno potenzialmente, un bit di informazione. Tuttavia non è sempre così. Es. la sequenza di 1000 bit “11111111..” non contiene molta informazione. Basterebbe un bit per rappresentarla (conoscendone a priori la lunghezza). Se le sequenze sono prevedibili, sono comprimibili. Comprimere significa eliminare la ridondanza, tenendo solo la parte significativa, cioè l’informazione. A volte però si aggiunge un po’ di ridondanza ai messaggi, per individuare e correggere eventuali errori commessi in fase di trasmissione (es. carattere di controllo nel codice ISBN).
Informazione L’informazione contenuta in un messaggio (enunciato, immagine, filmato, ecc.) è ciò che rimane dopo che è stata eliminata ogni ridondanza. La ridondanza è un meccanismo di sicurezza: garantisce che una informazione venga ricevuta anche se il messaggio è stato leggermente danneggiato nel corso di una trasmissione. Tutte le lingue sono dotate di simili reti di sicurezza, fatte di schemi, strutture e insiemi di regole che le rendono ridondanti. Di solito non siamo consapevoli di queste regole, ma il nostro cervello le impara in modo automatico, e le usa per controllare la validità di tutti i messaggi ricevuti.
Informazione Uno dei successi maggiori della teoria dell’informazione di Shannon è l’aver dato una definizione formale della ridondanza e l’aver capito esattamente quanta informazione può essere trasportata da una sequenza di simboli – ridondante o meno. Tutto ciò è diventato il teorema di Shannon-Hartley sulla capacità di un canale di comunicazione, inizialmente concepito per aiutare gli ingegneri dei laboratori Bell a valutare quante chiamate potessero coesistere su una stessa linea telefonica, e poi utilizzato per innumerevoli altre applicazioni. C è la capacità del canale in bit al secondo, dopo l’applicazione della correzione d’errore. BW è la banda del canale (in hertz). S/N è il rapporto segnale/rumore (S e N sono potenze, espresse in Watt).
Informatica L'informatica (computer science, in inglese) è la scienza che tratta l’elaborazione automatica dell'informazione, in ogni suo aspetto. L’informatica quindi si occupa degli elaboratori elettronici, o più in generale dei sistemi di elaborazione, dal punto di vista architetturale e applicativo.
Hardware Nell'informatica pionieristica degli anni cinquanta il termine inglese hardware, letteralmente "ferramenta", ben si prestava a indicare le macchine utilizzate. Anche con la sostituzione delle valvole termoioniche in favore dei transistor e poi dei primi circuiti integrati MOS, tali macchine erano composte da telai e pannelli metallici robusti tutti rigorosamente assemblati mediante bullonature vistose, per contenere i preziosissimi e delicatissimi circuiti elettronici che erano il cuore degli elaboratori e delle prime periferiche di base.
Software Oggi, quando risulta difficile ritenere ferramenta un mouse o una webcam, il termine hardware è rimasto più che altro per distinguere tutto ciò che è macchina, strumento da tutto ciò che è intelligenza (il software) per far funzionare la macchina o lo strumento. E’ importante distinguere tra software di sistema, che serve a far funzionare le varie parti del sistema di elaborazione; software applicativo, che fornisce un servizio alle persone che lo utilizzano.
Algoritmo Per risolvere problemi che richiedono la ricerca e/o manipolazione di informazione, è necessario individuare un metodo risolutivo, cioè un insieme di operazioni che, eseguite ordinatamente, ci permettono di ricavare la informazione cercata (risultati, o dati di uscita - input) a partire da quella a nostra disposizione (dati di ingresso - output). Tale metodo risolutivo è detto algoritmo. Esistono problemi per i quali non è possibile trovare un metodo risolutivo che ci permetta di automatizzarne la soluzione. Esiste anche un’altra classe di problemi che, pur ammettendo metodi risolutivi, non ne hanno nessuno che, in casi significativi, sia eseguibile in tempo ragionevole.
Programma Per automatizzare la risoluzione di un problema, è necessario fare un passo in più, che consiste nel rappresentare le informazioni ed il metodo risolutivo in un linguaggio comprensibile dallo strumento di calcolo. Perciò, progettare algoritmi e descriverli in un linguaggio di programmazione per mezzo di sequenze di istruzioni del linguaggio (programmi) è una attività che richiede: la conoscenza delle tecnologie che permettono di automatizzare procedimenti risolutivi di problemi (i linguaggi ma non solo) la conoscenza delle metodologie che permettono di usare efficacemente tali tecnologie
Sistemi informatici moderni A parte il classico personal computer o il server di rete, pensiamo ad esempio al telefono cellulare, alla fotocamera digitale, alla console, al cruscotto auto con il navigatore satellitare, ecc. Sono tutti sistemi informatici, che forniscono servizi specifici. Pensiamo ad un aereo moderno: al suo interno possiamo trovare non uno, ma molti sistemi informatici, ciascuno con un preciso compito. Internet nel suo insieme è un sistema informatico, formato a sua volta da una rete di sistemi informatici che lavorano per un'obiettivo comune: permettere lo scambio di informazioni tra utenti situati in qualsiasi parte del globo.