Fondamenti di Informatica Corso di Laurea in Scienze dell'educazione, 2014-15 Lorenzo Bettini http://www.di.unito.it/~bettini
Informazioni generali Ricevimento studenti su appuntamento Dipartimento di Informatica, Ufficio 9 Via Pessinetto 12 (Fermata Amedeo di Savoia, tram 3-9) Informatica 2
Informazioni generali Lezioni: Lunedì 16:00-18:00, aula 15 PN; Martedì 16:00-18:00, aula 15 PN; Mercoledì 16:00-18:00, aula 15 PN; per tre settimane (18 ore) Avvisi sul sito del corso materiale per il corso: http://www.di.unito.it/~bettini Informatica 3
Cosa faremo Glossario di informatica (incompleto) Introduzione alla programmazione con Scratch Informatica 4
Esame Progetto Scratch Con eventuali modifiche da fare durante l'esame Interrogazione sulla parte del glossario Informatica 5
Glossario (di massima) Concetti di base: Hardware Software Sistema operativo Programmi di base Reti di calcolatori Internet Programmi per l accesso alla rete Informatica 6
Breve Introduzione A.A. 2013-14 Informatica 7
Macchina di Von Neumann John von Neumann (1903-1957) Macchina di Von Neumann: definizione rigorosa e completa del concetto di: elaboratore elettronico programma memorizzato Altri avevano avuto idee simili (Eckert e Mauchly) Von Neumann inquadrò una teoria matematica coerente e sviluppò in una teoria generale delle macchine intelligenti. Informatica 8
Macchina di Von Neumann John von Neumann (1903-1957) Macchina di Von Neumann: definizione rigorosa e completa del concetto di: elaboratore elettronico programma memorizzato Altri avevano avuto idee simili (Eckert e Mauchly) Von Neumann inquadrò una teoria matematica coerente e sviluppò in una teoria generale delle macchine intelligenti. Informatica 9
Architettura di Von Neumann Memoria Hardware Procedimento Software Input 1)... 1)... 2)... 2)... 3)... 3)... 4)... 4)......... 00123 7 8 9 4 5 6 1 2 3 0 Unità di controllo - + / * Unità aritmetica Output Informatica 10
Hardware-Software Componenti Hardware: Componenti interne/esterne del PC; Monitor; Stampante; ecc... Componenti Software: Sistema Operativo (Windows, MacOS, Linux, ); Programmi (Editor di testi, Fogli di calcolo, ); Informatica 11
Rappresentazione dell Informazione A.A. 2013-14 Informatica 12
Rappresentazione dell Informazione Necessità di rappresentare le informazioni in un formato opportuno per il computer Rappresentazioni equivalenti della stessa informazione Funzioni di trasformazione da una rappresentazione ad un'altra Il computer deve capire cosa gli diamo in input Noi dobbiamo capire cosa il computer ci dà in output Informatica 13
Rappresentazione dell Informazione I dati che il calcolatore deve elaborare devono essere rappresentati in modo adeguato: codifica digitale. Le informazioni vengono rappresentate per mezzo di segnali. Nella codifica digitale l elemento base dell informazione è il bit (binary digit). Informatica 14
Il bit Un bit può assumere i valori 0 e 1. La scelta è legata a ragioni tecnologiche; Corrisponde ad es. a passaggio di corrente / assenza di corrente In realtà: -5 volt / +5 volt Informatica 15
Algebra di Bool AND: OR: NOT: Informatica 16
Rappresentazione dei Dati... I dati vengono rappresentati con sequenze di bit, usando una convenzione. Es: 00 -> a 01 -> b 10 -> c Una sequenza di due bit ci permette di rappresentare 4 differenti informazioni. 11 -> d Informatica 17
Codifica dell Informazione È il processo che fa corrispondere ad un informazione una configurazione di cifre binarie L associazione tra un informazione ed una configurazione di bit è solo una convenzione Ma deve essere la stessa tra tutti coloro che devono condividere l informazione! Informatica 18
Con 3 bit 000 001 010 Si hanno 8 configurazioni possibili 011 100 101 110 111 Informatica 19
Generalizzando Con 1 bit si codificano 2=2 1 info Con 2 bit si codificano 4=2 2 info Con 3 bit si codificano 8=2 3 info Con n bit si codificano 2 n info Per rappresentare M informazioni sono necessari almeno N bit, dove N è tale che 2 N M Informatica 20
Byte 8 bit = 1 byte È l unità di base per la memorizzazione fisica delle informazioni Raggruppamento a 4 1110 1100 bit più significativo bit meno significativo Informatica 21
Codifica dei caratteri ASCII (American Standard Code for Information Interchange): Informatica 22
Codice ASCII Utilizza 7 bit per codificare i simboli (128 simboli) In realtà sono memorizzati 8 bit (l ottavo è 0) ASCII esteso: usa anche l ottavo e codifica simboli speciali di vari alfabeti (lettere accentate, lettere greche ) Non standard: i simboli in più possono avere codifiche differenti nei sistemi operativi e nei programmi o in paesi differenti Inserire caratteri tramite codice: Alt + codice (digitato sul tastierino numerico) Informatica 23
Codifica di una parola Come sequenza di codifiche ASCII: La parola cane sarà 01100011 01100001 01101110 01100101 Viceversa data una sequenza di bit la scomponiamo in gruppi di byte e si determina il carattere che corrisponde ad ogni gruppo di 8 bit Informatica 24
Codifica universale UNICODE: un nuovo codice che utilizza 16 bit (65536 configurazioni) Compatibile con quello ASCII (le prime configurazioni coincidono) Al momento codifica i simboli di quasi tutti gli alfabeti moderni (circa 35000 simboli) Informatica 25
Rappresentare i numeri... Rappresentare i numeri come sequenze di caratteri: 234 -> 00110010 00110011 00110100 Ma adesso come possiamo eseguire le operazioni aritmetiche?! Informatica 26
Flashback Caratteristiche del sistema di numerazione a base decimale Numerale: rappresentazione di un numero in un sistema di numerazione Numero: l entità astratta indipendentemente dalla rappresentazione Il numerale 15 (cifra 1 seguita dalla cifra 5 ) denota nel sistema decimale il numero 15, interpretato nel seguente modo: 1 decina + 5 unità Informatica 27
In base 10 Il numerale c n c n-1 c 1 c 0 (in cui 0 c i 9) in base 10 denota il numero c n *10 n + c n-1 *10 n-1 + + c 1 *10 1 + c 0 *10 0 Esempio: 234 = 2*10 2 + 3*10 1 + 4*10 0 = 200+30+4 Cioè 2 centinaia + 3 decine + 4 unità Informatica 28
Notazione posizionale Il numerale c n c n-1 c 1 c 0 (in cui 0 c i b-1) in base b denota il numero c n *b n + c n-1 *b n-1 + + c 1 *b 1 + c 0 *b 0 Con N cifre è possibile rappresentare numeri: da 0 a b N -1 La posizione della cifra è cruciale. Non avviene ad es. nella numerazione romana Informatica 29
Rappresentazione binaria Le cifre sono solo 0 ed 1 (infatti siamo in base 2) Notazione più compatta per rappresentare I numeri di quella con codifica ASCII È facile eseguire operazioni aritmetiche su questa rappresentazione Informatica 30
Rappresentazione binaria Riprendiamo la formula generale c n *b n + c n-1 *b n-1 + + c 1 *b 1 + c 0 *b 0 In questo caso b è 2 Esempio, numerale 1011 1*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 8 + 0 + 2 + 1 = 11 (base 10) Si scrive 1011 2 = 11 10 Informatica 31
La rappresentazione in base b I numerali in base b contengono solo cifre da 0 a b-1; Se b>10 si usano le prime lettere dell alfabeto (infatti 10 non è una cifra ma due); Es. 100011-> numerale binario (base 2) 988909 -> numerale decimale (base 10) FA87F1 -> numerale esadecimale (base 16) Base 16: 816 = 8 10, 9 16 = 9 10, A 16 = 10 10, B 16 = 11 10, C 16 = 12 10, D 16 = 13 10, E 16 = 14 10, F 16 = 15 10, Informatica 32
Cambio di base (da b a 10) Per cambiare di base si utilizza la seguente formula matematica: c n *b n + c n-1 *b n-1 + + c 1 *b 1 + c 0 *b 0 Es: 100011-> 35 FA87F1 -> 16418801 (A=10,B=11,...) Informatica 33
Cambio di base (da 10 a b) Per ottenere la rappresentazione in base b del numero decimale n: La codifica di 0 in base b è 0; Sia n/b = n con resto r; Sia n b la codifica in base b di n ; La codifica in base b di n sarà: n b r; Si veda l'esempio successivo Informatica 34
Esempio risultato 345/2 172 1 172/2 86 0 86/2 43 0 43/2 21 1 21/2 10 1 10/2 5 0 5/2 2 1 resto bit meno significativo 2/2 1 0 1/2 0 1 bit più significativo 345 10 = 101011001 2 Informatica 35
Tutto dipende dalla base Informatica 36
Somme binarie... Stessa regola del decimale (si mantiene la posizionalità): Es: 0+0 = 0 con riporto di 0 0+1=1+0=1 con riporto di 0 1+1=0 con riporto di 1 Overflow Informatica 37
Con codifica ASCII Si perderebbe la posizionalità: 00110011 (codifica di 3) + 00111000 (codifica di 8) = 01101011 (codifica di k) E si otterrebbe un risultato senza senso Informatica 38
Le immagini... Vengono rappresentate come griglie di sequenze di bit. Ogni sequenza identifica La tonalità di grigio Il colore Devono subire un procedimento di digitalizzazione/discretizzazione Informatica 39
Esempio... Informatica 40
Qualità dell immagine... Nelle immagini a colori ogni quadratino, detto pixel, (picture element) costituisce la codifica del colore; Le dimensioni di un immagine vengono determinate dal numero di pixel Maggiore è il numero dei pixel maggiore è la risoluzione Migliore sarà la qualità dell'immagine digitalizzata Informatica 41
Colori come numeri... Ogni colore viene scomposto in componenti: Rosso; Verde (Green); Blu. Per distinguere 256 colori sono necessari 8 bit per la codifica di ciascun pixel Un immagine 640*480 richiederebbe 307200 byte Di solito si utilizzano tecniche di compressione Informatica 42
Risoluzione... I pixel vengono utilizzati per identificare la risoluzione: nei monitor (1024*768, 640*480,...); negli schermi degli smartphone; nelle macchine fotografiche digitali; negli scanner. Informatica 43
Compressioni grafiche BMP (nessuna compressione) Buona fedeltà Grosso spazio GIF (compressione senza perdita di informazione) Codifica solo 256 colori PNG (evoluzione del GIF, 24 bit) JPEG (compressione con perdita) Ottimo compromesso Informatica 44
I Suoni... Un segnale analogico viene convertito in sequenze di segnali digitali: Informatica 45
I Suoni... Un segnale analogico viene convertito in sequenze di segnali digitali: Informatica 46
Rappresentazione analogica Descrive esattamente l analogo della quantità fisica in esame Fornisce una descrizione continua dell onda sonora Le rappresentazioni analogiche non sono adatte al mondo dell informatica: L aritmetica dei calcolatori è finita Non è possibile trattare con informazioni di tipo continuo Informatica 47
Approssimazione digitale Fornire un approssimazione digitale (discreta) che possa essere memorizzata e trattata da un elaboratore Si effettuano dei campionamenti sull onda Tanto più è la frequenza di campionamento Tanto più precisa è la sua digitalizzazione Tanto più spazio è richiesto per la memorizzazione Scegliere un campionamento che non permetta all orecchio umano di percepire la differenza con l originale e che richieda poco spazio per la memorizzazione Informatica 48
Formati sonori WAV: fedeltà come CD, una canzone circa 30Mb MP3: formato compresso Una canzone circa 3Mb Differenza molto poco percepibile MIDI (Music Instrument Digital Interface): Rappresentazione testuale di una canzone Ci vuole un interprete per riprodurre i suoni Non può memorizzare dei suoni reali Informatica 49
I diversi formati... Immagini e suoni vengono memorizzati utilizzando differenti formati allo scopo di: Diminuire le dimensioni; Mantenere una qualità accettabile ; Informatica 50
Archivi di dati Rappresentazione di informazioni più complesse Informazioni strutturate: composte a partire dalle informazioni elementari Facilità di aggiornamento e recupero delle informazioni memorizzate Informatica 51
Archiviare dati Esempio: una banca Nome Indirizzo Numero di conto Disponibilità sul conto Raggruppare i dati di ogni singolo cliente Le informazioni che riguardano un cliente devono poter essere viste come un unico blocco logico Informatica 52
File (archivio) Un file è costituito da un elenco di record Un record è costituito da un insieme di campi (logicamente correlati fra loro) Un campo è un insieme di byte: Informazione numerica Informazione alfanumerica Immagine, suono, video Informatica 53
Tipi di file Strutturati (data base): sequenza di record Record a lunghezza costante Record a lunghezza variabile Di testo: l informazione è semplicemente una sequenza di caratteri (record=carattere) Informatica 54
Tipi di accesso Accesso sequenziale (possibile con qualsiasi tipo di file) Accesso diretto (si deve conoscere l indirizzo di un record all interno del file) Accesso con chiave (un file a parte, detto indice, tiene memorizzata la relazione fra chiave di un record ed il suo indirizzo) Informatica 55