DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 1 Marco D. Santambrogio – Ver. aggiornata al 3 Ottobre 2013
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 2 Che cos'è? Una piattaforma? Un portale? No, è il Sistema Operativo del M5S
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 3
4 "Di imparare i fondamenti e i concetti dell'informatica intesa come scienza dell'informazione, e non solo di apprendere l'utilizzo dei suoi strumenti, come il C", ma speravo comunque che ci insegnasse a fare qualche "cazzata", tipo programmare i videogiochi..
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 5 Per aiutarci a capire come sta andando il corso abbiamo creato due form per raccogliere i vostri feedback ad ogni lezione/esercitazione Per aiutarci a capire come sta andando il corso abbiamo creato due form per raccogliere i vostri feedback ad ogni lezione/esercitazione Form per le lezioni Form per le lezionihttp://tinyurl.com/infob1314-feedbacklez Form per le esercitazioni Form per le esercitazionihttp://tinyurl.com/infob1314-feedbackexe
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 6
7
8
9
10
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 11
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 12
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 13
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 14
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 15
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 16
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 17
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 18 Informazione e trattamento dellinformazione Informazione e trattamento dellinformazione Programmabilità del calcolatore e concetti di hardware e software Programmabilità del calcolatore e concetti di hardware e software Macchina di von Neumann Macchina di von Neumann Comunicazione tra esseri umani e calcolatori Comunicazione tra esseri umani e calcolatori
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 19 Significato 1: [informazione = dati + istruzioni] insieme dei dati su cui operare e delle istruzioni con cui elaborare tali dati Significato 1: [informazione = dati + istruzioni] insieme dei dati su cui operare e delle istruzioni con cui elaborare tali dati per esempio, nelloperazione 1+2 sono entità di informazione i numeri 1 e 2 e loperatore + enfasi sulla distinzione tra struttura e descrizione delloperazione che si scriva uno più due o 1+2 linformazione è la stessa Significato 2: [informazione = dati con significato] ciò che si ottiene dai dati a cui è stato attribuito un significato Significato 2: [informazione = dati con significato] ciò che si ottiene dai dati a cui è stato attribuito un significato per esempio, i numeri 1 e 2 sono semplici dati; diventano entità di informazione solo quando si stabilisce che si riferiscono, per esempio, a mele o a portaerei enfasi sulla distinzione tra forma e contenuto
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 20 Molti strumenti sono stati progettati e realizzati per trattare informazione: Molti strumenti sono stati progettati e realizzati per trattare informazione: le matite servono per scrivere (non per trasferire grafite su carta) i violini servono per suonare (non per produrre onde acustiche) A differenza di questi, i calcolatori sono dispositivi programmabili A differenza di questi, i calcolatori sono dispositivi programmabili Ma cosa significa programmabile? Ma cosa significa programmabile?
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 21 La programmabilità di un dispositivo attiene alle modalità con cui esso gestisce informazione La programmabilità di un dispositivo attiene alle modalità con cui esso gestisce informazione Per esempio, per risolvere questo problema, si può: Per esempio, per risolvere questo problema, si può: provare e riprovare (= operare direttamente sul sistema da trasformare) fare i conti a mente (= operare senza un supporto fisico) fare i conti con carta e penna (= operare con supporti passivi) fare i conti con una calcolatrice (= operare con supporti rigidi) oppure …
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 22 Per gestire informazione, si opera su dati mediante istruzioni: supporto materiale mente datiX istruzioniX supporto materiale mente datiX istruzioni: esecuzione X istruzioni: controllo X supporto materiale mente datiX istruzioniX supporto materiale mente datiX Istruzioni: esecuzioneX Istruzioni: controlloX
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 23 Ogni essere umano elabora quotidianamente informazione in grande quantità senza usare strumenti particolarmente sofisticati Ogni essere umano elabora quotidianamente informazione in grande quantità senza usare strumenti particolarmente sofisticati Due situazioni possono rendere difficile questa attività: Due situazioni possono rendere difficile questa attività: quando il problema supera un certo grado di complessità quando è necessario elaborare informazione con particolare rapidità Nel corso della storia, luomo ha creato molti strumenti in grado di supportarlo nellelaborazione dellinformazione: Nel corso della storia, luomo ha creato molti strumenti in grado di supportarlo nellelaborazione dellinformazione: strumenti formali (per es. il sillogismo) che consentono di trattare entità di informazione dotate di una certa struttura, ricavandone delle conclusioni per via puramente elaborativa strumenti materiali (modelli in scala, galleria del vento, …), che materializzando le entità di informazione su cui si opera ne facilitano lelaborazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 24 Blaise Pascal ( ) dispositivo meccanico (ingranaggi azionati da una manovella) per lesecuzione di somme e sottrazioni Blaise Pascal ( ) dispositivo meccanico (ingranaggi azionati da una manovella) per lesecuzione di somme e sottrazioni Gottfried Wilhelm von Leibniz ( ) introduce anche moltiplicazioni e divisioni (calcolatrice a quattro funzioni) Gottfried Wilhelm von Leibniz ( ) introduce anche moltiplicazioni e divisioni (calcolatrice a quattro funzioni) Charles Babbage ( ) progetta e realizza un difference engine Charles Babbage ( ) progetta e realizza un difference engine calcola tabelle di numeri utili per la navigazione unicopolinomiale alle differenze finite unico algoritmo: polinomiale alle differenze finite fori output: fori su una piastra di rame (schede perforate)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Input: dati e istruzioni 3. Output: dati (risultati dellelaborazione) 2. Elaborazione e quindi, il calcolatore si può intendere come una black box: calcolatore Input Output
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 26 Ricevendo una richiesta dallutente, il calcolatore svolge in successione due attività: controlla di essere in grado di interpretare il comando, cioè di riconoscere il comando come corretto e corrispondente a unazione che è in grado di eseguire controlla di essere in grado di interpretare il comando, cioè di riconoscere il comando come corretto e corrispondente a unazione che è in grado di eseguire se il controllo ha dato esito positivo, esegue lazione associata al comando e, quando richiesto, presenta il risultato allutente se il controllo ha dato esito positivo, esegue lazione associata al comando e, quando richiesto, presenta il risultato allutente Invece di inviare al calcolatore un comando per volta, lutente può scegliere di creare una successione di comandi (= programma) e inviarla al calcolatore, che autonomamente è in grado di interpretare ed eseguire il programma stesso, unistruzione per volta
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 27 Lutente-programmatore e il calcolatore devono parlare uno stesso linguaggio Unopzione potrebbe essere di insegnare al calcolatore a comprendere (= interpretare ed eseguire comandi espressi in) una lingua storico-naturale come litaliano o linglese Vantaggi: Vantaggi: lingue semanticamente ricche, e quindi sicuramente in grado di esprimere i comandi lingue già note allutente Svantaggi: Svantaggi: lingue semanticamente ricche, e quindi a rischio di ambiguità lingue complesse da insegnare / imparare
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 28 Comando: nella frase l'informatica, che in inglese è detta 'computer-science', è interessante anche se difficile metti in grassetto la parola X X: è ambiguo: quale delle due è? X: è ambiguo: quale delle due è? X: in decima posizione ambiguo: computer-science conta come una o due parole? X: in decima posizione ambiguo: computer-science conta come una o due parole? Comando: se la condizione A è vera esegui listruzione B e poi esegui listruzione C ambiguo: C deve essere eseguito comunque o solo se A è vera? ambiguo: C deve essere eseguito comunque o solo se A è vera?
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 29 Unopzione alternativa: creare un linguaggio di programmazione, dedicato alla comunicazione con il calcolatore creare un linguaggio di programmazione, dedicato alla comunicazione con il calcolatore Vantaggi: Vantaggi: linguaggio progettato specificamente, e quindi efficiente linguaggio non ambiguo Svantaggi: Svantaggi: linguaggio formalizzato, e quindi strutturalmente diverso dalle lingue storico-naturali linguaggio non noto allutente
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 30 Comando: se la condizione A è vera esegui listruzione B e poi esegui listruzione C ambiguo: C deve essere eseguito comunque o solo se A è vera? ambiguo: C deve essere eseguito comunque o solo se A è vera? Lo stesso comando viene riscritto in un linguaggio di programmazione si disambigua: if(A) { B; } C; if(A) { B; C; } se A è vero esegui B; in ogni caso quindi esegui listruzione C se A è vero esegui sia B sia C
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 31 Sebbene si consideri abitualmente che oggetto del calcolo sono numeri, i calcolatori operano anche su dati non numerici, come testi, immagini, musica… Un problema di elaborazione di dati non numerici è riconducibile a calcolo numerico se per prima cosa i dati vengono codificati nella forma di numeri Per esempio, un testo può essere convertito in una successione di numeri grazie al Codice ASCII: spazio 32; A 65;B 66; …; a 97; b 98; … e quindi: ciao mondo Data questa codifica, un problema come: trasformare una frase scrivendo con liniziale maiuscola tutte le parole che la compongono (per cui ciao mondo dovrebbe diventare Ciao Mondo) è effettivamente un problema di calcolo
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 32 Se il linguaggio di programmazione adottato contiene unistruzione words_uppercase(), il problema si risolve semplicemente: words_uppercase(ciao mondo) Altrimenti, è il programmatore a dover scomporre il problema in sottoproblemi più semplici, per esempio: 1. identifica le parole da cui la frase è costituita 2. per ogni parola, metti il suo primo carattere in maiuscolo Data la successione: la prima istruzione corrisponde a individuare nella successione le sotto-successioni di numeri separate dal numero 32 la prima istruzione corrisponde a individuare nella successione le sotto-successioni di numeri separate dal numero 32 la seconda istruzione corrisponde sottrarre 32 al primo elemento di ogni sotto-successione, la seconda istruzione corrisponde sottrarre 32 al primo elemento di ogni sotto-successione, Una volta codificati numericamente i dati in ingresso, il problema viene dunque risolto mediante semplici istruzioni come se … è uguale a … allora …, somma … a …, e così via
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 33 Non ogni problema ammette una soluzione calcolabile Quali problemi ammettono una soluzione calcolabile? Quali problemi ammettono una soluzione calcolabile? Esistono problemi calcolabili che i calcolatori non sono in grado di risolvere? Esistono problemi calcolabili che i calcolatori non sono in grado di risolvere? Esistono problemi che solo certi calcolatori sono in grado di risolvere? cioè: esistono tipi diversi di calcolatori in relazione alla loro capacità di risolvere problemi? Esistono problemi che solo certi calcolatori sono in grado di risolvere? cioè: esistono tipi diversi di calcolatori in relazione alla loro capacità di risolvere problemi?
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 34 Ipotesi: il calcolo è una trasformazione di dati, in cui loutput è determinato univocamente dallinput attraverso una funzione: f input output = f(input) Per esempio, 1+2*3 e 4+5*6 sono due casi particolari della stessa funzione f(x,y,z)=x+y*z Ipotesi: le funzioni complesse possono essere scomposte come successioni di funzioni più semplici Per esempio: x,y,zx+y*zf* + y z x
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 35 Un sistema di calcolo molto semplice: un nastro organizzato in celle in ognuna delle quali è scritta una barra o nulla e con codifica unaria ( 1 / ; 2 // ; 3 /// ; … un nastro organizzato in celle in ognuna delle quali è scritta una barra o nulla e con codifica unaria ( 1 / ; 2 // ; 3 /// ; … un sistema di lettura e scrittura che opera in base a regole della forma: un sistema di lettura e scrittura che opera in base a regole della forma: se sei nello stato... e nella cella hai letto..., allora nella cella scrivi..., passa nello stato... e spostati nella cella... ///// …… Per esempio, il nastro: codifica i numeri 2 e 3, e il calcolo della funzione x+y si può realizzare in questo modo: ///// …… // / // ……
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 36 Intorno al 1930 linglese Alan Turing e lo statunitense Alonso Church proposero la seguente tesi: ogni funzione naturalmente considerata calcolabile è calcolabile da una macchina di Turing La conseguenza è sorprendente: linsieme delle funzioni calcolabili è lo stesso per tutti i calcolatori; le differenze di capacità tra calcolatori sono: quantitative (= tempo di calcolo) quantitative (= tempo di calcolo) e non qualitative (= tipo di funzioni calcolabili) e non qualitative (= tipo di funzioni calcolabili)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 37 Fonti per lo studio Fonti per lo studio Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill Capitolo 1 Introduzione ai sistemi informatici, D. Sciuto, G. Buonanno, L. Mari, 4a Ed, McGrawHill Capitolo 1 The Art & Craft of Computing, S. Ceri, D. Mandrioli, L. Sbattella, Addison-Wesley Capitolo 1 Approfondimenti Approfondimenti Uomini e computer. Storia delle macchine che hanno cambiato il mondo, D. Casalegno, HOEPLI Credits Credits Prof. G. Buonanno e D. Sciuto, LIUC
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 38
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 39