Fondamenti di informatica - presentazione FONDAMENTI DI INFORMATICA di Matjaz Hmeljak 1 Fondamenti di informatica - presentazione QUESTA PRESENTAZIONE .. orario lezioni, ricevimento, .. .. finalita', contenuto .. piano del corso .. dove sta il corso .. modalita' esame .. bibliografia .. dati e storia .. storia "locale" 2 fondamenti di informatica - presentazione orario lezioni: MA 11-13 ME 10-11 GI 11-13 per comunicare con il docente: tramite posta elettronica (e-mail), indirizzo: [email protected] orario ricevimento: Martedi' 13-14 e Giovedi’ 13-14, dove: stanza di Matjaz Hmeljak, al DEEI (Dipart. Elettronica, Elettrotecnica, Informatica) Edificio C3 (parte nuova vicino il bar di ing) 2.o piano, stanza 209, tel. 676 71 32 3 fondamenti di informatica - presentazione 4 materiale su internet: ftp : // serving4.units.it / arc_stud / hmeljak / (il tutto senza spazi!!) dove si trovano: aainformazioni testo di informazioni varie introduzione = questo materiale (i capitoli iniziali, formato ppt) partec = materiale per la programmazione in C++ (contiene i testi dei programmi in C++) i testi degli esami scritti degli ultimi 10 anni Fondamenti di informatica - presentazione 5 FINALITA' DEL CORSO : * nozioni generali sull' informatica e sugli ambienti di uso e di programmazione dei calcolatori * conoscenza pratica della programmazione cioe’ capacita' di risolvere problemi elementari con l'uso di un linguaggio di programmazione e di algoritmi (“ricette”) imparati durante il corso limitatamente alla parte: istruz,sottoprogr,tabelle * uso pratico del calcolatore ... per varie altre cose Fondamenti di informatica - presentazione Contenuto [previsto] del corso di Fondamenti di informatica 1 6 AA 2002/2003 60 ore (circa 40 ore lezioni, 15 ore esercitazioni, 6 ore test) a) introduzione: informazione, codici, numeri interi e in virgola mobile, ( 6 ore circa ) il sistema di elaborazione dati: “ambienti” hardware e software ( 6 ore circa / tot 14 ) b) algoritmi (alcuni) e strutture dati (poche) e programmazione in linguaggio C++ (quanto basta) ( 30 ore ) e… Fondamenti di informatica - presentazione 7 Continua contenuto del corso di Fondamenti di informatica 1: ... ancora: e ) esercitazioni: uso: sistema operativo MS.Windows, sistema di sviluppo programmi Borland Builder il linguaggio C++ (13 ore/tot 57) f) 3 test in aula (6 ore ) ... come spiegato meglio di seguito fondamenti di informatica - presentazione non entrano nel corso: 8 basi di dati scrittura e impaginazione tabelle e fogli elettronici (excel) programmazione visual reti di calcolatori, sistemi distribuiti,internet games, programmazione di rete programmazione in linguaggio macchina, microcodice, controllo di processi confronto con altri linguaggi di programmazione procedurali – come Basic,Cobol,Fortran, Java,Modula, Pascal, ecc linguaggi funzionali e logici come Lisp, ML, Prolog,Scheme, ..ecc fondamenti di informatica - presentazione 9 e ancora, non entrano nel corso: robotica sistemi esperti, reti neurali, sistemi decisionali, sicurezza dei programmi, sicurezza dei sistemi distribuiti robustezza, virus, grafica (Autocad, PhotoShop..), sistemi per produzione video, Progettazione Generativa, sistemi multimediali e virtuali, informatica musicale, informatica teorica e limiti dell’ informatica e molte altre cose... fondamenti di informatica - presentazione ... 10 l’informatica (gia' dal 1960 almeno) e’ troppo vasta per un corso solo... anzi, per una persona singola mentre 40 anni fa una persona poteva conoscere tutti gli argomenti dell’informatica (almeno superficialmente), da molto tempo questo non e’ piu’ possibile ... vedi i libri "fondamenti di informatica" ... anche quelli con 800 pagine e piu' trattano in genere solo la parte "nozioni di cultura informatica generale" e non la parte di programmazione, o l'uso effettivo di applicativi Fondamenti di informatica - presentazione 11 * cosa si dovra’ sapere di informatica tra 4 anni ? (+) ... * il sapere nuovo si fonda sul sapere precedente: buona parte delle cose che studieremo saranno ancora utili ... * essenziale: imparare ** come si risolvono problemi “complicati”, ** come si studiano cose nuove... ** a lavorare da soli, anche se all'inizio – specie per chi ha difficolta' – conviene studiare in 2 o 3 Fondamenti di informatica - presentazione il materiale del corso e' disponibile in rete e/o in fotocopia (versione “vecchia” dell’anno scorso... ma valida al 90 % ) il laboratorio di informatica di facolta' che useremo e' collegato al calcolatore "serving4" della facolta', dove sono memorizzate informazioni riguardo piani di studio, corsi, orari ecc, e e dove si trova anche il materiale del nostro corso (versione nuova) 12 Fondamenti di informatica - presentazione 13 DA RETE (con ftp o Netscape, Explorer ecc): http://univ.trieste.it/ e poi vedere didattica, fac.ingegneria, servizi, ftp://serving4.univ.trieste.it/arc_stud/ e si arriva a questo materiale... ftp://serving4.univ.trieste.it/arc_stud/HMELJAK/ molti corsi di fondam.di informatica hanno il materiale (in tutto o parziale) in rete, (provare AltaVista, o altro sistema di ricerca su rete con le parole chiave “corso fondamenti informatica” es: www.ing.unipi.it/~ing_ele/fondinf.htm www.ingchim.ing.uniroma1.it/clic/programmi/ fondinfo.html jeeves.cs.unitn.it/fondaminform/diario10.97.html ecc Fondamenti di informatica - presentazione 14 materiale in rete di questo corso: ftp://serving4.units.it/arc_stud/hmeljak/… su server della facolta’ serving4 archivio studenti arc_stud sottoarchivio Hmeljak testo aainformaz.fi sottoarchivi: introduzione e partec la parte introduttiva del corso (questa, poi codici, numeri, grammatiche) e' in formato "Powerpoint" (non e' un testo Word o simili, nemmeno testo ASCII semplice contiene informazioni sul formato delle dias e delle immagini .... ) Fondamenti di informatica - presentazione 15 serving4 arc_stud hmeljak introduzione (in formato "Powerpoint" ) APRESEN.PPT BCODICI.PPT CNUMERI.PPT DAMBHW.PPT DAMBSW.PPT fotocopie in versione 6 dias per pagina coop vicino al bar di legge (versione qualche anno fa) fondamenti di informatica - presentazione 16 parte linguaggio di programmazione – nel corso FI1 usiamo il linguaggio C++ SOLO la parte base SENZA classi ed oggetti e SENZA ambiente visuale; faremo istruzioni, sottoprogrammi, tabelle il sistema C++ e’ installato su server in piu' versioni; useremo il Borland Builder 4 (ma per il corso basta il TurboC 3.1 ( nato su DOS nel 91... per lavorare con esso basta un PC / 486, valore commerciale 20 euro ;-) NON e' indispensabile avere una macchina a casa, ma E' ESSENZIALE lavorare su una macchina e provare tutti gli esercizi sul calcolatore fondamenti di informatica - presentazione 17 su PC: basta il Borland C++ versione 3.1 (DOS,W95) si trova in serving4/arc_stud/hmeljak/ basta un PC / 486 per lavorare con questo ..., (meglio: il Borland Builder - si trova su rete la versione demo) oppure MS C++ (Visual C) .... su MAC: Metrowerks C++ o Symantec C++ (www.metrowerks.com) su UNIX o LINUX: GCC (GNU C Compiler), il sistema Borland, esistono varie versioni con interfaccia grafica Fondamenti di informatica - presentazione * MODALITA’ DI ESAME DI F.I. caso 1) : -> test intermedi previsti 3 test a distanza di un mese circa <<==== conviene fare l'esame in questo modo ! warning: NON previsti dei test di recupero 18 Fondamenti di informatica - presentazione 19 CONSIGLIO ovvero AVVISO ovvero NOTA BENE: ->> conviene fare i test intermedi: in gennaio avete GIA` fatto l’esame di informatica ... MA: ( storia che si ripete ) quasi tutti gli studenti fanno il primo test, 2/3 degli studenti fa il 2.o test, 3/5 fa tutti i test ... Fondamenti di informatica - presentazione NOTA IMPORTANTE: conviene seguire fin dall’inizio LEZIONI e ESERCITAZIONI ... attenzione sara' banale ;-) ma ... >> NON basta essere presenti in aula << e’ necessario tenersi aggiornati, fare esercizi alla fine del corso, anche coloro che non hanno mai toccato una tastiera e non sanno nulla di calcolatori saranno in grado risolvere qualche semplice problema con un programma 20 Fondamenti di informatica - presentazione 2) Caso due: se non segui le lezioni e/o se non fai i test positivi: modalita’ “classica” ovvero esame standard negli appelli regolari: inverno / 3 appelli gennaio / febbraio estate autunno / 3 appelli giugno / luglio / 2 appelli settembre altri appelli in periodi di lezione: riservati agli studenti fuori corso 21 Fondamenti di informatica - presentazione esame standard: prova scritta (vale SOLO per 1 appello; prova orale (su tutta la materia del corso) attenzione: richiesto: nozioni di fondamenti di informatica conoscenza pratica effettiva di programmazione (C o equivalente) 22 Fondamenti di informatica - presentazione BIBLIOGRAFIA: 1) per la parte introduttiva: QUESTO STESSO MATERIALE e/o qualunque libro tipo “ fondamenti di ... elementi di ... introduzione all’... informatica", (senza la parte programmazione) ad esempio: "Introduzione all’informatica", di Paolo Tosoratti, ed.Ambrosiana,1998, 48.000 lire, 400 pagine, "Informatica" di G.Vercelli e R.Zaccaria, 1998 Editoriale Scientifica, 40.000 lire oppure ancora: “Informatica di base” di D.Curtin,K.Foley, K.Sen, C.Morin, McGraw Hill It., 1999, 49.000 lire [suggerimento: andare di persona in una libreria e prendere un libro del genere secondo i gusti personali ...] 23 Fondamenti di informatica - presentazione 2) bibliografia per la parte programmazione ... IL MATERIALE CHE STA NELLA CARTELLA "PARTEC" serving4.../arc_stud/hmeljak/partec/... libri sulla programmazione in C++: Schildt (noi ne facciamo 1/3) Crivellari, Domenici Frosini, (sconsigliato: Kernigan Plaugher ) e / o libri …da consultare : Aho Ullmann (ottimo: parte principale algoritmi) Wirth (Algoritmi + Strutt.dati = Programmi 24 Fondamenti di informatica - ambienti HW e SW Gli ambienti dell’Informatica hardware computer periferiche rete (network) (non trattato qui) software sistema operativo linguaggi di programmazione interfacce di lavoro applicazioni (non trattato qui) 25 Fondamenti di informatica - ambienti HW e SW 26 un calcolatore elettronico e’ una macchina (un sistema) per memorizzare / elaborare / organizzare / accedere a “informazioni” sentire (leggere,ascoltare, ...) dei segnali in ingresso / emettere (scrivere,disegnare, ...) dei segnali in uscita il tutto in base a sequenze di istruzioni prememorizzate dette “programmi” Fondamenti di informatica - ambienti HW e SW un calcolatore e’ fatto da molte (+) parti in parte componenti “fisici” (hanno un volume, un peso, funzionano con una certa velocita’, consumano corrente, si guastano, ...) detti HARDWARE (*) in parte componenti di informazione, non fisici, come programmi e dati, (si trasmettono, si copiano, si eseguono, si modificano, ...) detti SOFTWARE ------------------------------------------------------------------------------------- (*) inglese: ferramenta (+) milioni... 27 Fondamenti di informatica - presentazione calcolatore = macchina, puo’ fare molte cose: MA sempre eseguendo istruzioni ( istruzioni macchina, abbastanza semplici), l’insieme delle istruzioni sono i programmi - un calcolatore fa qualcosa SOLO eseguendo dei programmi l’ insieme dei programmi = SOFTWARE esecuzione realizzata dai componenti “fisici” (hanno un volume, un peso, funzionano con una certa velocita’, consumano corrente, si guastano, ...) = HARDWARE 28 IL RUOLO DEL CALCOLATORE 29 Fase di Sviluppo e Implementazione della Soluzione ALGORITMO PROGRAMMA Linguaggi di Programmazione Dominio del Problema PROBLEMA DA RISOLVERE Conoscenze necessarie all’utente Ambiente Operativo Fase Esecutiva DATI RISULTATI ...principalmente esecutivo uso del calcolatore un calcolatore (HW e SW) 30 puo’ essere usato * come strumento di lavoro, ad es. come macchina di gestione di immagini (“macchina” Photoshop) oppure per gestire testi (“macchina” Word) o scrivere musica (“macchina" Finale) -->> uso da UTENTE * come strumento per fare strumenti, cioe’ per fare programmi nuovi, (“macchina” C++) -->> uso da PROGRAMMATORE IL RUOLO DELL’UTENTE Un UTENTE è colui che impara a utilizzare il calcolatore in un certo dominio di problemi (contesto di lavoro) con i programmi “relativi” al dominio che sono forniti “a corredo” del calcolatore stesso. Esempio: AUTOMAZIONE DI UFFICIO – rete di PC con stampanti e altre perifiche collegate – interfaccia a finestre – programmi di videoscrittura integrati con fogli elettronici e basi di dati L’utente lavora su un problema con uno strumento = la macchina estesa = il calcolatore (HW+SW) 31 IL RUOLO DEL PROGRAMMATORE il progetto di un sistema, lo sviluppo degli algoritmi, l’assemblaggio dei pezzi gia’ disponibili la scrittura dei pezzi nuovi e la trasformazione del tutto in un programma rimane nella sfera del “homo informaticus” Quindi un ruolo eminentemente “creativo”. 32 Algoritmo e Programma 33 ALGORITMO = una ricetta per risolvere un problema = una lista finita di istruzioni eseguibili (*), non ambigue che descrivono un processo di elaborazione ("un conto") = processo = sequenza finita di passi/operazioni da eseguire “fedelmente” (come da istruzioni della lista detta sopra) per ottenere, in un tempo finito, il risultato, cioe' la soluzione del problema assegnato - per definizione, un algoritmo funziona! (*) Nota: un algoritmo e' sempre destinato ad un esecutore, uomo o macchina che sia; le istruzioni devono essere eseguibili dall'esecutore. Algoritmo e Programma 34 Definizione di ALGORITMO : = lista finita di istruzioni eseguibili, non ambigue e non casuali che, eseguita, da' luogo ad un processo di elaborazione cioe' ad una sequenza finita di passi o operazioni (ciascuno finito) che produce in un tempo finito, (cioe' con un numero di passi finito) la soluzione del problema assegnato = produce un risultato se la lista delle istruzioni non e' finita, o se vi sono istruzioni ambigue o non eseguibili, o se eseguendo la lista, si inizia un processo di elaborazione che non finisce oppure non produce alcun risultato - allora NON e' un algoritmo Algoritmo e Programma 35 Da un punto di vista piu'astratto, un algoritmo produce a partire da un dato (o un insieme di dati) un risultato: Un algoritmo e' una funzione che fa corrispondere ad un dato un risultato. Si osservi che un algoritmo in genere funziona per (e' applicabile a) un insieme limitato di dati, se i dati non sono corretti l'algoritmo puo' non produrre alcun risultato, oppure produce un risultato errato: diremo che l'algoritmo non e' applicabile a tali dati. Un programma e' un algoritmo scritto in un linguaggio comprensibile ad un calcolatore (attenz: non viceversa!) Algoritmo e Programma ALGORITMO = una ricetta del tipo visto; PROGRAMMA = sequenza finita di istruzioni che codificano in modo comprensibile al calcolatore quali operazioni devono essere eseguite per ottenere il risultato richiesto. Nota: un programma puo’ non funzionare, nel senso che o il programma "muore" durante l'esecuzione, o non finisce mai, e in entrambi i casi non produce un risultato, oppure si arriva al risultato, ma e' errato … ... in breve ... un “Buon” PROGRAMMA e' la codifica di un “buon” ALGORITMO mediante un LINGUAGGIO DI PROGRAMMAZIONE (per definizione, comprensibile al calcolatore) 36 Algoritmo e Programma 37 Esistono molti modi per scrivere un algoritmo: * informale (in linguaggio naturale) * grafico, con diagrammi a blocchi: * con un formalismo rigoroso (ad es. le "macchine" di Turing) * con un linguaggio di programmazione di tipo generale (es. Algol 60, Basic, C++, Cobol, Fortran, Java, M2, Pascal,... Awk, Lisp, Prolog, Scheme, … ) [un linguaggio=formalismo rigoroso particolare] Tutti questi metodi sono equivalenti nel senso che l'insieme dei problemi risolubili e' lo stesso per tutti. NOTA: Esistono problemi NON risolubili per via algoritmica (vedremo in seguito un esempio) Fondamenti di informatica - presentazione prima di metter mano su una tastiera conviene spender ancora un po' di tempo per alcune informazioni su storia dei calcolatori e del nostro corso ambienti software ambienti hardware sistemi formali e linguaggi codici e rappresentazione dati rappresentazione di numeri 38 Fondamenti di informatica - presentazione BREVE STORIA (LOCALE E NON) DEI CALCOLATORI 39 Fondamenti di informatica - presentazione 40 inquadramento storico: dalla situazione di oggi ... macchine con 400 - 1500 Mhz di ciclo base e oltre (fanno un’istruzione in qualche nano secondo (10E-9) con 256 e piu’ Mega byte di Memor.Centrale (RAM) con 20 e piu’ Giga (10E+9) byte di Hard Disk con ingresso/uscita video digitale, suono, rete, stampanti, collegamenti senza filo, CD, DVD, … su cui si puo’ fare “di tutto” (e dove le cifre invecchiano ogni anno ...) Fondamenti di informatica - presentazione 41 situazione di oggi ... … dove il mercato HW (hardware) e SW (software) ha un fatturato paragonabile a quello delle automobili, dove il calcolatore e’ dapertutto (automobili, lavatrici, frigo, telefoni cellulari, televisori, serrature, ... ) e dove la “rete delle reti”, o internet, collega centinaia di milioni di calcolatori ... e dove si trova quasi tutto ... difficile persuadere il cliente che DEVE comperare un nuovo prodotto ogni anno per fare le stesse cose di prima (cfr. "the brave new world" di Huxley) Fondamenti di informatica - storia all’indietro 42 dalla situazione di oggi ... macchine con 1000 e piu’ Mhz di “clock”, 128 e piu’ Mega byte di Memoria Centrale, con 20 e piu’ Giga byte di Hard Disk e che costano meno di una paga mensile (ma non di un lavoratore del Bangladesh) e che sono inutilizzate per il 95% del tempo ;-) e che dopo 1 anno non valgono neanche la meta’ :- ( .... andiamo all’indietro .... vediamo un po’ di storia ... Fondamenti di informatica - storia all’indietro storia ... all’indietro .... situazione 1985 piu’ o meno: c’erano i "super calcolatori" CRAY, CDC 7800 (costavano un condominio di 5 piani) e i grossi “mainframe” IBM 3033, DIGITAL VAX 8800,.. i "midi e mini" PDP 11/70, o le workstation.. (costavano una grossa automobile ... una Porsche) 43 Fondamenti di informatica - storia all’indietro 44 i personal: IBM/PC con Intel 80286, con il s.o. DOS, ( con decine di produttori di PC compatibili ) Apple Macintosh II -M68010 (qualche milione di lire) i micro ZX Spectrum, QL (chi si ricorda di Sinclair?) Commodore 64, ... macchine con VGA (640x480) o CGA o schermo testo (24x80), con 64kb fino a 1 Mb di RAM, dischi da 10 Mb HD, 110-780kb Floppy, con sistema DOS (MS o IBM o altri) sui IBM/PC e compatibili, con Mac OS sul Macintosh, con Unix sulle workstation, con S.O. diversi sui grossi calcolatori ... la MS faceva il DOS e Word, e cominciava a comperare piccole aziende sw ... (Excel, Access, PowerPoint...) Fondamenti di informatica - storia all’indietro 45 sempre 1985 circa: 4.a generazione dei computer, circuiti integrati di larghissima scala … negli USA Internet (rete di reti con protocollo TCP/IP) collegava il 90% delle universita’, per la maggior parte macchine UNIX, Nikolaus Wirth (Zurigo, CH), padre del Pascal, progettava l’Oberon, successore del Modula 2, il C++ di Bjarne Stroustrup aveva gia’ tre anni, c’erano ancora diversi programmi per la scrittura (Word, Word*, WordPerfect, Framework... c’erano vari fogli elettronici LOTUS, VisiCalc, data base DB III, Oracle, e altri Fondamenti di informatica - storia all’indietro Sempre 1985 circa ... all'univ. di Trieste: c’era un corso di informatica generale solo per gli elettronici e gli elettrici (gli altri niente), al terzo anno, piu' altri tre (solo per indirizzo informatica) al 5.o anno ... il corso base (calcolatori elettronici) era piu' ampio: hw/sw / algoritmi e macchine di Turing/ grammatiche/ pascal/ assembly/ sistemi operativi/ processi concorrenti/ rete/… un esame pesante, si faceva un po’ di tutto… 46 fondamenti di informatica - presentazione 1980 l’IBM decide di entrare nel mercato dei personal, con l’IBM/PC, su cui montano un S.O. “DOS ” 1978 DEC VAX 11/780 1978 N.Wirth progetta il linguaggio Modula, successore del linguaggio Pascal, 1976: IBM/370 (“mainframe”, grosso) i primi personal: Apple2 ( S.O. Pascal UCSD (stava su due floppy da 5" da 110 kbyte !) Z80 e Intel 8080 ( sistema oper. CP/M ) varie macchine, 64 kb MC, 110kb Floppy, .. schermo alfanumerico (24x80 caratteri) schermo grafico 200x360 1975 circa: 3.a generazione dei computer... (integrati di larga scala) HW: 47 fondamenti di informatica - presentazione 48 1972 Dennis Ritchie progetta il C 1971 Intel 4004, 1.o micro processore in un integrato! Niklaus Wirth progetta il Pascal terza generazione dei computer : a circuiti integrati 1970 la DEC fa il PDP11/40 con architettura a bus 1969 Ken Thompson scrive il sistema operativo UNIX su un PDP-7 (in assembler e in “B”, derivato dal BCPL di M.Richard 1968, poi lo riscrivera’ in C) (su macchine con 128kb di memoria, 5Mb di HD) 1967: linguaggi Basic(65) nasce per uso interattivo in time sharing, Simula(67) programmazione con classi ed oggetti, e altri linguaggi (Algol 68, PL/I...) fondamenti di informatica - presentazione 49 1967: calcolatori IBM/360, Univac, Control Data,.. non c’erano personal, ne’ floppy (solo schede perforate e nastri magnetici ...) cominciano i primi Hard Disk e i primi integrati (semplici porte logiche, un flip-flop…) primi sistemi operativi multiprogrammati (MULTICS, nonno dell’UNIX ) con l' IBM/360 nasce il byte di 8 bit (e l’ASCII), 1965 nascono i primi “mini” PDP-8 della DEC macchine per laboratorio, (celle da 12 bit) 1960 nasce la DEC con il PDP-1 (18 bit/cella, 4k celle) fondamenti di informatica - presentazione 50 1960: situazione di mercato nettamente divisa tra macchine (e linguaggi) commerciali IBM/1401, macchine (e linguaggi) tecniche IBM/7090 la maggior parte dei programmi e’ scritta in assembler, anche se ... esistono gia' molti linguaggi procedurali Fortran [Formula Translator] Cobol [Commercial Business Oriented Language] Algol [Algorithmic Language] bisnonno di C , Pascal.. Lisp [List Processor], Snobol [String Processor] ... (e qualche decina di altri) fondamenti di informatica - presentazione 1957: linguaggio Fortran, primi tentativi di linguaggi commerciali (“business oriented languages) tutti i i programmi scritti in assembler i calcolatori sono fatti di transistor (montati su circuiti stampati [schede] e hanno la memoria a nuclei di ferrite (un nucleo = un bit) = seconda generazione dei computer 51 fondamenti di informatica - presentazione 52 48-54 prima generazione dei computer: a valvole (spazi enormi, problemi di riscaldamento, di affidabilita’... nastri e schede perforati, nastri magnetici, stampanti elettromeccaniche programmazione solo in assembly) 1950: varie macchine in commercio – ma qualche centinaio in tutto il mondo ... (Univac, IBM, Honeywell, G.E....) 1948: 1.o calcolatore elettronico funzionante (Wilkes, Cambridge, GB) a programma memorizzato assieme ai dati in memoria centrale (EDSAC) fondamenti di informatica - presentazione rimasta famosa la frase di obiezione del presidente della IBM (macchine elettrocontabili) del 1949, quando qualcuno all’interno dell’IBM fece la proposta di entrare nel mercato dei calcolatori: ma di macchine del genere ce ne sara' bisogno di due o tre, al massimo una decina per tutto il mondo ... 53 fondamenti di informatica - presentazione 54 1944: macchina di Von Neumann ( USA) modello proposto da H. Goldstine e J.Von Neumann (in base all’esperienza sui primi calcolatori elettronici di J.P.Eckert e J.Mauchly) (Moore School Univ.Pennsylvania, USA) nota: il modello detto oggi "di von Neumann" in realta' e' da attribuire a Eckert e Mauchly, ed e' rimasto collegato al nome di von Neumann per la firma della proposta di progetto ... fondamenti di informatica - presentazione 55 1939: macchina di Zuse (da Z1 a Z4, probabilmente il primo “vero” calcolatore elettronico)(D) Zuse con il suo staff costrui' alcuni modelli che pero' ebbero vita breve (bombardati 1944) 1935: "macchina" di A.Turing, un formalismo per definire un algoritmo, GB) prima degli anni 40 vi sono macchine elletrocontabili a schede perforate e macchine meccaniche per le operazioni aritmetiche... fondamenti di informatica - presentazione 56 1919: il circuito (a valvole) Flip-Flop o bistabile di Eccles e Jordan, elem.base dei circuiti del computer 1880: Hollerith (USA): schede perforate per la codifica e l’elaboraz. meccanica dell’informazione (al tempo, l’orario di lavoro di un operaio era 12 ore) 1854: Boole (GB) scrive l’ algebra della logica 1848: ferrovia Vienna - Trieste ... (ma cosa centra?) 1830: calcolatore meccanico di C. Babbage (memoria,unita’di calcolo,ingresso e uscita dati…) 1800: telaio Jacquard a “schede” perforate per la programmazione dei telai di tessitura Fondamenti di informatica - presentazione 1640: calcolatrice meccanica di B.Pascal 1623: calcolatrice meccanica di Schickard 1490: fine del regno arabo di Granada .. fine dell'impero di Costantinopoli, qualcuno scopre l’America, ecc... 1200: Leonardo Pisano detto Fibonacci introduce i numeri “arabi” in Italia (nonostante il divieto della chiesa) 800 dc: Al-Khowarismi: aritmetica araba ... in india / cina si (re-) inventa lo zero 600 dc: Maometto 57 fondamenti di informatica - presentazione 0 Cristo 100 ac: Tolomeo (Alessandria) tavole trigonometr. 400-200 ac: Pitagora, Talete, Euclide, Diofanto, Eratostene.. 500 ac: Budda, Aristotele .. in Mesopotamia c’e’ sistema numerico posizionale e lo zero; abaco (cina,india, mediterraneo,america) 1000 ac: primi alfabeti (egiziano,fenicio) primi algoritmi di calcolo (babilonesi) 58 fondamenti di informatica - presentazione 59 1500 ac: tavole numeriche egiziane e babilonesi 2000 ac: primi testi (religiosi, legali, politici, epici.. 4000 ac: scrittura Egitto, Babilonia ( ideogrammi "al re Suppiliuma apparve il dio Marduk, e gli mostro' come fare per vedere una parola " 30000 ac: homo sapiens sapiens .... (sulle date prima del 4000 a.c. le opinioni dei creazionisti sono discordi) fondamenti di informatica - presentazione 60 fine del percorso storico dal 1998 (a 300Mhz) ... al 4000 ac: (quando furono scritti i primi testi, cose importanti, come trattati di pace o preghiere o situazioni contabili dei magazzini del re) con una codifica piuttosto pesante, utilizzando migliaia di ideogrammi ... in Egitto, Babilonia, poi in Cina quando i numeri erano codificati nel sistema “unario”: uno /, due //, tre ///, quattro ////, ecc con qualche semplificazione ... ... ritorniamo ad oggi … fondamenti di informatica - presentazione 61 come sara’ un calcolatore tra N anni (quando finirete gli studi...) ? com’era un calcolatore N anni fa (a pari costo) ? 10 volte piu’ lento, 4 volte meno memoria centrale, 10 volte meno spazio su disco, software da 4 a 20 volte piu’ piccolo, il software e l’hw costavano circa come oggi ... provate ad applicare gli stessi fattori in avanti ... prestazioni costo 1992 1998 2004 tempo Fondamenti di informatica - presentazione 62 ancora un po’ di storia ma partendo dagli inizi ... ... storia locale ... cioe’ del corso di Fondamenti di Informatica in ingegneria all’ Universita’ di Trieste (Univ. di Trieste (solo la facolta’ di Economia e Commercio) fondata tra le due guerre, 1925, la Facolta’ di Ingegneria (Regia Legge 8.8.1942) con lezioni nel marzo del 44 e del 1945 ... con meccanica, navale, edile … Corso di Elettronica fondato nel 1961, in ingegneria allora c’erano: Chimica, Civile, Elettrotecnica, Elettronica, Meccanica, Navale e Meccanica Fondamenti di informatica - presentazione 63 1961 l'universita' fonda il Centro di Calcolo con un calcolatore “scientifico” IBM 1620 il calcolatore aveva: un’unita’centrale a transistor, diodi, resistenze.. 20k byte (ma a 6 bit) di memoria centrale tecnologia a bit memorizzati con nuclei di ferrite, un’ unita' di ingresso/uscita telescrivente una consolle “con tante luci e tanti interruttori” un lettore/perforatore di nastro di carta) il Centro di Calcolo aveva un direttore, un capocentro, alcuni tecnici (laureati/diplomati) una segretaria, dei borsisti (borsa di studio di 40.000 lire al mese [al tempo era una paga di un operaio non qualificato] ecc... Fondamenti di informatica - presentazione cont. 1962: il calcolatore IBM 1620 era usato con prenotazione settimanale, una singola prova di traduzione / esecuzione di un programma Fortran richiedeva un paio d’ore (i dati e i programmi erano memorizzati su nastro di carta, per caricare un programma in memoria erano necessari una decina di minuti) si programmava molto in linguaggio macchina. nel 1962 il Fortran aveva 5 anni, l'Algol ne aveva 2, erano gia’ pubblicati decine di algoritmi 64 Fondamenti di informatica - presentazione cont. 1962: 65 a TS non c’era alcun corso di informatica, in nessuna facolta’ il calcolatore IBM 1620 del 1962 era molto piu’ lento di un Commodore 64 (cpu 6502) o di uno Spectrum (cpu Z80) del 1985.. il calcolatore era uno strumento molto costoso e usato solo in pochi casi (ed era complicato usarlo) “il calcolatore del tempo equivaleva (come potenza di calcolo) a meno di un millesimo di un PC di oggi, (costo di meno di 1000 euro) e costava quasi dieci appartamenti ovvero circa 1000 volte di piu' ... Fondamenti di informatica - presentazione 66 1963: l’Olivetti (Ivrea, Torino) in collaborazione con il CNR di Pisa fa il primo calcolatore italiano, l' "Elea" un calcolatore a transistor interamente progettato e costruito in Italia la divisione elettronica dell’Olivetti chiude (anche per mancanza di aiuti da parte del governo) nel 1965 Fondamenti di informatica - presentazione 67 =====>> 1963-64 attivazione al 5.o anno del corso di laurea in ingegneria elettronica di un corso di "calcolatrici elettroniche" (prof.A.Marzollo), 2/3 corso calcolatrici analogiche (esercitazioni) 1/3 corso calcolatrici digitali (niente esercitazioni) ----al CERN (Ginevra, CH) c’e’ un “grosso” calcolatore IBM 7090, l'IBM sta preparando il 360, (con cui nascera' il byte da 8 bit) la CDC sta preparando il CDC6600 (supercomputer) Fondamenti di informatica - presentazione 68 1963: nasce il corso di “calcolatrici elettroniche” nel 63 sono in uso generale 2 o 3 linguaggi: Fortran [FORmula TRANslator] per problemi tecnico/scientifici e Cobol [COmmon Business Oriented Language] problemi gestionali in Nord Europa si usa molto anche l’Algol 60, capostipite di moltissimi linguaggi di programm.; stanno nascendo molti linguaggi di programmazione (Algol-W, “nonno” del Pascal, BCPL, “nonno” del C, .. Fondamenti di informatica - presentazione 69 1968: * prima mostra di Computer art a Londra (cui partecipano anche due ricercatori di TS) * nasce l’Algol 68 (troppo potente per l’epoca..) il Simula 67 (con oggetti e classi, bisnonno del C++), * sono in commercio i dischi fissi (da qualche Mbyte) * il DOS (Disc Operating System ha gia’ alcuni anni, precedenti TOS o Tape Operating Systems) * c’e’ un calcolatore commerciale con memoria virtuale (IBM 360/90) * c’e il S.O. MULTICS da cui derivera’ poi il s.o. Unix (multiutente, sistema file gerarchico..) Fondamenti di informatica - presentazione 70 1972, ing. elettronica a TS: dal 1963 c’e’ il corso di calcolatrici elettroniche al 5.o anno, tenuto (69-75) dal prof. Sipala; contenuto: calcol.digitali, cenni su hw, sw, programmazione assembler, Lisp, Algol e Fortran, linguaggi, traduttori, ... (quasi tutta l'informatica) Esercitazioni su HP2004 con 32 k byte di memoria, ingresso/uscita a nastro di carta, tastiera, pulsantiera binaria per inserire dati direttamente in memoria) 1972: il Pascal ed il C hanno 1 anno, ... il Simula (classi e oggetti) ne ha 5, ...) il PL/I ne ha 3 il LISP ne ha 12 !! Fondamenti di Informatica ... nota storica del corso ... 71 1972 * nasce il primo micro-processore su un circuito integrato unico, il 4004 dell’Intel * ci sono gia’ le reti di calcolatori * al centro calcolo dell’univ.di TS c’e’ un IBM 7044 (sistema a nastri magnetici) * sono gia’ in uso nei laboratori e i primi midi (il PDP 11 della Digital, progenitore di tutti i micro..., su cui nasce l’Unix e il C) e i primi hard disk ... * a Trieste c’e’ nel 71 una mostra di immagini realizzate con un calcolatore ... Fondamenti di informatica - presentazione 1975 * la facolta’ decide di aprire due nuovi corsi di informatica, * il corso base “calcolatori elettronici” passa al 4.o anno, * al quinto anno si apre un indirizzo di informatica (per gli elettronici), con basi di dati informatica teorica 72 Fondamenti di informatica - presentazione 1975 (tre corsi di informatica in ingegneria) ... “ il ” calcolatore della facolta’ (un HP2100) aveva il Basic in Time-sharing, con 8 terminali (telescriventi a 110b/s), aveva un HD da 5Mb (su cui stava tutto il SW del S.O. e dati e programmi per tutta la facolta’ primi Floppy da 8 pollici e 110 k byte (Digital) 73 Fondamenti di informatica - presentazione 74 1979 corso calcolatori elettronici (4.o anno) (hw,sw, programmazione in Pascal, esercitazioni su terminale remoto del calcolatore CDC 6200, i programmi sono scritti su schede perforate ... (al tempo c'erano gia' i primi personal Apple II, TRS, Commodore,.. con Basic e Floppy da 5 “ e 110 k byte i sistemi operativi piu’ diffusi su personal erano CP/M (processori Z80 o 8080) Pascal/UCSD su Apple II; (c’era gia’il festival di arte elettronica a Linz musica [il moog], immagini, video) Fondamenti di informatica - presentazione 75 1982 primo laboratorio didattico della facolta', con 3 calcolatori APPLE II (64 k byte RAM, 110 kB floppy, costo 3.500.000 lire di allora (oggi 18 M) e Pascal UCSD (il papa' del turbo Pascal), con esercitazioni di programmazione assembler 6502, 1986 laboratorio didattico basato sul PDP 11/xx con sistema RT con HD e 4 terminali, il corso passa al 3.o anno, con programmazione Modula II e Assembler 5 esercizi (programmi) individuali da risolvere (scrivere) per l’esame, (uno in assembler e uno con gestione di processi paralleli) ... circa 50 studenti Fondamenti di informatica - presentazione 76 1989si attiva un 3.o corso di informatica al 5.o anno 1990(un mix: grafica, s.o., e altro …) 1991 l'universita’ di Trieste si adegua agli obblighi di legge, e il corso di "calcolatori elettronici" passa al 2.o anno (e diventa fondamenti di informatica) si sdoppia, si semplifica, 1993/94: ultimo anno con il linguaggio Modula II si attiva il corso di Calcolatori elettronici II (architettura, hw) 1994/95: linguaggio Pascal, Fond. Informatica e’ al 1.o anno 1996.. : linguaggio C++ Fondamenti di informatica - presentazione aa 2001/2002 riforma universitaria, partono le lauree brevi (che sono circa i diplomi di prima ...) il corso F.I. si sdoppia in F.I.1 + F.I.2 ... ----------------------------------------------- fine parte introduzione ... 77