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