Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del...

37
Laboratorio di Informatica e Matematica Modulo di Informatica Laurea di Primo Livello in Matematica A.A. 2011-2012 http://www.lintar.disco.unimib.it/space/Formazione/Didattica/Laboratorio+di+Informatica+2011-2012 Giuseppe Vizzari [email protected] Edificio U14, viale Sarca 336 Tel. 0264487865

Transcript of Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del...

Page 1: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Laboratorio di Informatica e Matematica Modulo di Informatica

Laurea di Primo Livello in Matematica A.A. 2011-2012

http://www.lintar.disco.unimib.it/space/Formazione/Didattica/Laboratorio+di+Informatica+2011-2012

Giuseppe Vizzari [email protected]

Edificio U14, viale Sarca 336 Tel. 0264487865

Page 2: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Organizzazione del corso •  Laboratorio di Informatica e Matematica – 8 CFU •  Lezioni frontali

–  Venerdì, Aula U1-10, h:10:30-12:30

•  Esercitazioni in laboratorio (inizio: fra due settimane) –  Martedì, LAB908 (U9), h:14:30-17:30 (Turno 1, A-L) –  Giovedì, LAB908 (U9), h:14:30-17:30 (Turno 2, M-Z) –  Passate prima in un qualsiasi laboratorio dell’Ateneo (anche

in U5) per creare un account

•  Tutor di laboratorio: Matteo Mondini e Antonio Porreca

Page 3: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Obiettivi dell’insegnamento •  Introdurre le nozioni base inerenti le architettura dei

sistemi informatici –  Architettura dell’elaboratore –  Sistema operativo –  Reti di computer

•  Rendere lo studente in grado di identificare algoritmi risolutivi a semplici problemi e di codificarli in linguaggio di programmazione Java –  Introduzione al linguaggio –  Introduzione alla programmazione imperativa

•  Sono inoltre previsti dei cenni alla realizzazione di algoritmi per il calcolo algebrico e numerico

•  Coordinamento con il corso di “Algoritmi e Programmazione” (II anno, II semestre)

Page 4: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Materiale di supporto •  Libro di testo

–  “Programmazione con Java”, Walter Savitch e Frank M. Carrano, Addison Wesley Pearson, 2010 (adottato anche da “Algoritmi e Programmazione”)

–  libri introduttivi sull’informatica: alcuni temi trattati nel corso sono trattati ad es. in alcuni capitoli di “Istituzioni di Informatica”, Ceri – Mandrioli, McGraw Hill

–  verranno fornite in modo puntuale indicazioni su eventuali capitoli di libri per approfondimenti

•  Sito web del corso –  http://www.lintar.disco.unimib.it (Area formazione,

didattica, CdL in Matematica, Laboratorio di Informatica 2011/2012)

Page 5: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Orario di ricevimento

•  Mercoledì mattina, dalle 9 alle 10 in U14 •  (Sperimentalmente) anche su

appuntamento via e-mail: [email protected]

•  Edificio U14, viale Sarca 336, stanza 1011 (I piano), tel. 0264487865

Page 6: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Modalità d’esame

•  Per chi segue – Compitini (il primo orientativamente a fine

Novembre, il secondo ad aprile; è previsto un recupero del primo a fine gennaio)

– Domande ‘teoriche’ ed esercizi pratici di programmazione in Java

•  Per chi non può/vuole seguire, per chi non passa i compitini – Modalità analoga, sul programma completo

Page 7: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Che cos’è l’informatica?

Page 8: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Applicazioni informatiche...

•  Calcolo scientifico-ingegneristico •  Gestione aziendale, sistemi informativi •  Produzione/gestione di contenuti

multimediali •  Office automation (elaborazione testi, fogli

elettronici,...) •  ...

Page 9: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Informatica

•  Computer Science à Informatica scienza e tecnica dell’elaboratore? – Ma il calcolatore è solo uno strumento

