250 likes | 473 Views
Introduzione al Corso Prof. Michele Amoretti Fondamenti di Informatica a.a. 2008/2009. Crediti Il corso offre 5 crediti (44 ore) Lezioni (36 ore) Esercitazioni in laboratorio (8 ore) La prova d’esame è scritta, dura circa 2 ore e consiste di alcune
E N D
Introduzione al Corso Prof. Michele Amoretti Fondamenti di Informatica a.a. 2008/2009
Crediti Il corso offre 5 crediti (44 ore) • Lezioni (36 ore) • Esercitazioni in laboratorio (8 ore) La prova d’esame è scritta, dura circa 2 ore e consiste di alcune domande a risposta aperta sugli argomenti del corso.
Orario lezioni ed esami Lezioni: • Giovedì 8:30 - 10:30 • Venerdì 8:30 - 10:30 (in novembre: laboratorio) Per le esercitazioni in laboratorio verranno fatti due gruppi che si alterneranno, una settimana per ciascuno. Esami: da definire.
Organizzazione del corso Teoria: • Rappresentazione dell’informazione • Modelli per l’informatica • Algoritmi e strutture dati • Programmazione • Linguaggio Java • Ingegneria del software • Funzionamento dei calcolatori elettronici • Introduzione ai sistemi operativi • Reti di calcolatori e Internet Laboratorio: • Realizzazione di semplici programmi Java con l’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. Probabile Tutore: Dott. Ing. Maria Chiara Laghi (laghi@ce.unipr.it)
Materiale didattico Le diapositive presentate a lezione saranno disponibili su Internet: http://dsg.ce.unipr.it/People/amoretti/FI/corso0809.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 perso • Iscrizioni tramite il servizio elettronico di facoltà (GOAL) 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
Informazione Che cosa è l'informazione? SINTASSI SEMANTICA PRAGMATICA
Informazione L'informazione è ciò che, per un osservatore o un recettore posto in una situazione in cui si hanno almeno due occorrenze possibili, supera un'incertezza e risolve un'alternativa, cioè sostituisce il noto all'ignoto, il certo all'incerto. In altre parole, essa riguarda il contesto in cui i dati sono raccolti, la loro codifica in forma intellegibile ed in definitiva il significato attribuito a tali dati. In una comunicazione, l’informazione è scambiata per mezzo di messaggi. La quantità di informazione di un messaggio è tanto più grande quante più sono le alternative che esso esclude.
Informazione • La teoria dell’informazione è • una teoria matematica dell’aspetto simbolico dell’informazione • un approccio quantitativo alla nozione di informazione • Risponde alle domande: • Come immagazzinare e trasmettere informazione in modo compatto? (compressione) • Qual’è la massima quantità di informazione che può essere trasmessa su un canale? (velocità di trasmissione) • Come posso proteggere la mia informazione: • dalla corruzione del suo supporto o da errori di trasmissione? • da sguardi indiscreti?
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 considerare l’informazione come qualcosa che aiuta a rispondere a una domanda. - Qual è la soluzione di una equazione? - 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 sequenze 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 • Es. cifra di controllo nel codice International Standard Book Number (ISBN) • La cifra di controllo si calcola dalle altre dodici cifre con il seguente • algoritmo numerico: • Ciascuna cifra, da sinistra a destra, viene moltiplicata per 1 o per 3 alternativamente • I prodotti vengono sommati modulo 10 per avere un valore compreso tra 0 e 9 • Sottratto da 10, quest’ultimo dà un risultato compreso tra 1 e 10 • Se il risultato è 10, lo si sostituisce con 0; in ogni caso alla fine resta una sola cifra
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 meccanismi 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 - output) a partire da quella a nostra disposizione (dati di ingresso - input). 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.