Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

79
Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007

Transcript of Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Page 1: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Pre-corso di Informatica

Facoltà di Scienze MM.FF.NN.a.a. 2006/2007

Page 2: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Che cos’è l’Informatica?

In Italiano: informazione + automaticaIn Inglese: computer science

Quindi:Studia i modi per automatizzare

l’elaborazione dell’informazioneLo strumento primario per raggiungere

questo scopo è il computerÈ una scienza, quindi adotta un approccio

sistematico e formale

Page 3: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Concetti chiave

Informazione: oggetto primario dell’informatica

Elaborazione:OrganizzazioneArchiviazioneRicercaCalcoloInterpretazioneComunicazione

Algoritmo: procedimento usato dal computer per elaborare l’informazione

In Italiano/Inglese si dice calcolatore/computer

In Francese si dice ordinateur

Ciascuno di questi termini sottolinea un aspetto particolare delle operazioni di elaborazione che si possono svolgere

Page 4: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il concetto di Informazione

Informazione è qualunque cosa che possa essere ComunicataCapitaInterpretata e assimilata

A questa idea corrispondono tre livelli di definizione dell’informazione: livello sintattico livello semantico livello cognitivo

Page 5: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il concetto di Informazione

Livello sintattico:L’informazione per essere comunicata ha

bisogno di:Un linguaggio con cui esprimerla

Esempi: l’italiano, il linguaggio dei segni, il linguaggio matematico, …

Un messaggio (espresso in tale linguaggio) che la codifica

Esempio: un frase in ItalianoPer comunicare un schedina del totocalcio mi basta

un linguaggio di tre simboli 12X e un messaggio è una sequenza di tredici simboli

Page 6: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il concetto di Informazione

Esempio: il numero dieci In Italiano: dieci In Inglese: ten In notazione decimale: 10 In numeri romani: X In notazione binaria: 1010 In notazione ottale: 12 In notazione esadecimale: A

Tutti questi messaggi esprimono il numero dieci, ciascuno in un linguaggio diverso, ma nessuno è il numero dieci

Page 7: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il concetto di Informazione

Livello semantico:Definisce ciò che è rappresentato in un messaggio Nell’esempio precedente: il numero dieci (dal punto

di vista concettuale) Il livello semantico riguarda concetti e quindi

prevede un agente in grado di capire il significato veicolato dal messaggio

L’interpretazione semantica di un messaggio prevede che il messaggio sia scritto secondo una sintassi nota Se scrivo X, l’interpretazione cambia secondo che mi

stia esprimendo in italiano, in numeri romani o nel linguaggio del totocalcio

Page 8: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il concetto di Informazione

In prima approssimazione, i computer sono macchine completamente stupide

Non sono in grado di capire nessun concetto, ma solo di manipolare simboli (di un determinato linguaggio):Spostare simboliConfrontare simboliCombinare simboli

In questo senso, il computer opera sempre a livello puramente sintattico

Page 9: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il concetto di Informazione

I programmi (che sono scritti da umani per svolgere compiti specifici) fanno sì che il computer manipoli l’informazione a livello sintattico in modo coerente con il livello semantico che a questa informazione è associato (dagli umani, che lo capiscono)

Il complesso computer/programma diventa un po’ meno stupido: se il programma è scritto correttamente, è in grado di veicolare messaggi che sono coerenti con la semantica ad essi attribuita (sempre dagli umani)

Page 10: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il concetto di Informazione

Esempio:Se uso un motore di ricerca su Internet e

digito “Università di Genova”, il programma che gestisce il motore non ha idea di cosa sia l’università e del fatto che Genova sia una città, ma mi restituirà comunque i documenti che trova che contengono la frase “Università di Genova”, che sono esattamente quel che voglio ottenere.

Page 11: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il concetto di Informazione

Livello cognitivo:Rigurda la conoscenza veicolata dal

messaggio e segue il livello semanticoPrevede l’integrazione

dell’informazione data dal messaggio nel contesto della conoscenza propria di chi lo riceve

Implica cioè l’idea di imparare qualcosa di nuovo dai messaggi ricevuti

Page 12: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il concetto di Informazione

Il livello cognitivo è proprio degli esseri intelligenti

Il trattamento automatico dell’informazione a questo livello viene studiato in alcune aree interdisciplinari che coinvolgono l’informatica: Intelligenza artificiale Estrazione dell’informazione (information retrieval) Apprendimento automatico (machine learning)

Con i prodotti di queste discipline i computer possono effettuare un trattamento dell’informazione a livello cognitivo (possono “imparare”) anche se restano ancora lontani dall’essere “intelligenti”

Page 13: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il concetto di Informazione

Riassumendo: Il computer è una macchina che sa manipolare

sintatticamente simboli in un linguaggio proprio e lo sa fare in modo molto efficiente