•  Scienza della rappresentazione ed elaborazione dell’informazione

•  Informazione + automatica = informatica

Page 10: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Rappresentazione dell’informazione

Page 11: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Sistemi di numerazione •  I numeri sono delle entità astratte: occorre distinguere tra

il numero 130 e la scrittura 130 che viene detta ideogramma

•  Esistono modi di scrivere i numeri più o meno adatti a supportare la loro elaborazione –  si provi a sommare centoventiquattro e millecentoventitre... –  ... probabilmente per farlo ricorrereste agli ideogrammi

•  Non tutti i sistemi di numerazione, anche se ideografici, sono ugualmente efficienti dal punto di vista della manipolazione dei numeri (anche CCXXVII è un ideogramma)

Page 12: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

La notazione posizionale •  Questa notazione è caratterizzata dalla

attribuzione a ciascun simbolo di un valore che dipende dalla posizione che il simbolo stesso occupa all’interno del numero –  in 575, il primo 5 ha un significato ben diverso

dall’ultimo 5 •  La posizione, quindi, ricopre un significato ben

preciso, da qui l’utilizzo del termine numerazione posizionale –  contrariamente, ad esempio, ai numeri romani

(sistema di numerazione additivo non posizionale)

Page 13: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Sistema di numerazione arabo (1/2)

