CdL Ingegneria Civile (A-Z) - afs.enea.it · Claude SHANNON si laureò con una tesi sull’algebra...

61
Elementi di Informatica CdL Ingegneria Civile (A-Z) Università degli Studi di Napoli “Federico II” Docente Ing. Giovanni Ponti ENEA – Centro Ricerche Portici

Transcript of CdL Ingegneria Civile (A-Z) - afs.enea.it · Claude SHANNON si laureò con una tesi sull’algebra...

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