Ci occuperemo di rappresentazione e manipolazione dell’informazione a livello sintattico (quel che fanno i computer)

Vedremo i programmi (algoritmi) come strumenti per istruire il computer a manipolare l’informazione sintatticamente in modo consistente con il livello semantico

Rendere i computer in grado di “capire” e “imparare” è molto complicato e la scienza sta solo muovendo i primi passi in questa direzone

Page 14: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il concetto di Algoritmo

Un algoritmo è un procedimento formale per ottenere la soluzione di un problema.

I problemi possono essere di qualunque natura: Calcolare la traiettoria per mandare in orbita un razzo Archiviare le fatture di un’azienda Far funzionare il vostro videogioco preferito Permettervi di scrivere una lettera Spedire un’email ……

Ciascun algoritmo risolve un problema specifico e deve funzionare su qualunque istanza di tale problema.

Page 15: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il concetto di Algoritmo

Un algoritmo consta di una sequenza di istruzioni che spiegano come affrontare il problema in dipendenza dei dati

I dati sono informazioni che definiscono l’istanza del problema e che saranno manipolate dall’algoritmo

Cambiando i dati possono cambiare le azioni che l’algoritmo prevede, ma tutto resta consistente con l’idea generale di risolvere quel problema specifico

Per essere eseguito un algoritmo deve essere codificato in un programma, che traduce le istruzioni in un linguaggio comprensibile al computer

Page 16: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il concetto di Algoritmo

Esempio: scattare una foto con una macchina digitale

1. Se la macchina è spenta, accenderla2. Inquadrare il soggetto3. Finché il campo inquadrato non va bene

1. Se è troppo largo, aumentare lo zoom2. Se è troppo stretto, diminuire lo zoom

4. Scattare5. Controllare la foto sul visore6. Se è venuta male

1. Cancellarla2. Tornare al punto 2.

Page 17: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il concetto di Algoritmo

In generale: Un algoritmo è costituito di una sequenza di

passi Ci sono tre tipi di successione temporale dei

passi: Sequenziale: dopo un passo si effettua il successivo Condizionale: un passo viene eseguito solo se si

verifica una data condizione Iterativo: un passo viene ripetuto un certo numero di

volte Le istruzioni condizionali ed iterative consentono

di cambiare il flusso dell’algoritmo secondo quel che succede (ossia secondo la situazione creata dai dati su cui si sta lavorando)

Page 18: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Ricapitolando…

I computer sanno solo eseguire un numero molto ridotto di operazioni sintattiche su simboli di un dato linguaggio (i numeri binari, che vedremo)

Per funzionare, un computer ha bisogno di:1. Un programma che lo istruisca su cosa fare2. Dati sui quali agire

Abbiamo quindi bisogno di tradurre sia gli algoritmi che i dati in un linguaggio “comprensibile” al computer

Parleremo di rappresentazione e codifica dell’informazione

Page 19: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Rappresentazione dell’informazione

Per rappresentazione intendiamo un modo di associare alle informazioni (semantiche) delle descrizioni sintattiche

Il linguaggio naturale (per esempio, l’Italiano) fornisce strumenti abbastanza completi per rappresentare la realtà, ma È molto complicato È prolisso È ambiguo

In ogni caso, posso veicolare un messaggio in Italiano solo verso chi capisce l’Italiano

Ossia: la rappresentazione deve essere concordata tra chi produce il messaggio e chi lo riceve

Page 20: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Codifica dell’informazione

Per rappresentare l’informazione in modo fruibile dai computer abbiamo bisogno di codici che la possano esprimere in modo semplice, sintetico e non ambiguo.

Un codice (o linguaggio) si basa su: Un alfabeto di simboli Una sintassi con cui comporre tali simboli in sequenze

valide (cioè sensate) Una semantica da associare a simboli o sequenze valide di

simboli

Nella codifica dei dati, la semantica resterà per lo più dominio degli umani che tali dati interpretano

Nella codifica dei programmi, la semantica sarà interpretata dal computer in termini di operazioni elementari che questo è in grado di eseguire

Page 21: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Codifica dell’informazione

I computer hanno un grosso limite: possono gestire solo rappresentazioni finite codificate attraverso un insieme finito di simboli

Dato qualunque insieme finito di n simboli, questo può essere messo in relazione con i primi n numeri interi (partendo da zero)

Quindi basta trovare un modo efficiente e opportuno (per il computer) di rappresentare i numeri interi e si può in questo modo codificare qualunque rappresentazione (finita)

Esempio delle carte

Page 22: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Codifica dei numeri interi

Codifica decimale: Alfabeto di dieci simboli (cifre): 0 1 2 3 4 5 6 7 8 9 Assumiamo per il momento di rappresentare numeri di

non più di n cifre Ogni numero si rappresenta con una sequenza

