1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

77
1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione

Transcript of 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

Page 1: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

1

FONDAMENTI

DI INFORMATICA

di

Matjaz Hmeljak

Fondamenti di informatica - presentazione

Page 2: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

2

QUESTA PRESENTAZIONE

.. orario lezioni, ricevimento, .. .. finalita', contenuto .. piano del corso .. dove sta il corso .. modalita' esame .. bibliografia .. dati e storia .. storia "locale"

Fondamenti di informatica - presentazione

Page 3: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

3fondamenti 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

Page 4: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

4fondamenti di informatica - presentazione

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

Page 5: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

5Fondamenti di informatica - presentazione

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

Page 6: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

6

Contenuto [previsto] del corso di Fondamenti di informatica 1 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

Page 7: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak 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

Page 8: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

8fondamenti di informatica - presentazione

non entrano nel corso: basi di datiscrittura 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, ecclinguaggi funzionali e logici come

Lisp, ML, Prolog,Scheme, ..ecc

Page 9: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

9fondamenti di informatica - presentazione

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...

Page 10: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

10fondamenti di informatica - presentazione

... 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

Page 11: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak 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

Page 12: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

12

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 riguardopiani di studio, corsi, orari ecc, e

e dove si trova anche il materiale del nostro corso (versione nuova)

Fondamenti di informatica - presentazione

Page 13: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

13Fondamenti di informatica - presentazione

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.htmwww.ingchim.ing.uniroma1.it/clic/programmi/ fondinfo.htmljeeves.cs.unitn.it/fondaminform/diario10.97.htmlecc

Page 14: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak 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

Page 15: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

15Fondamenti di informatica - presentazione

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)

Page 16: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

16fondamenti di informatica - presentazione

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

Page 17: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

17fondamenti di informatica - presentazione

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

Page 18: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

18

* 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

Fondamenti di informatica - presentazione

Page 19: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

19Fondamenti di informatica - presentazione

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 ...

Page 20: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

20

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

Fondamenti di informatica - presentazione

Page 21: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

21

2) Caso due: se non segui le lezioni e/o se non fai i test positivi:

modalita’ “classica” ovveroesame standard negli appelli regolari:

inverno / 3 appelli gennaio / febbraio

estate / 3 appelli giugno / luglio

autunno / 2 appelli settembre

altri appelli in periodi di lezione: riservati agli studenti fuori corso

Fondamenti di informatica - presentazione

Page 22: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

22

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)

Fondamenti di informatica - presentazione

Page 23: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

23

BIBLIOGRAFIA: 1) per la parte introduttiva:

QUESTO STESSO MATERIALEQUESTO STESSO MATERIALE e/o 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 lireoppure 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 ...]

Fondamenti di informatica - presentazione

Page 24: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

24

2) bibliografia per la parte programmazione ... IL IL MATERIALEMATERIALE CHE STA NELLA CARTELLA "PARTEC" CHE STA NELLA CARTELLA "PARTEC" serving4.../arc_stud/hmeljak/partec/...serving4.../arc_stud/hmeljak/partec/...

libri sulla programmazione in C++: Schildt (noi ne facciamo 1/3) Crivellari, Domenici Frosini, (sconsigliato: Kernigan Plaugher )(sconsigliato: Kernigan Plaugher )

e / o libri …e / o libri …da consultare : da consultare :

Aho Ullmann (ottimo: parte principale algoritmi)Wirth (Algoritmi + Strutt.dati = Programmi

Fondamenti di informatica - presentazione

Page 25: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

25Fondamenti di informatica - ambienti HW e SW

Gli ambienti dell’Informatica

hardware computerperifericherete (network) (non trattato qui)

softwaresistema operativolinguaggi di programmazioneinterfacce di lavoroapplicazioni (non trattato qui)

Page 26: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

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

Page 27: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

27

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...

Fondamenti di informatica - ambienti HW e SW

Page 28: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

28Fondamenti 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

Page 29: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

29IL RUOLO DEL CALCOLATORE

PROBLEMADA RISOLVERE

ALGORITMOPROGRAMMA

Fase di Sviluppo eImplementazione della Soluzione

DATI

Conoscenzenecessarieall’utente

Dominiodel

Problema

Linguaggidi Programmazione

RISULTATI

AmbienteOperativo

FaseEsecutiva

...principalmente esecutivo

Page 30: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

30

un calcolatore (HW e SW)

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

uso del calcolatore

Page 31: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

31IL 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)

Page 32: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

32IL 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”.

Page 33: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

33Algoritmo e Programma

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.

Page 34: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

34

Definizione di ALGORITMO : = lista finita di istruzioni eseguibili, non ambigue e non casualiche, 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, ose 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

Page 35: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

35Algoritmo e Programma

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!)

Page 36: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

36Algoritmo 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)

Page 37: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

37Esistono 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)

Algoritmo e Programma

Page 38: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

38Fondamenti 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

Page 39: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

39

BREVE

STORIA (LOCALE E NON)

DEI CALCOLATORI

Fondamenti di informatica - presentazione

Page 40: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak 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

Page 41: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak 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 - presentazione

Page 42: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

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

Page 43: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

43

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)

Fondamenti di informatica - storia all’indietro

Page 44: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

44Fondamenti di informatica - storia all’indietro

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...)

Page 45: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

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

Page 46: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

46Fondamenti 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…

Page 47: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

47fondamenti 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:

Page 48: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

48fondamenti di informatica - presentazione

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...)

Page 49: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

49fondamenti di informatica - presentazione

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)

Page 50: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

50fondamenti di informatica - presentazione

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)

Page 51: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

51fondamenti 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

Page 52: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

52fondamenti di informatica - presentazione

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)

Page 53: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

53fondamenti di informatica - presentazione

rimasta famosa la frase di obiezione del presidentedella 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 ...

Page 54: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

54fondamenti di informatica - presentazione

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 ...

Page 55: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

55fondamenti di informatica - presentazione

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...

Page 56: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

56fondamenti di informatica - presentazione

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 logica1848: 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

Page 57: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

57

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

Fondamenti di informatica - presentazione

Page 58: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

58fondamenti 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)

Page 59: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

59fondamenti di informatica - presentazione

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)

Page 60: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

60fondamenti di informatica - presentazione

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 ////, ecccon qualche semplificazione ......ritorniamo ad oggi …

Page 61: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

61fondamenti di informatica - presentazione

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

tempo1992 1998 2004

costo

Page 62: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak 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

Page 63: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak 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

Page 64: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

64

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

Fondamenti di informatica - presentazione

Page 65: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

65cont. 1962: 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 eusato 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

Page 66: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak 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 permancanza di aiuti da parte del governo) nel 1965

Fondamenti di informatica - presentazione

Page 67: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak 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

Page 68: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak 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

Page 69: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak 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

Page 70: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak 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 - presentazione

Page 71: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

71Fondamenti di Informatica ... nota storica del corso ...

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 ...

Page 72: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

72

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

Fondamenti di informatica - presentazione

Page 73: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

73

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)

Fondamenti di informatica - presentazione

Page 74: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak 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 bytei 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

Page 75: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak 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

Page 76: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak 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

Page 77: 1 FONDAMENTI DI INFORMATICA di Matjaz Hmeljak Fondamenti di informatica - presentazione.

77Fondamenti 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 ...