Laboratorio di Informatica I Struttura della lezione • Il corso di Laboratorio di Informatica I Lezione 1: Introduzione al corso – – – – Vittorio Scarano informazioni logistiche ed organizzazione obiettivi del corso le attività di laboratorio modalità di esame • Introduzione Laboratorio di Informatica I – Cosa è l’informatica (Computer Science) – Alcuni concetti base: Corso di Laurea in Informatica • hardware, software • algoritmi e programmazione Laboratorio di Informatica 1 Informazioni logistiche 2 Organizzazione del corso • Audience: • Lezioni in aula (martedì e giovedì) – studenti la cui matricola termina per 0,2,4,6 • Orario delle lezioni – programmazione: – Martedì ore 15-17 aula C-31 – Giovedì ore 15-17 aula D-19 – Venerdì ore 15-18 Laboratorio L/19 • il linguaggio di programmazione C • Esercitazioni (venerdì) – esercitazioni guidate in laboratorio L/19 • Ricevimento studenti – Martedì, Giovedì Vittorio Scarano ore 12-13.30 studio L1 22 • Altre informazioni: http://www.dia.unisa.it/~vitsca/LAB Laboratorio di Informatica 1 Vittorio Scarano 3 Laboratorio di Informatica 1 Libri di testo (1) Vittorio Scarano 4 Libri di testo (2) Autore: Eric S. Roberts Titolo: “The Art and Science of C” Casa Editrice: Addison Wesley Laboratorio di Informatica 1 Vittorio Scarano Autori: Al Kelley, Ira Pohl Titolo: “C: Didattica e Programmazione” Casa Editrice: Addison Wesley 5 Laboratorio di Informatica 1 Vittorio Scarano 6 1 Laboratorio di Informatica I Modalità di esame Obiettivi del corso • L’esame di Laboratorio si compone di: • Alcuni concetti base sull’Informatica • La programmazione: il linguaggio C – una prova scritta – una prova pratica (in laboratorio) – una discussione orale – fondamenti di programmazione – progettazione ed uso di librerie – tipi di dati composti • Dalla guida dello studente: “L’insegnamento di Laboratorio di Informatica I è coordinato con quello di Programmazione I e la prova d’esame congiunta dei due corsi, corrispondente a 4 unità didattiche, dà luogo ad un unico voto.” Laboratorio di Informatica 1 • Operatività – realizzazione di programmi in C sotto Linux 7 Vittorio Scarano Laboratorio di Informatica 1 Introduzione al corso • • • • “Informatica”? Cosa è l’informatica (Computer Science) La evoluzione dei calcolatori Una classificazione dei calcolatori Alcuni concetti base: = Trattamento automatico delle informazioni – hardware, software – la architettura di un calcolatore – algoritmi e programmazione • compilazione • debugging • software maintenance and software engineering Laboratorio di Informatica 1 Infor matica ! 9 Vittorio Scarano Vittorio Scarano Vittorio Scarano 10 L’abaco La generazione zero: la preistoria La I generazione: le valvole elettroniche La II generazione: i transistors La III generazione: i circuiti integrati La IV Generazione: i circuiti integrati VLSI Laboratorio di Informatica 1 Laboratorio di Informatica 1 Generazione “zero”: calcolatori meccanici La Evoluzione dei Calcolatori • • • • • 8 Vittorio Scarano 11 • L’abaco come strumento per contare – evolutosi in maniera leggermente diversa in: • Babilonia, Cina, Grecia, Impero Romano – tuttora in uso in Cina e Giappone Laboratorio di Informatica 1 Vittorio Scarano 12 2 Laboratorio di Informatica I Generazione “zero”: calcolatori meccanici Generazione “zero”: calcolatori meccanici Strumenti per il calcolo azionati a mano Strumenti azionati a vapore • Wilhelm Schickard (1623): Difference Engine • Babbage (1832): – semplice calcolatore meccanico (Orologio Calcolatore) • Blaise Pascal (1642): Pascaline – – – – – addizionatore – costruito in 50 esemplari • Gottfried Leibnitz (1671): parzialmente realizzata composta di 14.000 pezzi funzionamento a vapore set fisso di istruzioni – moltiplicazioni e divisioni Laboratorio di Informatica 1 Vittorio Scarano 13 Laboratorio di Informatica 1 • Babbage: Analytical Engine (1870) • Un calcolatore è programmabile – macchina programmabile: – assolve compiti diversi a seconda di come viene programmata – quindi, di uso generale (general-purpose) • in grado di eseguire funzioni diverse a seconda di come fosse programmata • Le istruzioni venivano fornite attraverso schede perforate (usate per i telai in Francia da Jacquard) • La macchina: – deve essere istruita sui passi da compiere per risolvere un problema (programmazione) – i programmi vanno inseriti tramite schede perforate – Ada Lovelace Byron: • prima programmatrice della storia – Macchina mai costruita Vittorio Scarano 15 Laboratorio di Informatica 1 Calcolatori Meccanici • Herman Hollerith U.S.A: 16 • I dati vengono inseriti tramite schede perforate: fase di input • Separazione della fase di input da quella di elaborazione: – schede perforate per il censimento (1890) • 200 tonnellate di schede raccolte (2 anni) • 50-220 schede lette al minuto – Necessità della memorizzazione dei dati – Dispositivi di tipo diverso per • inserimento dei dati • elaborazione dei dati – (1896) fonda la Tabulating Machine Company che (1924) diventa la International Business Machine. Vittorio Scarano Vittorio Scarano Considerazioni su .. Il censimento USA Generazione “zero”: calcolatori meccanici Laboratorio di Informatica 1 14 Considerazioni su ... L’Analytical Engine Generazione “zero”: calcolatori meccanici Laboratorio di Informatica 1 Vittorio Scarano 17 Laboratorio di Informatica 1 Vittorio Scarano 18 3 Laboratorio di Informatica I Generazione 0.5: calcolatori elettromeccanici • Howard Aiken (1937-1944): Mark I – – – – Generazione 0.5: calcolatori elettromeccanici • Caratteristiche del Mark I Harvard University Altezza 3 metri, lunghezza 18 metri Peso 5 tonnellate Elettromeccanico : – Input: rotolo di carta perforata – Notazione decimale (23 cifre) • maggiore precisione rispetto a 64 bit! – Alcuni applicazioni: • calcolo integrali • equazioni top-secret provenienti da Los Alamos • 760,000 parti, 3300 relay, 800 Km cavi – Prestazioni: • 3 addizioni/s, 1 moltipl. in 6 s, 1 divisione in 13 s Laboratorio di Informatica 1 Vittorio Scarano 19 Mark I: (1945) il primo “computer bug” Vittorio Scarano Vittorio Scarano 20 I Generazione: le valvole elettroniche (1) Grace Hopper (programmatrice part-time) scrive: Laboratorio di Informatica 1 Laboratorio di Informatica 1 ENIAC (1943-1946) Electronic Numerical Integrator and Computer Applicazioni calcolo balistico 30 tonnellate, 19.000 valvole termoioniche Prestazioni: 5.000 addizioni e 300 moltiplicazioni a dieci cifre, al secondo Input/Output: Schede perforate e Telescriventi 30 unità (di cui 20 addizionatori) funzionanti in parallelo 21 ENIAC: le caratteristiche Laboratorio di Informatica 1 Vittorio Scarano 22 ENIAC: la programmazione... • Dim.: 10 m x 18 m • Controlli • Console per output • Consumo: 180.000 watt • Programmazione attraverso la connessione fisica delle unità • Viene introdotto il salto condizionato (if…then…) Laboratorio di Informatica 1 Vittorio Scarano 23 Laboratorio di Informatica 1 Vittorio Scarano 24 4 Laboratorio di Informatica I Considerazioni su .. ENIAC ENIAC: … ed il debugging • La programmazione: – flusso di esecuzione del programma – diramazioni condizionate falsa vera Condizione “Identificare una valvola difettosa significa controllare 19.000 componenti.” Laboratorio di Informatica 1 Vittorio Scarano 25 Laboratorio di Informatica 1 26 Vittorio Scarano La architettura di Von Neumann I Generazione: le valvole elettroniche (2) EDVAC (1951) Progettato da Von Neumann Dotato di memoria centrale Memoria (1024 parole) Dotato di memoria di massa (20000 parole) Usa la aritmetica binaria ogni elemento può prendere Unità di Controllo valore 0 oppure 1 Unità Aritmetico-Logica Accumulatore Struttura semplice e di facile programmazione Laboratorio di Informatica 1 Flusso dati Segnali di controllo Vittorio Scarano 27 Considerazioni su .. L’EDVAC e la sua architettura Il programma viene memorizzato con i dati Input 28 UNIVAC I Nastri magnetici, stampanti 750,000$ 185,000$ per una stampante Introduzione delle subroutines porzioni di codice riutilizzabile attraverso il Conditional Control Transfer librerie di codice per usi comuni Rappresentazione binaria efficienza ed affidabilità Memoria di massa e memoria centrale Vittorio Scarano Output Vittorio Scarano I Generazione: le macchine commerciali può automodificarsi di facile modifica (programmazione) Laboratorio di Informatica 1 Laboratorio di Informatica 1 Usato dal Census Bureau Elezioni USA 1952: UNIVAC predice la vittoria di Eisenhower su Stevenson nelle proiezioni, contro le analisi di opinione. 29 Laboratorio di Informatica 1 Vittorio Scarano 30 5 Laboratorio di Informatica I I Generazione: le macchine commerciali II Generazione: i transistor IBM 701(1953) 19 esemplari prodotti in 3 anni • 1948: la AT&T inventa il transistor • 1956: MIT TX-0 primo computer con transistor • Primi Sistemi Operativi • Primi Linguaggi di programmazione ad alto livello IBM 650 (1954) 450 esemplari in 1 anno tamburi magnetici per memorizzazione di massa Laboratorio di Informatica 1 Vittorio Scarano – ALGOL, COBOL,FORTRAN 31 Laboratorio di Informatica 1 Vittorio Scarano 32 III Generazione: i circuiti integrati Considerazioni.. • 1967: i primi circuiti integrati realizzano su un unico chip centinaia di transistor • Fairchild Corporation: • I linguaggi di programmazione: – non legati alla architettura della macchina • astrazione del processo • portabilità – di uso più semplice per il programmatore – necessità di traduzione (compilazione) – linguaggi orientati alle applicazioni – unità aritmetica a 8 bit – un accumulatore • Sistemi operativi: necessari per – l’accesso alle risorse della macchina – l’uso efficiente delle risorse Laboratorio di Informatica 1 Vittorio Scarano 33 Laboratorio di Informatica 1 III Generazione: i circuiti integrati 34 IV Generazione: i circuiti integrati VLSI • Sistemi operativi: multitasking • IBM 360: famiglia di sistemi • • • • • • – 6 computer e 40 periferiche compatibili – upgrade Software Hardware • Nasce la Digital Equipment Corporation con i primi mini : – PDP-8 e PDP-11 Laboratorio di Informatica 1 Vittorio Scarano Very Large Scale Integration (VLSI) Migliaia di transistor su chip (anni 70) IBM System/370 VAX 11/780 DEC Cray X/MP (supercomputer) Sistemi Operativi: – VMS di Digital – UNIX di AT&T, BELL Lab. Vittorio Scarano 35 Laboratorio di Informatica 1 Vittorio Scarano 36 6 Laboratorio di Informatica I L’era dei Microcomputer (1) L’era dei Microcomputer (2) • (1969) Intel realizza il 4004: • Mentre la Intel realizza il 4004: – primo chip a racchiudere un processore intero – progettato da Federico Faggin (con altri) – 2250 transistor – parola a 4 bit – 60,000 operazioni al secondo – progenitore di 8008, 8080, 8086 e 8088 Laboratorio di Informatica 1 Vittorio Scarano – La Motorola realizza il 6800, – La Zylog lo Z80 • Steve Jobs costruisce l’Apple I – (assemblato nel garage) è il primo PC • La DEC crea il CP/M, sistema operativo per microcomputer basati su 8080 e Z80 37 L’era dei Microcomputer (3) Vittorio Scarano – basato su Motorola 68000 – innovativa ed intuitiva interfaccia grafica – la nuova filosofia: • “User Friendly” • WYSIWYG: “What you see is what you get” • 1987: la Microsoft – leader a causa dell’uso universale di MS.-DOS – risponde con Windows 1.0, 2.0, 3.0 39 Laboratorio di Informatica 1 Vittorio Scarano 40 L’era di Internet • Le motivazioni: • Rete mondiale che connette milioni di calcolatori • Servizi: – i mainframe sono costosi da mantenere – potenza di calcolo disponibile su scrivania – evoluzione delle reti locali e geografiche – e-mail (posta elettronica) – World Wide Web: sistema ipertestuale per il reperimento di informazioni • La rivoluzione: – da un mainframe con terminali “stupidi” – ad una rete di PC collegati ad un minicomputer • Integrazione tra la rete ed il WWW ed il personal computer Il modello Client-Server Vittorio Scarano 38 • 1984: la Apple lancia il Macintosh L’era dell’Informatica Distribuita Laboratorio di Informatica 1 Vittorio Scarano L’era dei Microcomputer (4) • 1981: IBM crea il suo Personal Computer basato su 8088. • Commissiona il sistema operativo ad una piccola società: la Microsoft che crea MSDOS. • Il PC IBM si impone sul mercato che si converte agli “IBM compatibili” • L’unico concorrente rimane la Apple Laboratorio di Informatica 1 Laboratorio di Informatica 1 41 Laboratorio di Informatica 1 Vittorio Scarano 42 7