•  Il nostro sistema di numerazione (denominato arabo) è posizionale e consente di rappresentare ciascun numero mediate un insieme finito di simboli {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

•  I simboli sono 10 e per questo si dice che contiamo in base 10

Page 14: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Sistema di numerazione arabo (2/2)

•  Cos’è un numero nel sistema decimale?

1425 = 1x103 + 4x102 + 2x101 + 5x100

numero = cNx10N + cN-1x10

N-1 + … + c1x101 + c0x10

0

•  Per esempio:

•  Il numero 10, che è la base del nostro sistema numerico, determina il valore effettivo di un numero

Page 15: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Sistema di numerazione binario

•  Il sistema di numerazione utilizzato nei computer è il “sistema numerico binario”

•  La base è 2 e i simboli possibili sono {0, 1}

•  0 e 1 sono chiamati binary digit o, più brevemente bit

•  Il bit è quindi la più piccola unità di misura d’informazione usata dai computer

Page 16: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Perché il binario?

•  Semplice realizzare fisicamente un elemento con due stati (transistor) anziché un numero superiore... –  ... e anche più robusto!

•  Semplice integrare un numero elevatissimo di questi elementi in dispositivi elettronici –  di memorizzazione –  di elaborazione

•  Corrispondenza con i valori logici vero (1) e falso (0)

Page 17: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Esempi di conversione decimale à binario

Decimale Binario Conversione

1 00000001 1=0*27+ 0*26 +0*25+0*24+0*23+0*22+0*21+1*20

2 00000010

2=0*27+ 0*26 +0*25+0*24+0*23+0*22+1*21+0*20

3 00000011 3=0*27+ 0*26 +0*25+0*24+0*23+0*22+1*21+1*20

4 00000100 4=0*27+ 0*26 +0*25+0*24+0*23+1*22+0*21+0*20

… … …

255 11111111 255=1*27+ 1*26 +1*25+1*24+1*23+1*22+1*21+1*20

Page 18: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

... e altri tipi di numeri?

•  Numeri negativi? •  Numeri non interi?

– Razionali – Reali – Complessi

•  Ne riparleremo, ma chiariamo subito che le rappresentazioni ammissibili in un calcolatore sono aggregazioni più o meno grandi di bit –  anche arbitrariamente grandi ma sempre finite!

Page 19: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Rappresentazione binaria di altre informazioni

•  Un bit rappresenta un’alternativa fra due configurazioni

•  Diversi bit possono essere raggruppati per rappresentare una scelta fra più alternative – Un carattere dell’alfabeto à una possibilità su

26 (o 52, discriminando maiuscole e minuscole) à almeno 5 bit

– Un tono di grigio à definita una ‘palette’ di 256 grigi à almeno 8 bit

Page 20: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

La codifica dei caratteri

•  Standard ASCII (American Standard Code for Information Interchange) – Non è l’unico standard anche se il più diffuso – es. EBCDIC, UNICODE

Page 21: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

ASCII

•  Con sequenze di 7 bit (128 configurazioni) sono codificati –  i 52 simboli dell’alfabeto anglosassone (26 maiuscole e 26 minuscole)

–  le 10 cifre –  i segni di punteggiatura – gli operatori aritmetici – alcuni caratteri speciali (es. @, %, $, [, ], ...)

Page 22: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

ASCII esteso

•  8 bit = 256 configurazioni –  Prime 128 configurazioni (tutte precedute da 0)

corrispondono alle 128 configurazioni dell’ASCII standard

–  Seguono altre codifiche di caratteri speciali (es. lettere accentate dei vari alfabeti: à, è, é, ü, ï, ç, ê ...)

•  Standard non universalmente riconosciuto da tutte le applicazioni e sistemi operativi

Page 23: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Dall’italiano all’ASCII...

•  Per scrivere in ASCII una parola (della lingua italiana), si mettono in sequenza le codifiche ASCII dei caratteri che compongono la parola

a n i m a

1100001 1101110 1101001 1101101 1100001

Page 24: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

…e ritorno

•  viceversa, per capire che cosa significa una sequenza di caratteri ASCII: – si spezza la sequenza in sequenze di 8 bit – si fa corrispondere a ogni sequenza il

carattere opportuno

a n i m a

1100001 1101110 1101001 1101101 1100001

Page 25: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Altri meccanismi di ‘digitalizzazione’

Suono e musica

Immagini (ma anche filmati)

Page 26: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Architettura di Von Neumann

Page 27: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Cenni storici •  Nella prima metà degli anni ‘40 John Von Neumann

partecipò alla realizzazione del primo modello di macchina automatica che –  elaborava dati in ingresso secondo delle istruzioni memorizzate

all’interno della macchina e forniva il risultato in uscita

•  Il modello usato, per la prima volta, prevedeva la divisione tra: –  dati in ingresso –  istruzioni da eseguire sui dati –  il risultato in uscita

•  Questa semplice rappresentazione è alla base dei moderni calcolatori, da cui il nome

Page 28: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Architettura di Von Neumann

Unità Centrale

Interfacce delle Periferiche Memoria

BUS DATI

BUS CONTROLLO

BUS INDIRIZZI

LINEE DI SERVIZIO (alimentazione, massa, sincronizzazione)

BUS

•  Quattro componenti principali –  Unità centrale (Central Processing Unit) –  Memoria –  Input/output –  Bus di interconnessione

Page 29: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

La CPU •  Nei moderni desktop il processore (Central Processing

Unit o, più brevemente, CPU) è realizzato tramite un unico chip di silicio che ospita un circuito elettronico ad alto grado di integrazione (tecnologia VLSI)

•  Questo circuito viene spesso chiamato microprocessore poiché comprende centinaia di migliaia di transistor su una superficie di pochi centimetri quadrati

•  Il processore è il motore che pilota un computer: più è grande e veloce, migliori sono le prestazioni globali

Page 30: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

… ma cosa fa esattamente? •  La sua funzione è quella di eseguire programmi memorizzati nella

memoria principale (o centrale - main memory) prelevando le loro istruzioni, esaminandole e quindi eseguendole una di seguito all’altra

•  … Ma come fa ad eseguire le istruzioni? •  Per capire come lavora occorre dare un’occhiata alla sua struttura…

Page 31: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Le componenti della CPU e il ciclo di vita di un’operazione elementare

•  Control Unit (Unità di controllo) –  preleva le istruzioni (fetch), determina il tipo di operazione da eseguire (decode), preleva

eventuali operandi dalla memoria principale in generale coordina le operazioni •  Arithmetic Logic Unit (ALU)

–  esegue operazioni necessarie per eseguire le istruzioni (effettua il calcolo) (execute) •  High speed memory (Registers)

–  dispositivi di memorizzazione di dimensioni ridotte per memorizzare risultati temporanei e alcune informazioni di controllo

Memoria Centrale (RAM)

Memorie di Massa Periferiche

Unità di Controllo

Unità Aritmetico Logica (ALU)

Registri

Central Processing Unit (CPU)

Bus

Fetch

Decode Execute Memoria

Page 32: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Gerarchie di memoria Non esiste un singolo tipo di memoria all’interno di un elaboratore moderno, ma si parla di una vera e propria gerarchia di memorie, suddivise per caratteristiche, funzionalità e prestazioni

Registri

Cache

Memoria principale

Dischi magnetici

Tape Dischi ottici

contengono risultati parziali delle istruzioni

contiene i dati (le word) più frequentemente usati dalla CPU

contenitore di dati e programmi anche non immediatamente in uso

Velo

cità

, cos

to

memorie non volatili

Page 33: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

Paragoni •  Man mano che si scende la gerarchia 2 parametri crescono (tempo

di accesso e capacità), uno decresce (costo) •  Mettiamoli a confronto

–  trascurando il costo, poiché è un parametro che cambia molto rapidamente

Device Tempo di accesso DimensioneRegistri pochi nanosecondi 128 bytesCache piccolo multiplo dei

registripochi MB

RAM poche decine dinanosecondi

dalle decine allecentinaia di MB

Dischi almeno 10 millisecondi da pochi GB finoa centinaia di GB

Tape e dischi ottici secondi se il media deveessere inserito

Limitati dalbudget

Page 34: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

I registri •  I registri, come visto, si trovano all’interno della CPU •  L’insieme dei registri sono un piccolo dispositivo di

memoria ad accesso veloce usato per memorizzare –  risultati temporanei derivanti dall’esecuzione di istruzioni –  alcune informazioni di controllo

•  Ognuno di questi registri ha una certa dimensione (generalmente la stessa) e una determinata funzione

•  Il numero di registri varia a seconda della CPU •  Il tempo di accesso verso i registri è dell’ordine di 1 ciclo

di clock. Quindi alla velocità della CPU

Page 35: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

La memoria principale - RAM (1/3) •  È un dispositivo in cui vengono memorizzati i dati ed i programmi ed

è connesso direttamente alle altre unità di elaborazione

•  La memoria è costituita da un certo numero di celle (cell) o locazioni (location), ognuna delle quali può contenere un “pezzo” di informazione (codificata in binario)

•  Ogni cella possiede un numero chiamato indirizzo (address) tramite il quale si può fare riferimento alla cella stessa –  se una memoria ha n celle, il range di indirizzi varierà tra 0 e n-1

Page 36: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

La memoria principale - RAM (2/3)

•  La cella è la più piccola unità indirizzabile ed è costituita da un certo numero di bit –  una cella da 8 bit è chiamata byte –  i byte a loro volta sono organizzati in word

•  Word è il contenuto di una cella di memoria ed è l’unità di dati che viene spostata tra la memoria principale e i registri della CPU

•  Tutte le celle della stessa memoria contengono lo stesso numero di bit

Page 37: Laboratorio di Informatica e Matematica Modulo di Informatica2011/10/07  · Organizzazione del corso • Laboratorio di Informatica e Matematica – 8 CFU • Lezioni frontali –

La memoria principale - RAM (3/3)

1 1 0 1 1 0 1 0 0 1 1 0 1 1 0 1

0 1 2 3 4 5 6 7 8 9 10

… … ...

0

1

2

3

4

5

n-1

.

.

.

.

.

.

.

.

.

parola

11 12 13 14 15

Bit della parola all’interno di una cella

Indirizzo

della

Parola