cdl ingegneria civile (a-z) - afs.enea.it · claude shannon si laureò con una tesi sull’algebra...
TRANSCRIPT
Elementi di InformaticaCdL Ingegneria Civile (A-Z)
Università degli Studi di Napoli “Federico II”
Docente
Ing. Giovanni Ponti
ENEA – Centro Ricerche Portici
Elementi di Informatica• Orario delle lezioni
• Mercoledì 8:30 – 10:30, Aula SG-T-3• Giovedì 13:30 – 15:30, Aula SG-II-1
• Contatti Docente• Email: [email protected]• Web: http://www.afs.enea.it/gponti• Ricevimento: da stabilire… (e a fine lezione)
Materiale Didattico• Libri di testo
• A. Chianese, V. Moscato, A. Picariello“Alla scoperta dei fondamenti dell’informatica. Un viaggio nel mondo dei BIT”Liguori Editore
• E.Burattini, A. Chianese, V. Moscato, A. Picariello, C. Sansone“Che C Serve?Maggioli Editore (ultimissima edizione)
• Lucidi del corso• Pagina web sul sito del docente
http://www.afs.enea.it/gponti -> Teaching -> Elementi di Informatica (A.A. 2016/2017)
Programma del corso• Parte prima: teoria
• Rappresentazione delle informazioni• Codifica binaria e conversioni• Il modello del calcolatore• Componenti del calcolatore
• Sistemi Operativi• Reti (cenni)
• Parte seconda: programmazione• Algoritmi e Programmi• I linguaggi di programmazione• Struttura dei programmi
• Costrutti di controllo di flusso• I dati• Il linguaggio C++
• Tipi semplici, Istruzioni e controlli di flusso• Funzioni e Metodi• Puntatori e riferimento
• Vettori e Matrici• Stringhe e librerie di utilità
• Parte terza: esercitazioni
Modalità d’esame
• Prova Scritta• Esercizi di programmazione• Domande di teoria (risposta multipla e risposta aperta)
Prenotazione esami su SEGREPASS (appena disponibile)
Introduzione all’Informatica• Cos’è• E’ una scienza?• Quali sono i suoi presupposti teorici? Metodologici?• Breve storia dell’informatica attraverso gli uomini che
ne sono stati protagonisti• Nella storia dell’informatica ci sono protagonisti
provenienti da ambienti diversi, sicuramente molti ingegneri, ma anche tanti filosofi, matematici e fisici.
PRIMI STRUMENTI di PRIMI STRUMENTI di CALCOLOCALCOLO
le prime macchine di calcolo sono state indubbiamente le ditadita e già per questo strumento di calcolostrumento di calcolo
esistevano vari metodi
nel 1000 Gerbert d’AurillacGerbert d’Aurillac, Papa Silvestro II, rivoluzionò l’abaco romano sostituendo i dischetti con sfere su cui erano riportate le
cifre arabecifre arabe disposte su 3 file rappresentanti i tre ordini decimali tre ordini decimali consentendo la contabilità delle aziende del tempo, ebbe tale successo che
fino al Rinascimento i contabili venivano detti “gerberisti
il primo dispositivo artificiale è stato l’abacoabaco le cui prime testimonianze risalgono al 3.000
a.C., inizialmente una tavoletta con della sabbiasabbia sopra sulla quale venivano scritti i conti, fino al pallottolierepallottoliere,
comune a molte civiltà
John NAPIERJohn NAPIER
nel 1617 pubblica RABDOLOGIAE RABDOLOGIAE
in cui illustra un meccanismo per
eseguire le 4 operazioni
moltiplicazione e divisione venivano trattate come addizione e sottrazione
1111 bastoncinibastoncini divisi in 1010 quadratiquadrati
tagliati da una diagonale a sinistra la cifra per le decine a
destra la cifra per le unità
a partire dai “bastoni neperiani” si può già parlare di macchine addizionatricimacchine addizionatrici
furono realizzate nel tempo in varie fogge e tipologie, ma in comune hanno la caratteristica che la moltiplicazione e la divisione
vengono realizzate come addizioni e sottrazioni ripetute
Blaise PASCALBlaise PASCAL nel 1642 realizza
per il padre esattore una addizionatrice-sottrattrice addizionatrice-sottrattrice per
numeri interinumeri interi con meccanismo per i riportiriporti
sistema di 6 (8) ruote per unità, decine, centinaia ecc.
azionate con una bacchetta
la sottrazione viene eseguita come addizione dei numeri complementari
G. Willhelm LEIBNIZG. Willhelm LEIBNIZ
nel 1671 progetta il traspositoretraspositore
meccanismo che consente di accumulare nel totalizzatore la stessa cifra più volte
per semplificare l’esecuzione di moltiplicazione e divisione
nel 1694 viene realizzata la prima prima calcolatricecalcolatrice
a causa di imprecisioni nel meccanismo il funzionamento non
risultava corretto
Charles BABBAGECharles BABBAGE
nel 1823 iniziò a progettare
Difference EngineDifference Engine
una macchina che doveva produrre le tavole numerichetavole numeriche usate da scienziati, ingegneri,
contabili, piloti, ecc., senza errori servendosi del metodo
delle differenze finite,
dopo 10 anni abbandonò l’idea
nel 1834 si dedicò ad un progetto più grandioso
Analytical EngineAnalytical Engine
progenitrice dei calcolatori elettronici
ospitava nel suo interno un “mulino” e un “magazzino”
accettava numeri fino a 50 cifre e dare risultati fino a 100 cifre
stampabile, graficabile
poteva essere programmata mediante
schede perforate schede perforate
neanche questa fu realizzata
1847 George BOOLE scrive le prime relazioni tra matematica e logica, che saranno la base dei circuiti elettronici del computer.
Hermann HOLLERITHHermann HOLLERITH
nel 1889 brevettò un sistema per la registrazione dei datiregistrazione dei dati
necessari i calcoli statistici del censimento statunitense del
1890 mediante la perforazione di bande di cartabande di carta
• una perforatrice manualeuna perforatrice manuale• una selezionatrice totalizzatriceuna selezionatrice totalizzatrice
nel 1896 fondò la Tabulating Machine CompanyTabulating Machine Company
che nel 1924 diventerà IBMIBM
STRUMENTI ANALOGICISTRUMENTI ANALOGICI
i compassi di proporzionecompassi di proporzione ed i regoli calcolatoriregoli calcolatori sono da considerarsi analogici perché non operano direttamente sui numeri, ma su linee che riportano
scale lineari, esponenziali e logaritmiche
sono da considerarsi analogici anche gli strumenti per il calcolo grafomeccanico calcolo grafomeccanico per la misurazione delle aree tra questi i più semplici sono i planimetri planimetri
nel planimetro a rotazioneplanimetro a rotazione una rotella ruota su un disco rotante, una punta percorre il contorno della
figura mentre un’altra percorre spazi proporzionali
Vannevar BUSHVannevar BUSH
matematico ed ingegnere all’MIT tra il
1927 ed il 1930 realizzò il primo analizzatore analizzatore
differenzialedifferenziale per la soluzione di
equazioni differenzialiequazioni differenziali
era guidato da motori elettrici ma le operazioni venivano
risolte meccanicamente
CALCOLATORI ANALOGICI CALCOLATORI ANALOGICI ELETTRONICIELETTRONICI
furono realizzati per simulare le caratteristiche di aerei supersonici, missili, veicoli spaziali
possono essere già definiti COMPUTER anche se eseguono i calcoli su variabili continue e non discrete i numeri positivi sono
rappresentati da voltaggi positivi i negativi da voltaggi negativi
costituiti da una serie di blocchi costruttivi in grado di eseguire operazioni matematiche su voltaggi di
corrente continua
ELABORATORI ELABORATORI ELETTROMECCANICIELETTROMECCANICI
le macchine da calcolo a schede perforate avevano conquistato il mondo degli affari
ma scienziati ed matematici continuarono le loro ricerche per realizzare macchine in grado di eseguire
calcoli complicati nel minor tempo possibile
gli elaboratori elettromeccanicielaboratori elettromeccanici costituiscono l’anello di congiunzione tra le calcolatrici meccaniche
ed i computer elettronici
Konrad ZUSEKonrad ZUSE
nel 1936 pensò di utilizzare i relé telefonicirelé telefonici
in una macchina da calcolo
costituì nel salotto dei genitori il primo
calcolatore elettromeccanico
Z1Z1
rappresentazione binaria e controllo programmato con
nastro perforato
COLOSSUSCOLOSSUS nel 1943 a Londra fu
realizzato COLOSSUSCOLOSSUS
primo calcolatore elettromeccanico
britannico decodificava i messaggidecodificava i messaggi
tedeschi criptati con ENIGMAENIGMA
era in grado di trattare 5.000 caratteri al secondo e decifrare 4.000 messaggi al giorno
per ogni lingua
L’ ELETTRONICAL’ ELETTRONICA
nel 1939 il matematico Vincent ATANASOFFVincent ATANASOFF per primo costruì “qualcosa” che non utilizzava nessuna parte meccanica e che procedeva ad una velocità mai vista prima
da allora furono costruiti elaboratorielaboratori, calcolatrici da tavolocalcolatrici da tavolo e da tascada tasca, personal computerpersonal computer,
palmari ……palmari ……
valvole (tubi a vuoto), transistor, circuiti integrati sono le tecnologie che hanno permesso velocità
sempre maggiori in spazi sempre minori
Vincent ATANASOFFVincent ATANASOFF
nel 1939 realizzò con il suo allievo Berry un
prototipo
ABC ABC Atanasoff - Berry Atanasoff - Berry
ComputerComputer
utilizzava solo valvole
i dati venivano immagazzinati in una batteria di
condensatori elettrici montati su tamburi rotanti
ENIACENIACElettrical Numerical Integrator and Elettrical Numerical Integrator and
CalculatorCalculator presentato nel 1946
era stato progettato da
J.P. ECKERT e J.P. ECKERT e J. W. MAUCHLYJ. W. MAUCHLY
gli stessi che stavano progettando UNIVAC
utilizzato per calcoli balistici, ricerca sui raggi
cosmici e sull’energia nucleare
John Von NEUMANNJohn Von NEUMANN
nel 1945 progettò alla Princeton University
EDVAC EDVAC Electronic Discrete Electronic Discrete Variable Automaic Variable Automaic
ComputerComputer
prototipo dei moderni elaboratori
per la prima volta le istruzioni di funzionamento
erano espresse come numeri
Claude Claude SHANNON SHANNON
si laureò con una tesi sull’algebra di Boole ed il suo utilizzo
nell’ottimizzazione dei circuiti di commutazione
nel 1948 pubblicò la rivoluzionaria “the mathematical theory of the mathematical theory of
communicationcommunication”
il suo grande merito sta nell’aver capito che il contenuto dell’informazione è
indipendente dal contenuto del messaggio, ma è in relazione al
numero di unità elementari necessari per codificarlo
Alan M.Alan M. TURINGTURINGfu il primo ad introdurre il
concetto di algoritmoalgoritmostudiò le relazioni tra
macchine e natura preparando il terreno
all’intelligenza artificialeall’intelligenza artificiale nel 1936 pubblicò
“studio dei numeri studio dei numeri computabilicomputabili” ipotizzando uno
strumento straordinario una
“macchinamacchina” in grado di eseguire qualsiasi
funzione computazionale
19501950 nel 1950 l’industria dei
computer compiva 4 anni
l’informatica iniziava ad avere
influenza sulla vita dell’uomo comune
““l’uomo può l’uomo può costruire il costruire il
superuomo?”superuomo?”
19511951 UNIVACUNIVAC
anno in cui i computer iniziano ad essere utilizzati anche da
utenti paganti
il debutto commerciale si ebbe con UNIVACUNIVAC
Universal Automatic ComputerUniversal Automatic Computer
primo computer programmabile adatto alle aziende
la prima fu la General Electric
dal 1951 al 1957 ne furono venduti 46 al prezzo di 1.000.000 $
19531953 Modello 701 Modello 701 IBMIBM
Thomas WATSONThomas WATSON jr.
sfrutta quanto appreso in un laboratorio delle Forze Armate americane e
determina il mutamento della IBM
dalle tabulatrici ai calcolatori
19541954 FORMULAS FORMULAS TRANSLATORTRANSLATOR
ovvero tradurre comandi e istruzioni in linguaggio
macchina
Grace HOPPERGrace HOPPER realizza A-O
il primo compilatore
John BACKUSJohn BACKUS, matematico, ebbe il via libera
dall’IBM per realizzare un formulas traslator specifico per
formule matematiche indirizzato alla clientela
tecnico-scientifica
nascerà il FORTRAN
19581958 CIRCUITI INTEGRATICIRCUITI INTEGRATI
J. LAST, J. BLAHK, E. KLEINER, R. J. LAST, J. BLAHK, E. KLEINER, R. NOYCE, G. MOORE, J. HOERNI, NOYCE, G. MOORE, J. HOERNI, S. ROBERTS, V. GRINICK S. ROBERTS, V. GRINICK
gli 8 scienziati e tecnici della FAICHILD SEMICONDUCTORS
con un finanziamento di 3.500 $ costruirono dal niente le apparecchiature che gli
permisero di produrre circuiti integrati di silicio
19591959 COBOLCOBOLCOmmon Bussiness Oriented COmmon Bussiness Oriented
LanguageLanguage
la CODASYL COnference of DAta SYstem Language
viene incaricata di sviluppare le specifiche di un nuovo linguaggio
indipendente dalle strutture hardware, semplice e comprensibile al
personale amministrativo delle aziende
successo immediato… a parte il problema del baco del
millennio
19601960 SABRESABRE la America Airlines con l’IBM
lancia il progetto per un sistema che gestisca le
prenotazioni aeree sulla base di SAGE
Semi Automatic Ground Environment sistema di allarme e guida dei caccia
intercettori e dei missili antiaerei realizzato dall’ MIT per la difesa USA
investimento di 150 milioni di $
mancavano programmatori, reclutati e addestrati i migliori utenti della
stessa A.A.
19621962 BUSINESS e ACCADEMIABUSINESS e ACCADEMIA
Ross PEROTRoss PEROT fonda la EDS
Electronic Data System
nasce un nuovo tipo di azienda informatica: contratto onnicomprensivo, tempi e costi
prestabiliti, assistenza a lungo termine
Felix HAASFelix HAAS istituisce il primo corso di laurea in
COMPUTER SCIENCES
presso la facoltà di matematica della Purdue University nell’Indiana
il primo anno gli iscritti furono 24 circa
19631963 ASCII ASCII American Standard Code American Standard Code
for Information for Information InterchangeInterchange
Robert BEMERRobert BEMER scrive la prima lingua universale per rappresentare i caratteri
mettendo fine alla babele dei 60 codici esistenti
ci vorranno 18 anni perché lo standard prenda piede
sostituendo l’ EBCDIC in uso sulle macchine IBM
19651965PACKET SWITCHINGPACKET SWITCHING
Paul BARANPaul BARAN lavorando alla RAND al progetto commissionato dall’ARPA per una rete a prova di attacco nucleare capisce che la suddivisione dei
dati in “pacchetti” era la soluzione
Donald DAVIESDonald DAVIES sovrintendente della Divisione Informatica del
National Physics Laboratory era arrivato alla stessa conclusione
19661966 PRIMO COMPUTER PRIMO COMPUTER
HEWLETT-PACKARDHEWLETT-PACKARD
l’ HP 2116AHP 2116A nasce per automatizzare la raccolta e
l’elaborazione dei dati provenienti dalle altre apparecchiature HP
la sua architettura era compatibile con altre apparecchiature mediante collegamenti con interfacce
questo lo rendeva utilizzabile anche al di fuori della HP
HP diventerà industria informatica solo nel ‘75
19671967MOUSEMOUSE
Doug ENGELBARTDoug ENGELBART ricercatore presso lo SRI
Stanford Research Institute
presenta la richiesta di brevetto per un
“individuatore di posizione x-y per un sistema di
visualizzazione”
19681968 INTELINTEL
Gordon MOORE e Gordon MOORE e Robert NOYCE Robert NOYCE
due dei fondatori della FAIRCHILD SEMICONDUCTORS
fondarono la INTEL INTEL
DEVELOPMENT CORPORATIONDEVELOPMENT CORPORATION
nasceranno i CHIP al silicio
19701970 CODICI A BARRECODICI A BARRE
negli USA le grandi catene di distribuzione ed i produttori
alimentari sentono l’esigenza di risparmiare tempo e costi
istituito un codice unificato
fu scelto il CODICE A BARRECODICE A BARRE
proposto dall’ IBM
19701970
Edgar CODD Edgar CODD introduce il concetto di “database relazionaledatabase relazionale”
Gene AMDAHLGene AMDAHL fonda la AMDAHL
costruisce mainframe compatibili IBM
HONEYWELLacquisisce la divisione IT di General Electric
19711971 FLOPPYFLOPPY
Al SHUGART e Al SHUGART e David NOBLE David NOBLE
realizzano il FLOPPY da 8 polliciFLOPPY da 8 pollici capacità 80
Kb
commissionaria la IBM per risolvere un
problema dati sull’ S/370
19711971
Niklaus WIRTH Niklaus WIRTH crea il PASCAL PASCAL
F.FAGGINI, T.HOFF e S.MAZER F.FAGGINI, T.HOFF e S.MAZER
producono il primo microprocessore INTEL INTEL il 4004 4004
4000 transistor architettura interna a 4 bit
19721972
Dennis RITCHIE nei Bell Labs sviluppa il
linguaggio “C” su UNIX
Seymour CRAY
lascia la CDC e fonda CRAY RESEARCH
19731973 ETHERNETETHERNET
Bob METCALFEBob METCALFE ricercatore nei PARC XEROX
realizza una rete interna per collegare tutte le postazioni alla
nuova stampante laser
il metodo fu chiamato CSMA/CD Carrier Sense Multiple
Access / Collision Detection
la rete fu chiamata ETHERNET in onore dell’ “etere luminifero”
19751975 MICROSOFTMICROSOFT Robert ALLENRobert ALLEN
ingegnere alla Honeywell e William GATESWilliam GATES
studente ad Harvard fondano Traf-O-Data
software house per programmi in BASIC
scrissero un interprete BASIC per ALTAIR
Larry ROBERTSLarry ROBERTS
fonda Telenet Communications
Corp.
19761976 APPLEAPPLE Steve JOBS e Steve JOBS e
Steve WOZNIAKSteve WOZNIAK fondano la
Apple ComputerApple Computer per poter commercializzare un
microcomputer su scheda fatto in casa
vendettero i primi APPLE I in scatole di montaggio
a 666,66 $
furono invitati al “PC 76” dovettero anticipargli i
soldi per il viaggio e l’albergo
19801980 R.I.S.C. R.I.S.C. Reduced Instruction Set Reduced Instruction Set
Computer Computer
David PATTERSONDavid PATTERSON professore alla Berkley
ottiene fondi dalla ARPA per sviluppare RISCRISC chip con un set di istruzioni ridotto
fu prodotto dalla HP
contemporaneamente IBM studiava segretamente come applicare tecniche architetturali scientifiche a macchine di uso generale
19811981 DOS DOS
IBM progetta un PC ad architettura aperta
Philip ESTRIDGE Philip ESTRIDGE vicepresidente, contatta
DR per il sistema operativo
caso vuole che un aereo ritardi
Paul ALLENPaul ALLEN non perde l’occasione
nasce PC DOS 1.0 MICROSOFTPC DOS 1.0 MICROSOFT
12 agosto presentato il primo PC IBM
su un chip 8088 a 4,77 MHz
19821982 S.U.N.S.U.N.
Bill JOY Bill JOY guru della UNIX proveniente da
Berkeley con S. McNEALY, S. McNEALY, A. BECHTOLSTEIN e A. BECHTOLSTEIN e
V. KHOSLA V. KHOSLA fondano S.U.N. S.U.N.
Stanford University Network
produssero hardware a basso costo su un chip MOTOROLA
68000 con software BSD UNIX le prime
macchine con porta Ethernet standard
19831983 LOTUS e WORD LOTUS e WORD
Mitch KAPORMitch KAPOR rinuncia a VisiCalc e fonda la LOTUS DEVELOPMENT
esce LOTUS 1 2 3LOTUS 1 2 3
MICROFOFT MICROFOFT presenta WORDWORD
un word processor rivoluzionario
R. CANION, J. HARRIS e R. CANION, J. HARRIS e B. MURTO B. MURTO
lasciano la T.I. e fondano COMPAQ ComputerCOMPAQ Computer
19841984 MACINTOSHMACINTOSH
Jeff RASKINJeff RASKIN in APPLE crea il concetto di “oggetto click & drag”
e lo chiama Macintosh
Steve JOBSSteve JOBS gli toglie la direzione del
progetto
esce il primo MACMAC con soli 128 KB di RAM
19851985 C + + C + +
Bjarne STROUSTRUP,Bjarne STROUSTRUP, dei Bell Labs, nel ’79 aveva inventato per
sé C++, C++, linguaggio di simulazione più sofisticato degli esistenti
nell’85 la AT&T lo rende disponibile alle università senza garanzie
dal ’90 è il linguaggio a più elevato ritmo di diffusione
19911991 LINUX LINUX
Linus TORVALDSLinus TORVALDS studente all’Università di
Helsinky, stanco del poco tempo macchina sul microVAX
dell’ateneo con s.o. MINIX, scrive LINUXLINUX
lo mette a disposizione secondo le regole del public domain
nel 94’ rilasciato LINUX 1.0 perfettamente funzionante grazie al lavoro di migliaia di programmatori
19921992
al CERN di Ginevra nasce il primo serverserver World Wide Web
TANDY presenta il primo CD-ROM CD-ROM per PC
Microsoft presenta VISUAL BASIC VISUAL BASIC
19941994 INTERNETINTERNET
Jim CLARK e Jim CLARK e Marc ANDREESSEN Marc ANDREESSEN fondano
NETSCAPE NETSCAPE CommunicationsCommunications
Jerry WANG e David FILOJerry WANG e David FILO creano
un database di siti YAHOOYAHOO
Jeff BEZOSJeff BEZOS crea una libreria on-line
AMAZONAMAZON
Rob GLASERRob GLASER crea Real NetworksReal Networks
19951995 JAVA JAVA
James GOSLINGJames GOSLING
nel ’91 aveva creato per la
SUN un linguaggio di
programmazione per i video-on-demand
OAKOAK
nel ’94 l’idea di utilizzarlo su INTERNET
da allora JAVAJAVA è storia
19961996 DATABASE IBRIDIDATABASE IBRIDI
nascono per rispondere alle esigenze di grandi aziende
che gestiscono dati di diverso genere
Oracle, Informix e IBM creano Universal ServerUniversal Server
Sybase crea Adaptive ServerAdaptive Server
19971997 E.R.P. E.R.P. Enterprise Resource Enterprise Resource
PlanningPlanning
sistemi integrati per l’automatizzazione delle
funzioni di finanza, amministrazione e gestione delle risorse per le aziende
un database per i dati un motore transazionale per gestire le applicazioni e moduli applicativi per le varie funzioni