Franco ScarseliFondamenti di Informatica 2007-081
Pe rch Pe rch é é un co rso di In for m atic a ? un co rso di In for m atic a ?
Franco ScarseliFondamenti di Informatica 2007-082
In fo rm at ic a e alt ro
Io non frequento il corso di ingegneria informatica, a me programmare non piace, l’informatica non mi interessa …perchèquesto maledetto corso ???
L’informatica èformativa, si impara a
dato un problema ….
trovare una soluzione
formalizzare la soluzione in modo preciso e chiaro
la necessitàdi formalizzare le soluzioni ricorre frequentemente in ingegneria
vi fidereste di un ponte il cui progetto contiene solo chiacchiere e non indica le misure, quali materiali devono essere usati, …?
Franco ScarseliFondamenti di Informatica 2007-083
In fo rm at ic a e alt ro
L’informatica serve …E’poco probabile che lavorando si possa evitare l’informatica ?
Il software ènei PC, cellulari, stampanti, lavatrici, ……
Il software serve a tenere la contabilità, gestire le banche dati eanalizzarne il contenuto, controllare gli strumenti di telecomunicazione,…
Spesso agli inizi ai neo-ingegneri viene offerto un posto di programmatore
Spesso gli ingeneri gestionali devonointeragire con gruppi di lavoro che progettano (anche) software
Franco ScarseliFondamenti di Informatica 2007-084
D ec is io n ie in fo rm at ic a …
Un cliente richiede la realizzazione di un progetto per il qualeoccorreimplementare anche un software(la gestione di una catena di montaggio, un nuovo cellulare,..)
Non esiste nessun software che può essere riusato per questo scopo: occorre scriverne uno nuovo
Viene incaricato di svolgere il lavoro un gruppo di programmatori
Cosa ci si aspetta che faccia il gruppo all’inizio ? Quali sono le fasi del progetto e quanto tempo richiedono ?1.Analisi dei requisiti: si studia il problema e si discute con il cliente per capire cosa si deve fare 2.Progetto: si definisce nei dettagli il software da realizzare (1+2 il 30%del tempo)3.Realizzazione: si scrive il software (circa il 30% del tempo)4.Test: si verifica che il software funzioni (circa il 40% del tempo)
Franco ScarseliFondamenti di Informatica 2007-085
D ec is io n ie in fo rm at ic a …
Un dirigente ha avuto un’idea ….. geniale
progettare un software che verifichi automaticamente altri programmi
il software prende in ingresso il programma e controlla che questo non si blocchi mai, svolga il suo compito in un tempo ragionevole..
E un’idea buona ??
No, vedremo che questo software non esiste: la teoria dellacalcolabilitàdice che non può essere realizzato
Franco ScarseliFondamenti di Informatica 2007-086
D ec is io n ie in fo rm at ic a …
Il gestore di una carta di credito ha un archivio con miliardi di transazioni (acquisti, prelievi bancomat, …)
L’archivio occupa circa 1 TeraByte
Occorre realizzare un’applicazione che dato il numero di una cartae una data trovi tutte le transazioni fatte in quella data
Un programmatore dice al proprio manager che quest’applicazione èdifficile da realizzare e che ogni accesso all’archivio richiederàminuti: èvero ?
No, con una corretta organizzazione dell’archivio, un normale PC può svolgere questa operazione in meno di un secondo
Franco ScarseliFondamenti di Informatica 2007-087
D ec is io n ie in fo rm at ic a …
Una ditta di trasporti ha un software che pianifica automaticamente i viaggi da fare indicando per ogni viaggio cosa caricare, in che ordine, che strada seguire, etc.. in modo da minimizzare la strada percorsa, i tempi di carico e scarico, etc…
Capita però che il programma fornisca soluzioni sub-ottime (cioè, ce nesono di migliori) Il programmatore/venditore vi dice che èun problema che non può essere risolto. E’possibile ?
Sì. Il problema descritto rientra nell’ambito della “programmazione lineare intera”. In problemi di questo tipo, trovare la soluzione ottima può richiedere un tempo lunghissimo. Spesso si preferisce accontentarci di soluzioni approssimate
Franco ScarseliFondamenti di Informatica 2007-088
ENIAC (1946 ca.)ENIAC (1946 ca.)
Franco ScarseliFondamenti di Informatica 2007-089
De fin iam o il vo ca bo lar io De fin iam o il vo ca bo lar io ……
Franco ScarseliFondamenti di Informatica 2007-0810
LL’’
informaticainformatica
fusione delle paroleinformazioneinformazionee automaticaautomatica
èla scienzadellarappresentazione e delldellarappresentazione e dell
’’elaborazione elaborazione delldell
’’informazioneinformazione
non è, quindi, la scienza e la tecnologia dei calcolatori elettronici:il calcolatore èlo strumento che la rende “operativa”
L’elaboratoreelaboratore
(co mp ute r, calc olat ore ) è un’a ppa recc hia tura
digitaledigitale,
elettronicaelettronicaed
automaticaautomaticacap ace di e ffett uare tra sfor ma zion i su i da ti “La dis um anit àd el c om pute r sta ne l fa tto che , un a v olta pro gra mm ato e m ess o in fu nzio ne, si c om port a in m anie ra perf etta me nte on esta ” (Isa ac A sim ov) Co s Co s ’è ’è
ll ’ info rm atic a ’ info rm atic a
Franco ScarseliFondamenti di Informatica 2007-0811
C os C os ’è ’è l l ’ ’ in for m at ic a in for m at ic a - - 2 2 LL ’’ info rm atic a info rm atic a èè lo stu dio sis tem atic o deg li alg oritm i c he lo stu dio sis tem atic o deg li alg oritm i c he des criv ono e tr asfo rm ano l des criv ono e tr asfo rm ano l ’’ info rm azio ne: la loro te oria , info rm azio ne: la loro te oria , ana lisi, pro gett o, e fficie nza , re aliz zaz ion e ana lisi, pro gett o, e fficie nza , re aliz zaz ion e (AC M (AC M
Ass ocia tion Ass ocia tion
forfor Com puti ng Com puti ng Ma chin ery Ma chin ery ))
Not a Not a :È pos sibil e sv olg ere un ’atti vità con cett ualm ente di tipo info rm atic o s enz a l’a usili o d el c alco lato re, per ese mp io nel pro gett are ed app lica re reg ole pre cise per svo lge re ope razio ni aritm etic he con cart a e pen na; l’ela bor ato re, tutt avia , è uno str um ento di calc olo po ten te, che perm ette la ges tion e di qua ntità di info rm azio ni altri me nti i ntra ttab ili
Franco ScarseliFondamenti di Informatica 2007-0812 ProgrammaProgramma
sequenza di operazioni atte a predisporrel’elaboratorealla soluzione di una determinata classe di problemi
AlgoritmoAlgoritmo
sequenza finita di istruzioni attraverso le quali un operatore umanoècapace di risolvere ogni problema di una data classe
OsservazioniOsservazioni
Un programma èla realizzazione di un algoritmoin una forma comprensibile all’elaboratore
Un algoritmo non può essere eseguito su un calcolatore
L’elaboratore tradizionale èunamacchina universale: cambiando il programma residente in memoria, èin grado di risolvere problemi di natura diversa
Alg orit m i e pr og ram m i Alg orit m i e pr og ram m i
Franco ScarseliFondamenti di Informatica 2007-0813
odeno ti llo da (mtturhitei arcllo dodeo mtessutti lo susaVonnnNeumai llo dVonodea (mo mtturNeumahitei arcllo dodenntessutti no tusalo s nali lcolatori tradizioI caI calcolatradizionali tori
))
Il modello di Von Il modello di Von NeumannNeumann
contiene una contiene una memoriamemoria
e e unun
’’unitunit heericperfheericperf elledi cààe dus ontrollon b (CPU), uelleus e dn b), uPU (Contrdi collo
Nella memoria sono registrati i
datidati e la descrizione delle operazioni daeseguire il programmaprogramma
Il programma viene interpretatodall’
unitunit ààdi controllodi controllo
Il bus serve a trasferire i dati fra le altre componenti
L L ’ ’ arc hit ett ura di Vo n arc hit ett ura di Vo n Ne um an n Ne um an n
BUS di sistemaBUS di sistema CPUCPU
tastieratastieramousemousememoriamemoriadi massadi massa monitormonitor MemoriaMemoriacentralecentrale
Periferiche
Franco ScarseliFondamenti di Informatica 2007-0814
La sto ria La sto ria
UNIVAC (1951)UNIVAC (1951)
Palmare (2004)Palmare (2004)
Franco ScarseliFondamenti di Informatica 2007-0815 Molto tempo fa Molto tempo fa …………
30.000 anni faTracce dei primi strumenti per contare
1800−1600 a.C.I primi esempi di algoritmi (procedure di calcolo “automatico”) inMesopotamia su tavolette babilonesi
nel ‘600Pascal e Leibnizaffrontarono il problema di automatizzare il ragionamentologico−matematico e si cimentarono nellarealizzazione di semplici macchine per calcolare
Ce nn i S tor ici Ce nn i S tor ici
Franco ScarseliFondamenti di Informatica 2007-0816 Primi calcolatoriPrimi calcolatori
1833Babbagedefinisce macchina alle differenzemacchina alle differenzeper calcolare e stamparetabelle matematiche.Èil primo esempio di macchina programmabile di utilitàgenerale. Il programma veniva scritto su delle schede perforate, come avveniva per i telai.Introdusse anche l’idea che tutta la macchina fosse controllata da unprogramma. Tali idea rimase un progetto: troppo complessa e critica lasua costruzione per le tecnologie dell’epoca.La prima programmatrice fu Ada Augusta Byron, figlia di George Byron, che ha realizzato i programmi della macchina di Babbage.
Ce nn i S tor ici Ce nn i S tor ici - - 2 2
Franco ScarseliFondamenti di Informatica 2007-0817 1890 HermanHollerithsviluppa la macchina a schede perforatemacchina a schede perforate, per compiere le statistiche del censimento decennale degli Stati Uniti
I dati venivano immessi su schede di cartone opportunamente perforate
Le schede venivano successivamente “contate”e si ottenevano diversi tipi di elaborazioni (totali, medie, statistiche, etc.)
Si impiegarono due anni e mezzo ad analizzare i dati contro i sette anni del censimento del 1880 !!
Primi anni del ‘900La macchina a schede perforate venne utilizzata con successo peri censimentiin Austria, Norvegia e Russia.
1923La societàComputingComputingTabulatingTabulating
RecordingRecording
CompanyCompanyfondata da Hollerithdiviene l’International Business International Business MachineMachine
(IBM
))
Ce nn i S tor ici Ce nn i S tor ici - - 3 3
Franco ScarseliFondamenti di Informatica 2007-0818 Durante la seconda guerra mondialeI tedeschi usano Enigma, una macchina meccanica per codificare imessaggi. Altre macchine vennero usate dai giapponesi.Gli inglesi con il contributo di Alan Turingcostruirono Colossuscon cui riuscirono a decriptare i messaggi tedeschi.
Ce nn i S tor ici Ce nn i S tor ici - - 4 4
Franco ScarseliFondamenti di Informatica 2007-0819 anni ‘40Nascono i primi calcolatori programmabili: i primi esemplari venivanoprogrammati medianteconnessioni elettriche e commutatori (ENIAC,Mark I)
Ce nn i S tor ici Ce nn i S tor ici - - 5 5
ENIAC (1946)ENIAC (1946)
Mark I (1948)Mark I (1948)
Franco ScarseliFondamenti di Informatica 2007-0820 Fine anni ‘40Von Neumannpartecipa alla realizzazione dei primi calcolatori a programma memorizzato(EDSACEDSAC, WhirlwindWhirlwind, IASIAS, UNIVACUNIVAC)
Lo schema dell’architetturautilizzatadai calcolatori attuali èancoraquella di Von Neumann!!
Ce nn i S tor ici Ce nn i S tor ici - - 6 6
EDSAC (1949)
UNIVAC (1952)Whirlwind(1949)IAS (1952)
Franco ScarseliFondamenti di Informatica 2007-0821 Esplosione delldell
’’informaticainformatica
anni ’60-’70Diffusione dei calcolatori a livello mondiale
1981l’IBM introduce un nuovo tipo particolare di elaboratore: il Personal Personal ComputerComputer(PC)La particolaritàdei PC consisteva nell’essere “assemblato”concomponenti facilmente reperibili sul mercato (basso costo)
Ce nn i S tor ici Ce nn i S tor ici - - 7 7
PC IBM (1981)PC IBM (1981)
Franco ScarseliFondamenti di Informatica 2007-0822 attualmentei PC e versioni specializzate di calcolatori sonoutilizzati in tutti i settoriapplicativi:
Telefoni cellulari
Ricevitori satellitari digitali
Bancomat e carte di credito
Lavatrici e forni a microonde
….
Ce nn i S tor ici Ce nn i S tor ici - - 7 7
Portatile e Palmare (2004)Portatile e Palmare (2004)
Franco ScarseliFondamenti di Informatica 2007-0823 La chiave dello sviluppo dell’informatica èstata principalmente legata allaminiaturizzazione dei componenti elettronici
1904, invenzione del tubo a vuototubo a vuoto
1947, il primi transistortransistor
1969, i primi circuiti integraticircuiti integrati
Alc un e t ap pe de llo svi lup po Alc un e t ap pe de llo svi lup po tec no log ico tec no log ico
Portatile e Palmare (2004)Portatile e Palmare (2004)
Franco ScarseliFondamenti di Informatica 2007-0824
In cr em en to d ella v eloc it In cr em en to d ella v eloc it
3GXeon2008800M 1.7G1.6GItanium22006 Itanium400M800Mhz2001 Pentium IV200142M2.5 G 9.5 M500 MhzPentium III1999 Mhz1997Pentium II300 7.5M 1993Pentium66Mhz3.1M 900 K25Mhz804861991 275K16Mhz803861985 8028619826Mhz134.000 29.0005Mhz80861978 2.300400 kHz40041971 enzamodelloannoFrequstorN. transi
àà
Franco ScarseliFondamenti di Informatica 2007-0825
Le gg e d i M oo re Le gg e d i M oo re
Il numero di transistor per chip fornisce una misura della complessita’deicomponenti
La legge di Gordon Moore prevedeva che“Il numero dei transistor per circuito duplichera’ogni 18 mesi”
Attualmente
Il numero dei transistor aumenta 100 volte ogni 10 anni
La velocita’aumenta 100 volte ogni 10 anni
La dimensione degli hard disk aumenta ancora piu`velocemente
In futuro
nel 2020 un transistor sara’costituto da pochi atomi, èpossibile ?
Franco ScarseliFondamenti di Informatica 2007-0826
Le gg e d i M oo re: Le gg e d i M oo re: Tra ns isto r p er pro ce sso re Tra ns isto r p er pro ce sso re
Franco ScarseliFondamenti di Informatica 2007-0827
Le gg e d i M oo re: Le gg e d i M oo re: Ca pa cit Ca pa cit àà
de gli Ha rd dis k de gli Ha rd dis k
Franco ScarseliFondamenti di Informatica 2007-0828 Confronto mente umana e calcolatori tradizionali
La mente umanaècostituita da tante piccole unità(10 11neuroni) interconnesse fra di loro (alto parallelismo)
Un calcolatore tradizionaleècostituito da una (o poche) unitàdi elaborazione (modello di Von Neumann)
McCulloche Pitts(1943) hanno introdotto le reti neurali artificialireti neurali artificialicostituite da molte piccole unità: tale modello èrimasto a lungo in competizione con il modello di Von Neumann
Attualmente
Esistono pochi calcolatori ad alto parallelismo
Le reti neurali artificiali sono prevalentemente simulate con i calcolatori tradizionali
Permettono la realizzazione applicazioni d’intelligenza artificiale basate su apprendimentoda esempi: riconoscimentodel parlato, caratteri manoscritti, ….
M en te um an a e ca lco lato ri p ara lle li M en te um an a e ca lco lato ri p ara lle li
Franco ScarseliFondamenti di Informatica 2007-0829
Ca lco lato ri P ara lle li Ca lco lato ri P ara lle li
CDC 6600 (1963)Illiac(1955)
Cray1 (1976)CrayX1 (2002)
Franco ScarseliFondamenti di Informatica 2007-0830