(stringa) di n cifre A ogni cifra si assegna una semantica (quella solita) Ogni cifra ha una posizione nella sequenza e ad ogni

posizione di assegna una semantica: unità, decine, centinaia, migliaia, ecc…

100000 10000 1000 100 10 1

Page 23: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Codifica dei numeri interi

Codifica decimale: La semantica di una stringa si ottiene moltiplicando

ciascuna cifra per la potenza di dieci corrispondente al posto che occupa e sommando il tutto

7x1 + 2x10 + 1x100 = 127 Attenzione: con questa regola il numero 127 si scriverà in

effetti 000127 e il numero più grande che si riesce a rappresentare è il 999999

Normalmente non abbiamo questi limiti perché assumiamo l’esistenza di un simbolo separatore (ad esempio lo spazio) che ci indica dove inizia e dove finisce un numero

0 0 0 1 2 7

100000 10000 1000 100 10 1

Page 24: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Codifica dei numeri interi

Codifica binaria:Stesso meccanismo, ma

l’alfabeto è di soli due simboli: 0 1La semantica assegnata alle posizioni in una stringa

di cifre binarie corrisponde (da destra a sinistra) a potenze successive di due: 1, 2, 4, 8, 16, …

La semantica di una stringa si ottiene moltiplicando ciascuna cifra per la potenza di due corrispondente al posto che occupa e sommando il tutto

Quindi ad esempio il numero binario11010110

corrisponde al numero decimale0x1+1x2+1x4+0x8+1x16+0x32+1x64+1x128 = 214

Page 25: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Numeri binari e computer

Qualunque informazione rappresentata nel computer (sia dati che programmi) viene codificata in forma binaria

Ragioni pratiche: I simboli 0 e 1 si fanno corrispondere a due

livelli di tensione elettrica e l’elaborazione dell’informazione avviene attraverso commutazioni tra questi due livelli di tensione, operati da circuiti logici, fatti di un numero elevatissimo di transistor miniaturizzati, ciascuno molto semplice

Conviene costruire molti circuiti molto semplici piuttosto che meno circuiti più complessi

Page 26: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Numeri binari e computer

Ragioni filosofiche:La numerazione binaria è adeguata a

rappresentare il ragionamento creativo (Leibnitz, XVII secolo): ogni cifra può rappresentare una decisione (cfr istruzioni condizionali)

C’è corrispondenza tra la matematica in base 2 e la logica (Boole, XIX secolo), quindi possiamo formalizzare il ragionamento (logico) attraverso procedure algoritmiche (matematiche)

Si può ottenere un modello del cervello umano rappresentando una rete di neuroni ciascuno dei quali può assumere due stati attivo/inattivo (McCulloch & Pitts, 1943)

Page 27: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Numeri binari e computer

Una cifra binaria (rappresentata in un computer) si chiama genericamente bit (contrazione di binary digit = cifra binaria)

Un gruppo di 8 bit si chiama byteIl byte è l’unità di misura usata per

quantificare l’informazione rappresentata in un computer (ad esempio, la capacità della sua memoria)

I multipli del byte si ottengono moltiplicandolo per potenze di 2 che si avvicinano a potenze di 10

Page 28: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Numeri binari e computer

Nome SimboloPotenza

di 10Potenza

di 2Valore

kilobyte kB 103 210 1.024

megabyte MB 106 220 1.048.576

gigabyte GB 109 230 1.073.741.824

terabyte TB 1012 240 1.099.511.627.776

Page 29: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

La memoria del computer

Una memoria è un contenitore fatto di “scatolette” (celle) ciascuna delle quali può contenere un gruppetto di bit

La capacità di una cella di memoria di solito è di qualche byte (8, 16, 32 o 64 bit)8 bit = numeri da 0 a 25516 bit = numeri da 0 a 65.53532 bit = numeri da 0 a 4.294.967.29564 bit = numeri da 0 a circa 18,5 miliardi di

miliardi

Vantaggi e svantaggi di avere celle più o meno grandi

Page 30: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

I dati

I dati sono informazioni rappresentate secondo una certa codifica

In ultima analisi, qualunque dato viene codificato attraverso numeri binari immagazzinati nelle celle di memoria del computer

Per arrivare a questo possono essere però necessari diversi passaggi, che aumentano con la complessità strutturale dei dati da rappresentare

Page 31: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

I dati

Esempio: i numeri naturaliDobbiamo prima di tutto decidere quanti ne

vogliamo rappresentare e quindi quanti bit servono per rappresentarne uno

Scelto che ci servano n bit, ciascun gruppo di n bit viene interpretato come numero attraverso la regola solita dell’aritmetica in base 2

Quindi per esempio se abbiamo scelto n=4 possiamo rappresentare solo numeri tra 0 e 15 e la sequenza 0010100011110001 rappresenta nell’ordine i numeri 2 8 15 1

