Lezione 1 - University of L`Aquila - Università degli Studi dell`Aquila

Introduzione all’Informatica
DavidePierantonio
Di Ruscio
Alfonso
Dipartimento
di Informatica
Informatica
Dipartimento di
Università
Studidell’Aquila
dell’Aquila
Universitàdegli
degli Studi
[email protected]
[email protected]
Lezione 1
.
Sommario
» Introduzione al corso
» Introduzione all’Informatica
22
» Applicativi software
− Scrittura di documenti testuali
− cos’è l’informatica
− Fogli di calcolo
− problemi, algoritmi, programmi e
calcolatore
− Produzione di Slides
− applicazioni dell’informatica
− Ipertesti, Multimedia, Ipermedia
» Architettura del calcolatore
− processore, memoria centrale, memoria di
massa, memoria cache, periferiche
» Reti di calcolatori
− La comunicazione dei dati
− le reti locali
− le reti geografiche
− Internet ed i suoi servizi
− Motori di ricerca
Introduzione all’Informatica
Dott. Davide Di Ruscio
− Applicazioni su Internet
Testo di riferimento
Ceri, Mandrioli, Sbattella
Informatica Arte e Mestiere
McGraw Hill
Materiale fornito dal docente
Introduzione all’Informatica
Dott. Davide Di Ruscio
33
Lucidi delle lezioni
I lucidi delle lezioni sono basati su del materiale del Prof.
Flammini Michele, Dott. Fabrizio Costa, e Dott. Patrizio
Pelliccione
Introduzione all’Informatica
Dott. Davide Di Ruscio
44
Contatti
Home page del docente:
www.di.univaq.it/diruscio/
Email:
[email protected]
Introduzione all’Informatica
Dott. Davide Di Ruscio
55
Calendario
»
Lezione 1: Martedì 9 Novembre 2010
»
Lezione 2: Mercoledì 1 Dicembre 2010
»
Lezione 3: Lunedì 6 Dicembre 2010
»
Lezione 4: Lunedì 13 Dicembre 2010
Introduzione all’Informatica
Dott. Davide Di Ruscio
66
L’Informatica nel tempo
»
Nel 1940, i primi ricercatori che crearono i calcolatori elettronici
credettero che in USA sarebbero stati necessari non più di
una mezza dozzina di calcolatori.
»
Nel 1976, il New York Times pubblicò un libro dal titolo “La
scienza nel ventesimo secolo”, nel quale il calcolatore veniva
menzionato una sola volta ed indirettamente, in relazione al
calcolo delle orbite dei pianeti.
»
Oggi, la presenza del calcolatore è invasiva nella vita quotidiana.
Occorre che le persone si adattino alla prospettiva che alcuni
lavori stanno diventando/diventeranno obsoleti
Introduzione all’Informatica
Dott. Davide Di Ruscio
77
Applicazioni
»
Vediamo alcune applicazioni:
−
applicazioni in medicina
−
applicazioni nella gestione delle informazioni
−
applicazioni industriali
Introduzione all’Informatica
Dott. Davide Di Ruscio
88
Applicazioni medicali
»
Controllo delle funzioni vitali primarie
»
Dosaggio farmacologico automatico
»
TAC e Risonanza Magnetica: si elaborano i dati generati da un
campo magnetico attorno al corpo umano, e si producono
immagini degli organi interni, non rilevabili con i raggi X
»
Interventi di microchirurgia guidati dall’elaboratore
»
Interfacce intelligenti di comunicazione per disabili:
−
riconoscitori vocali
−
renderer tattili, sonar per non vedenti
−
mouse vocali o ad impulsi nervosi per paraplegici
Introduzione all’Informatica
Dott. Davide Di Ruscio
99
Gestione delle informazioni
10 1
0
»
Nel 1993, la biblioteca della Facoltà di Legge della Columbia
University cancellò il progetto di costruire un edificio da 20 mil $
per acquistare un calcolatore da 1.5 mil $, per memorizzare i
contenuti di decine di migliaia di libri vecchi e soggetti a
deterioramento. Oggi le biblioteche digitali sono molto diffuse
»
Riduzione dei consumi/rifiuti cartacei: invece di gettare nel
cestino un documento obsoleto, lo si cancella semplicemente da
una memoria di massa. Gli articoli distribuiti elettronicamente
dalla Electronic Frontier Foundation terminano con “Questo
articolo è stato stampato al 100% con elettroni riciclati”
»
Facilità di accesso a gran parte dello scibile umano attraverso il
WWW.
Introduzione all’Informatica
Dott. Davide Di Ruscio
Automazione
11 1
1
»
I robot vengono impiegati nelle catene di montaggio per
l’assemblaggio veloce ed accurato dei prodotti di uso
quotidiano (elettrodomestici, automobili, etc.).
»
Vengono impiegati per lavori ed in ambienti considerati
pericolosi o a rischio per le persone (per ispezionare strutture e
cavi di comunicazione sui fondali marini).
»
Il Sojourner, controllato via calcolatore, ha orbitato intorno a
Marte e le comunicazioni satellitari hanno permesso a milioni di
persone di osservarne le immagini al televisore o sullo schermo
del proprio calcolatore.
Introduzione all’Informatica
Dott. Davide Di Ruscio
Concetti di base (1/6)
»
INFORMATICA: scienza della rappresentazione e
dell’elaborazione dell’informazione
−
»
12 1
2
L’informazione una delle risorse strategiche
più importanti della società moderna
ELABORATORE: non e l’oggetto fondamentale di studio
nell’informatica, ma e l’attore principale, poiché permette
l’elaborazione di grandi quantità di dati in poco tempo, rendendo
quindi realizzabili nella pratica i principi e le tecniche
informatiche.
Introduzione all’Informatica
Dott. Davide Di Ruscio
L’informazione
»
»
13 1
3
L'informazione
−
aggregazione di dati di cui sia noto, oltre al valore, anche il significato
−
incremento di conoscenza che può essere acquisita (o inferita) dai dati
L’informazione riguarda il contesto in cui i dati sono raccolti, la
loro codifica in forma intellegibile ed in definitiva il significato
attribuito a tali dati
13
Introduzione all’Informatica
Dott. Davide Di Ruscio
Codifica dell’informazione
14 1
4
»
La codifica dell'informazione consiste nel trasformare una
informazione generica in una informazione comprensibile da un
dispositivo o che sia adatta alla successiva elaborazione
»
L'informazione si rappresenta usando un numero finito di simboli
affidabili e facilmente distinguibili
»
All'interno delle apparecchiature digitali l'informazione è
rappresentata mediante livelli di tensione o mediante
magnetizzazione di dispositivi appropriati
»
Le informazioni di interesse sono rappresentate tramite una
collezione di dati
14
Introduzione all’Informatica
Dott. Davide Di Ruscio
Uso dei calcolatori nell’Informatica
»
L’utilizzo degli elaboratori per ripetere una sequenza di
operazioni un numero indefinito di volte
»
Possibilità di gestire l’informazione in modo rapido ed efficiente
»
Capacità di calcolo elevate
»
Velocità nel reperire le informazioni
Introduzione all’Informatica
Dott. Davide Di Ruscio
15 1
5
Vantaggi del calcolatore
»
Rapidità
»
Precisione
»
Capacità di esecuzione di lavori ripetitivi
»
Capacità di gestione di grandi quantità di dati
»
Capacità di integrare dati provenienti da fonti diverse
»
Possibilità di memorizzare dati per lunghi periodi di tempo
Introduzione all’Informatica
Dott. Davide Di Ruscio
16 1
6
Limiti del calcolatore
»
Mancanza di intelligenza autonoma
»
Mancanza di creatività
»
Difficoltà ad affrontare problemi nuovi
»
Difficoltà nei lavori non ripetitivi
»
Difficoltà a gestire informazioni non strutturate
»
Difficoltà ad interpretare un discorso
»
Possibilità di guasti
»
Limiti in gran parte imputabili al software
Introduzione all’Informatica
Dott. Davide Di Ruscio
17 1
7
Hardware e Software
»
L’hardware è costituito da tutti i componenti “materiali” di un
elaboratore
−
»
macchina nella sua fisicità compresi i componenti esterni quali: tastiera,
schermo, stampante, mouse ecc.
Il software è l’insieme dei programmi che consentono all’
hardware di svolgere le attività per cui è proposto
−
Il Software rappresenta una serie di istruzioni, scritte in un apposito
linguaggio, che permettono alla macchina di funzionare
Introduzione all’Informatica
Dott. Davide Di Ruscio
18 1
8
Hardware > Tipi di Calcolatori
»
Esiste una vasta tipologia di calcolatori che si differenziano per:
−
Velocità di elaborazione
−
Capacità di archiviazione
−
Numero di stazioni di lavoro utilizzabili contemporaneamente
−
Dispositivi addizionali che possono essere connessi
−
Per ingombro
Introduzione all’Informatica
Dott. Davide Di Ruscio
19 1
9
Hardware > Tipi di Calcolatori
20 2
0
»
Naturalmente i diversi tipi di calcolatori presentano differenze
sostanziali sia nelle capacità d’elaborazione sia nei costi
»
Il prezzo è strettamente collegato alla configurazione: un
computer grafico ha un costo maggiore di un computer che deve
servire solo per la stesura dei testi
»
La configurazione è l’insieme dei componenti hardware e
software di cui un computer è dotato
»
Computer molto simili nell’aspetto esteriore possono avere
prezzi molto diversi
Introduzione all’Informatica
Dott. Davide Di Ruscio
Hardware > Calcolatori particolari: Terminale self-service
»
Aree applicative
−
Bancomat
−
Certificazione comunale
−
Segreterie studenti
−
Punti informativi
−
…
Introduzione all’Informatica
Dott. Davide Di Ruscio
21 2
1
Hardware > Calcolatori particolari: Terminale self-service
»
Facilità di utilizzo
−
interfaccia semplice e chiara
−
uso di menù
−
pochi dati per pagina video
−
schermi sensibili al tatto
−
tastiera essenziale
−
funzioni di aiuto in linea
Introduzione all’Informatica
Dott. Davide Di Ruscio
22 2
2
Collegamento elaboratori in rete (1/2)
»
Rete: insieme di canali di interconnessione che permettono ad
elaboratori diversi di comunicare tra loro
»
Si suddividono principalmente in due categorie:
−
locali (Local Area Network):
> di piccola estensione (tipicamente un edificio)
> veloci
> permettono agli utenti di condividere dati ed usufruire di servizi
(stampanti, server, accesso a reti esterne, ...)
> tra le più note: ethernet, …
−
geografiche (Wide Area Network):
> molto estese (anche tutto il globo)
> più lente
> tra le più note: Internet
Introduzione all’Informatica
Dott. Davide Di Ruscio
23 2
3
Collegamento elaboratori in rete (2/2)
24 2
4
»
Sistema distribuito: insieme di elaboratori che cooperano per lo
svolgimento un determinato compito scambiando dati e risultati
di elaborazioni attraverso una rete di interconnessione
»
Sistemi paralleli: sistemi con più CPU in stretta collaborazione.
La comunicazione di solito avviene mediante memoria condivisa
»
Un singolo elaboratore di un sistema distribuito può anche
essere parallelo
Introduzione all’Informatica
Dott. Davide Di Ruscio
Software (1/3)
25 2
5
»
È formato dall’insieme dei programmi che vengono eseguiti sulla
macchina hardware
»
Si suddivide in
−
software di base: per permettere l’utilizzo dell’elaboratore
−
software applicativo: per specifiche esigenze da parte degli utenti
Introduzione all’Informatica
Dott. Davide Di Ruscio
Software (2/3)
»
»
26 2
6
Il software di base comprende
−
il sistema operativo:
> è il cuore del software di base
> consente un utilizzo facile ed efficiente delle risorse dell’elaboratore
−
protocolli: insieme dei programmi che gestiscono la comunicazione nelle
reti
−
….
Anche se generalmente si usa suddividere il software solamente
in due categorie (di base ed applicativo), esiste tuttavia uno
strato intermedio che ha le caratteristiche dell’una e dell’altra
Introduzione all’Informatica
Dott. Davide Di Ruscio
Software (3/3)
27 2
7
Software applicativo
Strumenti di produttività
Software personale
Ambiente di programmazione
• fogli elettronici
• videoscrittura
• editor
• basi di dati
• agende elettroniche
• compilatore
•…
• ipertesti
• collegatore (linker)
• posta elettronica
• debugger
•…
Software di base
• sistema operativo
• protocolli
•…
Introduzione all’Informatica
Dott. Davide Di Ruscio
Tipi di software
»
Software proprietario
»
Open software
»
Shareware
»
Freeware
Introduzione all’Informatica
Dott. Davide Di Ruscio
28 2
8
Software proprietario
»
Acquistando il programma originale si entra in possesso di una
licenza d’uso
»
Il prodotto è soggetto al copyright del produttore e implica la
segretezza del codice sorgente e la proibizione di apportare
modifiche e di distribuirlo.
Introduzione all’Informatica
Dott. Davide Di Ruscio
29 2
9
Open software
»
30 3
0
Un software libero ( free software) è definito (GNU Project) dalla
libertà di
−
eseguire il programma, per qualsiasi scopo;
−
studiare come funziona il programma, e adattarlo alle proprie necessità,
l'accesso al codice sorgente ne è una precondizione;
−
ridistribuire copie in modo da promuoverne lo sviluppo;
−
migliorare il programma, e distribuirne pubblicamente i miglioramenti, in
modo tale che tutta la comunità ne tragga beneficio. L'accesso al codice
sorgente ne è una precondizione.
»
Un programma è software libero se l'utente ha tutte queste libertà. In
particolare, è libero di ridistribuire copie, con o senza modifiche, gratis
o addebitando delle spese di distribuzione a tutti ed ovunque.
»
Tuttavia il software libero e ogni sua modifica devono essere
ridistribuiti sotto una licenza restrittiva almeno quanto quella di
partenza (nativa)
Introduzione all’Informatica
Dott. Davide Di Ruscio
30
Shareware
»
Software che viene distribuito gratuitamente
»
L’utente dopo un periodo di prova stabilito deve versare una
quota limitata per poter continuare ad usufruirne. In cambio
riceve un manuale e gli aggiornamenti successivi
Introduzione all’Informatica
Dott. Davide Di Ruscio
31 3
1
Freeware
»
Software che viene distribuito solitamente dalla Rete
»
La sua particolarità risiede nel fatto di essere completamente
gratuito e gli utenti lo possono usare senza restrizioni
Introduzione all’Informatica
Dott. Davide Di Ruscio
32 3
2
Concetti di base (2/6)
»
ALGORITMO: procedura passo passo o sequenza di passi per la
risoluzione di un determinato compito
»
PASSO:
33 3
3
−
compiuto da un ipotetico esecutore
−
elementare: corrisponde ad un’azione semplice del suo esecutore
−
limitato: un lavoro “illimitato” può essere eseguito soltanto con un numero
“illimitato” di passi
−
comprensibile dall’esecutore
−
non ambiguo: non deve dare adito ad alcuna libera interpretazione da parte
dell’esecutore
NB: l’esecutore per eccellenza è il calcolatore, ma possiamo essere anche
noi esecutori quando effettuiamo un prelievo da uno sportello del
bancomat, quando montiamo apparecchiature o assembliamo
componenti, …
Introduzione all’Informatica
Dott. Davide Di Ruscio
Concetti di base (3/6)
»
34 3
4
PROPRIETÀ DI UN ALGORITMO:
−
correttezza: deve effettivamente risolvere il compito a cui è preposto,
senza difettare di alcun passo fondamentale
−
efficienza: deve pervenire alla risoluzione del compito utilizzando il minor
numero possibile di risorse, come ad esempio il tempo (numero di passi
eseguiti) e la memoria
−
robustezza: anche in presenza di input errati, situazioni non previste o
anomalie deve mantenere la correttezza
−
…
Introduzione all’Informatica
Dott. Davide Di Ruscio
Concetti di base (4/6)
»
PROGRAMMA: algoritmo descritto in un linguaggio
comprensibile dall’esecutore
»
ISTRUZIONE ≈ passo
»
LINGUAGGIO DI PROGRAMMAZIONE: linguaggio usato per
descrivere l’algoritmo
»
CODIFICA: processo di descrizione o trascrizione di un algoritmo
in un linguaggio di programmazione
Introduzione all’Informatica
Dott. Davide Di Ruscio
35 3
5
Concetti di base (5/6)
»
»
»
36 3
6
LINGUAGGIO MACCHINA:
−
l’unico comprensibile dall’elaboratore
−
istruzioni date da sequenze di bit (es. 011001100000).
LINGUAGGIO ASSEMBLER:
−
utilizza nomi simbolici per indicare le istruzioni del linguaggio macchina
ed i dati su cui operano, come ad esempio READ X invece di
011001100000
−
ha la stessa potenza del linguaggio macchina, poiché esiste una
corrispondenza uno-a-uno tra le rispettive istruzioni e quindi non
aggiunge nuove potenzialità
ASSEMBLATORE: traduce un programma in linguaggio assembler
in uno equivalente in linguaggio macchina che può essere
eseguito dall’elaboratore
Introduzione all’Informatica
Dott. Davide Di Ruscio
Concetti di base (6/6)
37 3
7
»
LINGUAGGIO AD ALTO LIVELLO: istruzioni più sintetiche, più
potenti, più vicine al modo di ragionare umano
»
COMPILATORE: traduce un programma in un linguaggio ad alto
livello in uno equivalente in linguaggio macchina per permettere
la sua esecuzione da parte dell’elaboratore
»
INTERPRETE: simile al compilatore, ma esegue la traduzione in
fase d’esecuzione, istruzione per istruzione
Introduzione all’Informatica
Dott. Davide Di Ruscio
Evoluzione dei linguaggi ad alto livello (1/3)
»
»
»
38 3
8
Tra i primi:
−
FORTRAN (FORmula TRANslation): adatto ad applicazioni scientifiche e di
calcolo
−
COBOL (Common Business Oriented Language): per applicazioni
gestionali
−
BASIC: semplice, interpretato
−
LISP: funzionale
In seguito:
−
ALGOL 60: ispirato (come i seguenti) ai principi di programmazione ed in
particolare alla programmazione strutturata
−
PASCAL: adatto per uso didattico, perché è molto semplice e pulito
−
C: permette di agire anche a basso livello ed è quindi adatto anche per la
scrittura di moduli o parti del software di base
…
Introduzione all’Informatica
Dott. Davide Di Ruscio
Evoluzione dei linguaggi ad alto livello (2/3)
»
»
Paradigma Imperativo
−
Le istruzioni corrispondono ad ordini impartiti all’esecutore, ossia
all’elaboratore
−
Tutti i linguaggi ad alto livello citati precedentemente, ad eccezione del
LISP, fanno parte di questo paradigma
Per esigenza descrittive, per avvicinarsi di più al linguaggio ed ai
concetti matematici ed infine per facilitare i processi di sviluppo
di software sono stati proposti altri paradigmi
Introduzione all’Informatica
Dott. Davide Di Ruscio
39 3
9
Evoluzione dei linguaggi ad alto livello (3/3)
»
»
»
»
40 4
0
Paradigma funzionale:
−
si basa sul concetto di funzione matematica
−
le istruzioni corrispondono al calcolo di funzioni
−
ne fanno parte i linguaggi LISP, SCHEME, HUSKEL, ML…
Paradigma logico:
−
si basa sulla logica matematica e sul concetto di relazione matematica
−
ne fanno parte i linguaggi PROLOG, …
Paradigma orientato ad oggetti (OO):
−
nasce come un’evoluzione del paradigma imperativo in cui si raggruppano i
tipi di dati e le operazioni e procedure che possono essere eseguite su di essi
−
ne fanno parte i linguaggi SMALLTALK, SIMULA 67, C++ (estensione del C),
JAVA (adatto alle applicazioni web), EIFFEL, …
Un diagramma dell’evoluzione dei linguaggi di programmazione ad alto
livello è il seguente (per procedural si intende imperativo):
Introduzione all’Informatica
Dott. Davide Di Ruscio
41 4
1
41
Introduzione all’Informatica
Dott. Davide Di Ruscio
Applicazioni informatiche
»
»
»
»
»
»
Numeriche:
−
richiedono grandi quantità di calcoli
−
es.: studi statistici, traiettorie satellitari, previsioni meteorologiche, studio andamento fenomeni fisici, ...
Gestionali:
−
riguardano la gestione di aziende ed attività
−
es.: gestione produzione, fornitori, clienti, dipendenti, …
Telematiche:
−
sfruttano le reti per offrire servizi e permettere transazioni a distanza
−
es.: prenotazioni, bancomat, archivi pubblici, applicazioni web, …
Automazione industriale:
−
per la gestione automatica di impianti, catene di montaggio in aziende manifatturiere, …
−
includono applicazioni di robotica, software progettuali, …
Dedicate:
−
per contesti e funzionalità molto specifiche e delicate che richiedono soluzioni ad-hoc
−
es: controllo reattori nucleari, dispositivi ad alto rischio, strumentazione di bordo di aerei, …
…
Introduzione all’Informatica
Dott. Davide Di Ruscio
42 4
2
Aree disciplinari dell’informatica
»
Algoritmi e strutture dati
»
Linguaggi di programmazione
»
Architetture degli elaboratori
»
Sistemi operativi
»
Ingegneria del software
»
Basi di dati e sistemi per il reperimento dell’informazione
»
Intelligenza artificiale
»
Grafica computerizzata
»
Interazione uomo-macchina
»
Visione e robotica
»
…
Introduzione all’Informatica
Dott. Davide Di Ruscio
43 4
3
Punti Chiave
»
Concetti fondamentali
−
Informatica
−
Algoritmo
−
Programma
»
Linguaggi di programmazione
»
Software
[Ref: Cap. 1, 2, 12 del libro di testo]
Introduzione all’Informatica
Dott. Davide Di Ruscio
44 4
4