Laboratorio di Informatica I 1 - Dipartimento di Informatica

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