Page 32: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

I dati

Se scegliessimo n=8 la stessa sequenza 0010100011110001 rappresenterebbe nell’ordine i numeri 40 e 241

Quindi:

l’informazione codificata nei dati si può recuperare solo se è nota la

semantica del codice utilizzato per rappresentarli

Page 33: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

I dati

Esempio: il testo Vogliamo rappresentare sequenze composte di

lettere dell’alfabeto maiuscole e minuscole cifre decimali segni di punteggiatura parentesi varie simboli speciali spazi …

Servirebbero almeno 7bit per rappresentare ciascun simbolo

Con questo metodo è stata ottenuta la tabella ASCII, largamente usata

Page 34: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

La tabella ASCIIDec Hex Oct Char Dec Hex Oct Char Dec Hex Oct Char Dec Hex Oct Char

------------------------------------------------------------------------- 0 00 000 NUL 32 20 040 Space 64 40 100 @ 96 60 140 ` 1 01 001 SOH 33 21 041 ! 65 41 101 A 97 61 141 a 2 02 002 STX 34 22 042 " 66 42 102 B 98 62 142 b 3 03 003 ETX 35 23 043 # 67 43 103 C 99 63 143 c 4 04 004 EOT 36 24 044 $ 68 44 104 D 100 64 144 d 5 05 005 ENQ 37 25 045 % 69 45 105 E 101 65 145 e 6 06 006 ACK 38 26 046 & 70 46 106 F 102 66 146 f 7 07 007 BEL 39 27 047 ' 71 47 107 G 103 67 147 g 8 08 010 BS 40 28 050 ( 72 48 110 H 104 68 150 h 9 09 011 HT 41 29 051 ) 73 49 111 I 105 69 151 i10 0A 012 LF 42 2A 052 * 74 4A 112 J 106 6A 152 j11 0B 013 VT 43 2B 053 + 75 4B 113 K 107 6B 153 k12 0C 014 FF 44 2C 054 , 76 4C 114 L 108 6C 154 l13 0D 015 CR 45 2D 055 - 77 4D 115 M 109 6D 155 m14 0E 016 SO 46 2E 056 . 78 4E 116 N 110 6E 156 n15 0F 017 SI 47 2F 057 / 79 4F 117 O 111 6F 157 o16 10 020 DLE 48 30 060 0 80 50 120 P 112 70 160 p17 11 021 DC1 49 31 061 1 81 51 121 Q 113 71 161 q18 12 022 DC2 50 32 062 2 82 52 122 R 114 72 162 r19 13 023 DC3 51 33 063 3 83 53 123 S 115 73 163 s20 14 024 DC4 52 34 064 4 84 54 124 T 116 74 164 t21 15 025 NAK 53 35 065 5 85 55 125 U 117 75 165 u22 16 026 SYN 54 36 066 6 86 56 126 V 118 76 166 v23 17 027 ETB 55 37 067 7 87 57 127 W 119 77 167 w24 18 030 CAN 56 38 070 8 88 58 130 X 120 78 170 x25 19 031 EM 57 39 071 9 89 59 131 Y 121 79 171 y26 1A 032 SUB 58 3A 072 : 90 5A 132 Z 122 7A 172 z27 1B 033 ESC 59 3B 073 ; 91 5B 133 [ 123 7B 173 {28 1C 034 FS 60 3C 074 < 92 5C 134 \ 124 7C 174 |29 1D 035 GS 61 3D 075 = 93 5D 135 ] 125 7D 175 }30 1E 036 RS 62 3E 076 > 94 5E 136 ^ 126 7E 176 ~31 1F 037 US 63 3F 077 ? 95 5F 137 _ 127 7F 177 DEL

Page 35: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

I dati composti

I dati come numeri e caratteri di testi si dicono elementari perché abbiamo una regola semplice per definire come codificarli

A partire da questi, si possono definire tipi di dato più complessi, ottenuto per composizione

Per esempio, la scheda di un cliente in un archivio di contabilità potrà contenere diversi campi di diverso tipo: codice cliente (numero intero) nome e cognome (stringhe di testo) partita iva (numero intero) ecc…

Page 36: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

I dati multimediali

Per i dati tipo musica, immagini, filmati, segnali di varia natura, il discorso è più complesso

Questi dati sono per loro natura continui e possono essere rappresentati esattamente solo in modo analogico tramite altri segnali continui

I computer possono rappresentare dati solo in modo digitale attraverso operazioni di campionamento e quantizzazione utilizzando come rappresentazione sequenze finite e discrete di numeri

Pertanto la rappresentazione digitale dei dati multimediali è sempre un’approssimazione

Esempio rappresentazione di un’onda – LP vs CD

Page 37: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Segnale analogico

Page 38: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Segnale campionato

Page 39: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Struttura degli elaboratori

Un elaboratore elettronico è costituito di varie parti (componenti):Per elaborare informazioni (CPU)Per immagazzinare informazioni (memoria,

dischi, …)Per trasferire informazioni all’interno del

computer (Bus)Per scambiare informazioni con l’esterno

(tastiera, mouse, schermo, stampante, …)

Page 40: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Struttura degli elaboratori

Le componenti centrali sono quelle indispensabili per il funzionamento del computer: Unità di elaborazione (CPU) Memoria primaria

Costituiscono il nucleo principale e di solito sono contenute su un’unica scheda detta scheda madre (motherboard)

In pratica è sempre indispensabile la presenza di almeno qualche altro componente che permetta all’elaboratore di scambiare informazioni con l’esterno

Page 41: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Struttura degli elaboratori

Le componenti periferiche aggiungono altre funzionalità (spesso indispensabili in pratica per un uso “normale”):Dischi (hard disk, CD-ROM, DVD, …)Componenti di I/O (tastiera, mouse,

schermo)Schede di interfaccia (video, audio, modem,

rete, Bluetooth, USB, …)

Page 42: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Architettura interna

Processore (CPU)

Memoria primaria (RAM)

Periferiche

Bus

Page 43: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Come funziona…

Come già detto, il computer da solo sa fare poche cose: spostare informazioni tra processore e

memorie/periferiche, passando attraverso il bus manipolare (confrontare, combinare, cambiare)

piccole unità di informazione all’interno del processore

Per funzionare, ha bisogno di essere istruito da un programma

I programmi: sono codificati in modo “comprensibile” al computer per lo più risiedono su disco per essere eseguiti, devono essere trasferiti in

memoria primaria e da lì, un’istruzione alla volta, transitare nel processore

Page 44: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Come funziona…

Il processore:legge dalla memoria alternativamente

istruzioni (pezzi di programmi) e datiscrive nella memoria dati che gli servono

per continuare le sue operazionipuò mandare risultati verso i dispositivi di

outputTutte le comunicazioni avvengono

attraverso il Bus, che è il dispositivo primario deputato a trasferire informazioni all’interno del computer

Page 45: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Come funziona…

Processore (CPU)

Memoria primaria (RAM)

Bus

Disco

Caricamento programma

Esecuzione istruzioni

Page 46: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Come funziona…

Processore (CPU)

Memoria primaria (RAM)

Bus

Disco

Trasferimento dati

Caricamento dati

Page 47: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Come funziona…

Processore Memoria primaria

Bus

Disp. Output

Risultati

Disco

Page 48: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

La memoria

La memoria è organizzata a celle Ogni cella può contenere un’unità di

informazione (multiplo del byte) Le celle sono numerate a partire da zero Il numero d’ordine di una cella è il suo indirizzo Il processore individua una cella attraverso il

suo indirizzo e può: leggere il suo contenuto scriverci dentro un nuovo contenuto

La struttura logica è analoga per tutti i tipi di memorie (RAM, dischi, …)

Page 49: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il bus

Il bus connette tra loro i vari componenti del computer

Vi transitano tutte le informazioni che vengono trasferite da un componente all’altro

Ha una struttura a corsie: corsia per i dati corsia per gli indirizzi corsia per i comandi

Indirizzi

Dati

Comandi

Page 50: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il bus

Lettura di un dato: nella corsia degli indirizzi compare l’indirizzo della

cella da cui il dato va letto nella corsia dei comandi compare un comando di

lettura nella corsia dati viene messo il dato ottenuto a

seguito della lettura in questo caso il destinatario della lettura è il

processore

Page 51: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il bus

Scrittura di un dato: nella corsia degli indirizzi compare l’indirizzo della

cella in cui il dato va scritto nella corsia dei comandi compare un comando di

scrittura nella corsia dati viene messo il dato da scrivere in questo caso il destinatario della scrittura è la cella

di memoria

Le periferiche vengono trattate in maniera simile alla memoria

Page 52: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il processore (CPU)

Componenti principali:Unità aritmetico-logica (ALU): esegue le

istruzioni che sono di tipo aritmetico (per esempio, somma) oppure logico (per esempio confrontare se due valori sono uguali)

Unità di controllo: prende istruzioni e dati dalla memoria e comanda la ALU, quindi comanda il flusso dell’esecuzione

Registri: sono una (piccola) memoria privata della CPU in cui immagazzina temporaneamente i dati su cui sta lavorando

Page 53: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

I programmi

Già visto che: Sono sequenze di istruzioni che possono essere

eseguite dal computer Codificano algoritmi Vengono caricati in memoria ed eseguiti

un’istruzione alla volta Possono produrre risultati che vengono scritti o

visualizzati sulle periferiche

Tipologie di programmi: batch: gira in modo autonomo (esempio: antivirus) interattivo: prevede azioni da parte di un utente

(esempio: videogioco, browser internet, posta elettronica, …)

Page 54: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il sistema operativo

“Il programma dei programmi”:permette al computer di funzionareè il primo a partire quando si accende il

computer e l’ultimo a fermarsigestisce autonomamente tutta una serie di

processi batchpermette all’utente di interagire per

lanciare altri programminei computer odierni, l’interazione avviene

attraverso un’interfaccia grafica (sistema a finestre)

Page 55: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Il sistema operativo

Sistemi operativi per personal computer: Linux: per architettura PC, codice open source su base Unix,

diverse interfacce utente MacOS: per architettura Apple Macintosh, propretario su

base Unix (solo dalle ultime versioni) Windows: per architettura PC, proprietario

Dal punto di vista dell’architettura possono essere molto diversi uno dall’altro

Dal punto di vista dell’utente, a grandi linee si somigliano tutti, mentre differiscono nei dettagli, che possono anche cambiare tra versioni diverse dello stesso sistema

Un programma per funzionare deve essere compatibile con l’architettura hardware e con il sistema operativo

Spesso i programmi applicativi sono disponibili in diverse versioni per i vari sistemi operativi

Page 56: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Interfaccia grafica

Modo intuitivo di gestire l’interazione tra programma e utente

Di solito basata su finestre, menu, cursori, ecc…

L’utente agisce con mouse e tastiera e vede un effetto grafico delle sue azioni sull’interfaccia grafica

In realtà, il computer collega le azioni compiute dall’utente con operazioni di elaborazione dei dati che non sono sempre immediatamente visibili

Esempi on-line

Page 57: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

I file

I dati ed i programmi sono mantenuti su disco in “contenitori” logici detti file

Un file è una sequenza di codici (numeri binari) organizzati in modo da essere riconoscibili da un determinato programma Un file eseguibile codifica un programma ed è

riconosciuto come tale dal sistema operativo Un file di testo è visualizzabile e leggibile mediante

programmi per l’elaborazione di testi Ci sono file che codificano immagini, filmati, musica,

archivi, pagine internet, dati di diversa natura necessari al funzionamento di programmi

Page 58: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

I file

Ogni file ha un nome e può avere un’estensione L’estensione è un suffisso che aiuta a capire quali sono i

programmi in grado di riconoscere quel tipo di file .exe : programma eseguibile .txt : file di testo .html : pagina web .pdf : documento leggibile con programmi tipo Acrobat

reader .doc : documento di testo gestibile con Word .jpg : immagine codificata in formato jpeg .wav : formato file audio campionato .mp3 : formato file audio compresso .avi : formato video visualizzabile con programmi appositi .vob : formato video mpeg2 (standard DVD) .zip : archivio compresso

Page 59: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Le cartelle (directory)

Lo spazio su disco è organizzato logicamente in modo gerarchico mediante cartelle

Una cartella è un contenitore (come in uno schedario) che può contenere file oppure altre cartelle

Si accede ad un file specificando in che cartella si trova e mediante il suo nome (che deve essere unico all’interno di tale cartella)

Esempi on-line

Page 60: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Come opera un programma interattivo Avvio (da interfaccia grafica, di solito mediante

doppio click del mouse sull’icona del programma o di un file che è previsto sia gestibile con quel programma): trasferimento del programma da disco a memoria

RAM il sistema operativo associa l’azione di avvio ad un file

eseguibile che è residente su discocopia il contenuto di tale file nella memoria RAM

inizializzazione: la CPU incomincia ad eseguire le istruzioni in modo

autonomodi solito questa parte serve a compiere operazioni

preliminari che preparano il programma ed affrontare l’interazione con l’utente

Page 61: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Come opera un programma interattivo

Interazione:secondo i casi, il computer può aspettare che l’utente

faccia qualcosa, oppure continuare ad eseguire il codice in modo autonomo, ma controllando allo stesso tempo se ci sono azioni dell’utente

ad ogni azione dell’utente corrisponde una reazione del programma che può modificare i dati o produrre un risultato

le azioni dell’utente devono essere prevedibili, ossia il programma assume che l’utente possa effettuare un determinato numero di azioni elementari (spostare il mouse, schiacciare un tasto, …) ed associa ad ognuna di queste azioni un’insieme di operazioni che il computer compie

la reazione del computer può dipendere anche dal momento in cui l’utente compie un’azione e dallo stato in cui si trova il programma

Esempi videogioco e text editor

Page 62: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Come opera un programma interattivo Caricamento dati:

se avvio il programma attraverso un file di dati, il programma si mette a lavorare automaticamente su quei dati

altrimenti il programma prevede che l’utente possa decidere di caricare un file di dati mediante un’azione apposita

Elaborazione dati: avviene in corrispondenza di determinate azioni

decise dall’utente in linea di massima il risultato delle elaborazioni è

volatile, cioè va perso se il programma termina l’esecuzione

Page 63: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Come opera un programma interattivo Salvataggio dati:

in conseguenza di un comando esplicito da parte dell’utente, il programma salva su disco i risultati dell’elaborazione effettuata

in questo modo i risultati diventano permanenti

Page 64: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

File di testo e text editor

Un file di testo codifica una sequenza di caratteri (lettere, cifre, segni ortografici, spazi, a-capo)

Ogni carattere viene codificato secondo una tabella predefinita (ad esempio la tabella ASCII)

Un programma di text editor permette di gestire file di testo: visualizzare o stampare il testo aggiungere testo cancellare testo modificare testo

Page 65: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

File di testo e text editor

Il testo è organizzato per righe Ciascuna riga è una sequenza di caratteri Il text editor capisce dove finisce una riga da simboli

speciali presenti nei dati Un cursore sul testo visualizzato rappresenta il punto

del testo in cui l’utente può intervenire Il cursore si sposta con il mouse o con le frecce sulla

tastiera Il text editor offre diversi ausilii tipo:

possibilità di evidenziare una parte di testo e duplicarla oppure spostarla in un punto diverso

possibilità di cercare una parola nel testo e sostituirla con un’altra

ecc…

Esempio con notepad

Page 66: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Word processor

Programmi più evoluti permettono di gestire molte altre caratteristiche della composizione di testi: uso di caratteri di diverse dimensioni e in diversi stili e

colori organizzazione in capitoli, paragrafi e per punti giustificazione del testo tabelle inserimento di disegni, immagini, … ecc…

Questi programmi prevedono dati codificati in un formato più complesso I codici che rappresentano i caratteri di testo sono

inframezzati da codici che dicono quale stile di carattere usare, dove comincia un paragrafo, come è strutturata una tabella, ecc…

Esempio con word

Page 67: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Compressione dei file

L’informazione codificata in un file non sempre occupa il minimo indispensabile di spazio

Esistono algoritmi (e programmi) per comprimere file in modo da archiviarli occupando meno spazio su disco

Per essere utilizzato, un file compresso deve prima essere decompresso

Esistono due categorie di algoritmi di compressione: lossless, cioè senza perdita di informazione lossy, cioè con perdita di informazione

Page 68: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Compressione dei file

Gli algoritmi lossless si possono applicare a qualunque tipo di file, infatti il contenuto del file può essere ripristinato al suo stato originale mediante decompressione

Gli algoritmi lossy si possono utilizzare solo per tipologie specifiche di

dati che siano immediatamente fruibili dall’utente di solito si applicano a: immagini (jpeg), filmati

(mpeg4, divx), musica (mp3), rappresentazioni di oggetti geometrici, …

alla perdita di informazione corrisponde un degrado nella qualità dei dati, che spesso non è immediatamente percepibile

non si possono mai applicare a programmi o file di dati utilizzati da programmi, che richiedono sempre l’integrità di tutta l’informazione, bit per bit

Page 69: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Le reti di calcolatori

I computer si possono collegare tra loro per formare reti

Una rete permette ai computer di scambiare tra loro informazioni e condividere risorse (hardware, come dischi e stampanti, oppure software, come programmi e basi di dati)

Due tipi principali di reti: rete locale (LAN): gruppo limitato di computer

presenti in un edificio o un’area ristretta – Alta condivisione di risorse

rete geografica (WAN): molti computer su un’area estesa

Internet: la rete delle reti

Page 70: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Internet e il World Wide Web

Sviluppo: 1962-1967: primi studi al MIT 1967: progetto ARPANET del ministero della difesa USA

sulla sicurezza delle reti telefoniche concetto di nodo critico e resistenza ai guasti meccanismo di routing

inizio anni 70: crescita di ARPANET e concetto di internetworking (compatibilità tra gli standard di comunicazione)

Domain name system (DNS) Protocollo di comunicazione TCP/IP

1984: National Science Foundation finanzia la progettazione della prima rete nazionale civile che collega tra loro moltissime reti private (tra cui ARPANET)

1995: adozione del nome Internet Il World Wide Web è l’insieme di documenti ipertestuali

messi a disposizione su Internet (pagine web ecc.)

Page 71: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Internet e il World Wide Web

Nomi e indirizzi: ogni computer collegato a Internet costituisce un nodo

della rete ogni nodo ha un indirizzo univoco, detto numero IP

costituito di quattro numeri tra 0 e 255 separati da punti ad esempio 130.251.21.166 è il numero IP del server web

dell’Università di Genova i numeri IP sono amministrati da autorità nazionali

coordinate tra loro in modo che non ci siano doppioni un nodo che vuole rendere disponibile risorse sul web di

solito ha anche un nome costruito secondo la sintassi DNS ad esempio il server dell’Università di Genova si chiama

www.unige.it e quello della facoltà di scienze si chiama www.scienze.unige.it

non c’è relazione diretta tra un nome e il corrispondente numero IP

per risolvere l’associazione tra nome e numero IP sono disponibili sulla rete nodi DNS che offrono questo servizio

Page 72: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Come ci si collega a Internet

Nel caso di una rete locale, serve un router (apparato apposito per “uscire” dalla rete locale) e un nodo già collegato alla rete con in quale realizzare un collegamento diretto la rete locale di solito riceve un pool di numeri IP che

può assegnare ai suoi computer Nel caso di un privato, il router è sostituito da

un modem o altro apparato che permette di collegarsi mediante rete telefonica ad un internet provider che è collegato in rete e fornisce il servizio di collegamento il numero IP assegnato dal provider di solito è

provvisorio e non è pubblico, nel senso che è visibile solo all’interno della sottorete del provider

Page 73: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Cosa offre Internet

pagine web (protocollo http) posta elettronica (email) (protocollo smtp) trasferimento di file da un computer ad un

altro (protocollo ftp) uso di un computer da remoto (protocollo

telnet) gruppi di discussione (newsgroup) (protocollo

nntp) altri protocolli sono disponibili ad esempio per

videoconferenza, telefonia VoIP, sistemi di condivisione file Peer-to-peer, videogiochi su rete

Page 74: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

I browser per Internet

programmi per accedere a Internet di solito gestiscono diversi protocolli (per lo

meno http) forniscono un’interfaccia grafica per la

visualizzazione di ipertesti spesso forniscono anche un’interfaccia per la

posta elettronica (smtp) e/o per trasferire file (ftp)

sono in grado di chiamare programmi accessori (plugin) ad esempio per ascoltare audio, vedere video, o eseguire programmi

browser più comuni: Microsoft Internet Explorer, Mozilla Firefox, Netscape Navigator, Opera

Page 75: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

Navigare Internet con il browser

si può accedere direttamente ad un sito digitando il suo indirizzo (URL)

di solito si accede a documenti ipertestuali che possono contenere: testo immagini link ad altri documenti accesso a filmati e/o musica

i link sono visualizzati come parti di testo o immagini sulle quali su può fare click con il mouse

fare click su un link fa sì che il browser carichi un altro documento a cui tale link fa riferimento

Esempi on-line

Page 76: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

La posta elettronica

Permette lo scambio di messaggi di testo attraverso Internet

Su una rete connessa a Internet può essere attivo un server di posta elettronica

Ogni utente di quella rete riceve un indirizzo univoco di posta elettronica al quale può ricevere messaggi nomeutente@indirizzomacchinaserver

Per consultare la propria posta e spedire messaggi è necessario un servizio di posta elettronica connesso al server: programma per l’email (può essere incorporato nel

browser) oppure un servizio Web per l’email

Page 77: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

La posta elettronica

I programmi di email devono essere collegati al server: pop o imap per ricevere la posta smtp per spedire la posta

Devono essere inoltre configurati con i dati del mittente (nome, indirizzo di email, ecc.)

Permettono di: controllare la lista dei messaggi ricevuti leggere un messaggio scrivere e spedire un messaggio a uno o più indirizzi cancellare o archiviare messaggi

I messaggi sono organizzati in cartelle (come i file) una cartella per i messaggi ricevuti una per le copie di quelli inviati una per quelli buttati (cestino) diverse cartelle locali per quelli archiviati

Si possono spedire documenti (file) allegati ai messaggi

Page 78: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

I motori di ricerca

Servizi Internet per reperire risorse sul Web tramite parole chiave

Si accede tramite una pagina Web: www.altavista.com www.excite.com www.google.com (oppure www.google.it) www.lycos.com www.yahoo.com

Questa prevede sempre uno spazio in cui l’utente può inserire una query

Una query è un insieme di parole chiave che designano l’argomento che interessa all’utente

Il motore di ricerca cerca su Internet tutti i documenti ipertestuali che contengono quelle parole chiave e ne riporta un elenco

Page 79: Pre-corso di Informatica Facoltà di Scienze MM.FF.NN. a.a. 2006/2007.

Informatica

I motori di ricerca

Come si struttura una query: in generale, il motore cerca i documenti che

contengono qualunque parola tra quelle inserite nella query

riporta i risultati in ordine di rilevanza, quindi ci saranno prima quelli che contengono più parole e/o in cui queste sono vicine nel testo

se si vuole che un termine sia necessariamente nel testo bisogna farlo precedere da un segno +

se si vuole cercare un’intera frase bisogna scriverla tra virgolette

se si vuole escludere un termine dalla ricerca bisogna farlo precedere da un segno –

ci sono molti altri “trucchi” che si possono usare per rendere più efficiente e precisa una ricerca