2. Obiettivi
Questo modulo permetter à al discente di comprendere i concetti fondamentali delle
Tecnologie dell’Informazione e della Comunicazione (ICT) ad un livello generale
conoscere le varie parti di un computer, quindi, sar à in grado di :
Comprendere cosa è l’hardware, conoscere i fattori che influiscono sulle prestazioni di
un computer e sapere cosa sono le periferiche.
Comprendere cosa è il software e fornire esempi di applicazioni di uso comune e di
sistemi operativi.
Comprendere come vengono utilizzate le reti informatiche e cono scere le diverse
modalità di collegamento a Internet.
Comprendere cosa sono le Tecnologie dell ’Informazione e della Comunicazione (ICT) e
fornire esempi della loro applicazione pratica nella vita quotid iana.
Comprendere le problematiche di igiene e sicurezza associate al l’impiego dei computer.
Riconoscere importanti problematiche di sicurezza informatica a ssociate all’impiego dei
computer.
Riconoscere importanti problematiche legali relative al diritto di riproduzione (copyright)
e alla protezione dei dati associate all ’impiego dei computer.
3. Algoritmo: definizione
In informatica, con il termine algoritmo si
intende un metodo per la risoluzione di un
problema adatto a essere implementato sotto
forma di programma.
Dunque, più dettagliatamente esso è:
“una sequenza logica di istruzioni elementari
(univocamente interpretabili) che, eseguite in
un ordine stabilito, permettono la soluzione di
un problema in un numero finito di passaggi ”.
4. Proprietà algoritmi
la sequenza di istruzioni deve essere finita;
essa deve portare ad un risultato;
le istruzioni devono essere tutte eseguibili
dall’esecutore;
le istruzioni devono essere espresse in modo
non ambiguo.
5. Esempio: somma di due
numeri digitati dall’utente
INIZIO
a) Ci vogliono i due numeri interi (ingredienti);
b) Acquisisci il primo numero dalla tastiera;
c) Acquisisci il secondo numero dalla tastiera;
d) Somma i due numeri;
e) Mostra il risultato sullo schermo.
FINE
6. Rappresentazione degli
Algoritmi
prima di passare al codice (programma)
utilizzando un linguaggio di programmazione,
si usa utilizzare un diagramma di flusso o
diagramma a blocchi o flow-chart
Fa uso di:
SIMBOLI GRAFICI (figure geometriche), per la
sequenza di Istruzioni
DATI:
Costanti: stesso valore nell’esecuzione
Variabili: possono variare durante l’esecuzione
11. Informazione
Tutto ciò che possiede un significato per l ’uomo e
che viene comunicato o conservato in vista di una
utilità pratica.
Le informazioni si presentano in varie forme:
Caratteri
Numeri
Immagini
Luce
suoni
Ecc…
12. Trasmissione delle
informazioni
Affinchè 2 entità possano comunicare è necessario che
riescano a capirsi (esempio 2 persone che parlano lingue
diverse).
Allora occorre che siano stabiliti e rispettati:
Il CODICE della trasmissione, cioè le regole secondo
cui viene TRADOTTO il messaggio prima dell ’invio (es.
alfabeto comune e le parole in italiano)
La TECNICA di trasmissione (es. telefono)
Il PROTOCOLLO della trasmissione, cioè le Regole
per uno scambio corretto delle informazioni (es. regole
grammaticali per creare frasi che abbiano un senso
compiuto in Italiano)
13. Esempio
Giochiamo a carte: a poker
Il codice sono il tipo di carte (francesi)
Il protocollo sono le regole del poker
La tecnica: visualizzazione delle carte
Se decido di giocare a Texas Holdem => modifico il protocollo
regole
14. Esempio 2
Giochiamo a carte: a briscola
Il codice è diverso (carte napoletane o siciliane)
Il protocollo sono le regole della briscola
Se decido di giocare a scopa => modifico il protocollo
regole
15. Trasmissione delle informazioni(2)
I caratteri e i simboli che compongono il
Messaggio e che vengono trasformati per
viaggiare sul mezzo trasmissivo sono detti
SEGNALI
I Segnali possono essere:
DIGITALI: se associati a cifre binarie (0,1)
ANALOGICI: se sono rappresentati da
grandezze che variano con continuit à nel
tempo
17. Rappresentazione dei dati
Come rappresentare i numeri e le operazioni
nel pc? (sistemi di numerazione)
Come rappresentare i caratteri?
E come rappresentare immagini, suoni,
ecc…?
18. Rappresentazione dei numeri
Sistemi posizionali.
Es. Decimale, binario, esadecimale, ottale
Sistemi non posizionali
Es. Romano
19. Rappresentazione dei numeri
Sistemi non posizionali .
Esempio: Sistema Numerazione I=1
Romano.
V=5
X = 10
L = 50
Esempio: MCD = CDM
C = 100
Infatti. 1000+100+500=100+500+1000
D = 500
M = 1000
20. Rappresentazione dati
Sistemi posizionali
La posizione è importante!!!
Esempio 853 358 (sistema decimale)
Posto 2 Posto 0
Posto 1
Infatti:
853= 8*10 2 + 5*101 + 3*100 =800 + 50 + 3
358= 3*10 2 + 5*101 + 8*100 =300 + 50 + 8
21. Sistema Decimale
B=10 => A={0,1,2,3,4,5,6,7,8, 9 (=10-1) }
Ogni cifra decimale deve essere una
dell’alfabeto
22. Sistema Binario
B=2 => A={0,1}
Il Sistema Binario è un sistema posizionale
basato su due sole cifre: 0 e 1 detti BIT
(Binary Digit)
Esempi di numeri binari :
101
10010101
1010211 non è binario, infatti 2 {0,1}
23. Perché il sistema binario?
I computer non parlano la nostra stessa
lingua, ma utilizzano un sistema formato da
due numeri 0 e 1 (On e Off, passaggio o
assenza di corrente elettrica)
24. Conversione 2 -> 10
Si moltiplica ogni cifra per la potenza di 2 in base alla posizi one occupata.
• Esempio: convertiamo 1011 in decimale
corrisponde a 1*23 + 0*22 + 1*21 +1*20 = (11)10 in decimale
30. In windows
Nei sistemi windows è possibile convertire un numero tra i principali sistemi
numerici :
il binario(Bin),
l’ottale (Oct).
Il decimale (Dec)
l’esadecimale (Hex).
Start/Tutti i programmi/Accessori/Calcolatrice
scegliere menu Visualizza/Scientifica.
31. Rappresentare i caratteri in forma
binaria
A seconda del sistema, per rappresentare un
carattere servono:
1 byte (8 bit), standard ASCII
2 byte (16 bit), standard UNICODE
32. Standard ASCII
Con 8 bit => 256 simboli => 2 8=256
Cioè
Sommando i singoli valori (1 + 2 + 4 + 8 + 16 + 32 + 64 + 128) si ottiene 255
a cui, aggiungendo anche lo zero, abbiamo 256 possibili valori ottenibili.
256 possibili combinazioni di bit => posso associare a ognuna un
carattere
33. Sistema Esadecimale
I computer “parlano in bit” => per noi sarebbe
molto complicato capire cose del tipo:
0000 1001
1110 0110
1001 0011
….
=> Venne quindi creato il sistema
ESADECIMALE
34. Esadecimale
Usa 16 simboli A={0,1,2,…,9,A,B,C,D,E,F}
Ogni cifra esadecimale “usa” 4 bit
Bit Hex Bit hex
I numeri decimali da 10 a 15 sono stati sostituiti con le prime 6
lettere dell’alfabeto.
35. Rappresentazione dei caratteri
Si è creata una tabella in cui a ogni numero
binario (codice) fanno corrispondere un
carattere
Nella tabella sottostante sono riportati i si
mboli grafici di alcuni caratteri, la loro vale
nza binaria ed il corrispondente valore espre
sso sia in decimale che in esadecimale:
38. Esercizi
Come si rappresentano i caratteri al PC?
Quanti bit utilizza lo Standard ASCII
Quanti caratteri puo’ rappresentare lo
standard ASCII
Quanti bit utilizza lo Standard Unicode?
Quanti bit prende la rappr. Esadecimale?
39. Descrivere le caratteristiche di
una immagine digitale
L’immagine digitale è un’immagine bidimensionale
rappresentata da valori numerici.
Fondamentalmente le immagini digitali sono di due tipi (in
base al tipo di rappresentazione):
RASTER (o bitmap): matrice di punti elementari, chiamati pixel
(da picture element).
VETTORIALE: insieme di nodi formanti linee e poligoni a loro volta
uniti in strutture più complesse.
40. Parentesi: Concetti di base
Che cos'è un pixel?
un pixel è il più piccolo componente discreto di una
immagine sullo schermo
normalmente un punto con colore
Che cos'è la risoluzione video?
la risoluzione è il numero di pixel (o punti) per
pollice dpi (dots per inch)
40
41. Risoluzione
Esempio i mosaici
Più piccoli sono i tasselli maggiore è la qualità
l’immagine
42. Immagine Bitmap o Raster
Caratterizzata da 2 proprietà:
Risoluzione: numero di pixel per centimetro
quadrato (DPI);
Profondità di colore: numero di colori che si
possono usare. Si può avere profondit à:
16 colori (4 bit per pixel)
256 colori (8 bit per pixel)
65536 colori (16 bit per pixel)
16,77 milioni di colori (24-32 bit per pixel)
44. Immagine Bitmap o Raster (2)
Sono costituite da pixel
Consentono una transizione graduale del colore
Se ingrandite si perde in qualit à
Occupano molto spazio
Possono essere salvate in diversi formati:
Compressione Lossless (senza perdita): BMP, TIFF,
PNG, RAW, ecc…
Compressione Lossy (perdita): JPEG, GIF (256 colori)
46. IMMAGINI VETTORIALI
Contengono infomazioni:
Circa le FORME che formano l’immagine
(dimensione, posizione, ecc…)
Circa i COLORI da applicare a ogni forma
RENDERING: processo di creazione
dell’immagine in PIXEL partendo da queste
informazioni
MOTORE DI RENDERING : programma che
esegue il rendering
48. Acquisizione Immagini
Catturandole da schermo (tasto stamp)
Scannerizzarle da formato cartaceo
importarle da fotocamere digitali
Scaricarle da Internet o da CD
OCR: scannerizzando un documento ottengo
una immagine => con OCR di nuovo
documento
49. Esercizi
Da cosa è caratterizzata una immagine
bitmap?
Da cosa è caratterizzata una immagine
vettoriale?
Quali sono i formati più comuni per una
immagine raster?
50. Linguaggi
Con il linguaggio vengono definite:
Il Lessico: insieme delle parole con relativo significato;
La Sintassi: regole per costruire una frase in modo
corretto.
L’uomo utilizza il linguaggio naturale che è molto
ricco di espressività ma è ambiguo:
Esempio: “la bella pesca” può essere interpretata in due
modi:
1. La bella ragazza che pesca
2. Un bel frutto
51. Lunguaggio macchina
Un elaboratore non può però gestire
informazioni ambigue
Il linguaggio macchina è l’unico linguaggio
capito dal computer:
risulta veloce nell’esecuzione
ma ha lo svantaggio di una difficile e lunga
scrittura della sequenza di algoritmi (programma)
e della loro messa a punto.
52. Linguaggi di programmazione
Non è possibile realizzare traduttori dal linguaggio
naturale al linguaggio macchina => servono i
linguaggi di programmazione
essi sono comprensibili all’uomo e, tramite un
traduttore, vengono tradotti in linguaggio macchina
Linguaggio Naturale (Algoritmi)
Linguaggio Programmazione
Linguaggio macchina 1000100011
CPU
53. Esercizi
Quali sono gli elementi del Linguaggio
macchina?
Il linguaggio naturale può essere usato per il
computer?
L’uomo programma oggi col linguaggio
macchina? Con cosa?
54. 1.0.3.2 Distinguere il ruolo dei
connettivi logici (NOT, AND, OR)
Consideriamo le frasi:
A=“Ho fame” B=”Ho i soldi”
Queste affermazioni possono vere o false
I connettivi permettono di legare i due
suddetti enunciati e di crearne un terzo.
Esempio:
Se “ho fame” e “ho i soldi” allora “Vado al
ristorante” => A and B = C
55. Connettivo AND
E vero solo se i due input sono veri.
Tabella di verità:
Posso andare al ristorante
solo se ho i soldi e ho
anche fame
In generale A and B = C è vera se:
A B C
0 0 0
0 1 0 In Algebra di Boole
1 0 0
1 1 1
56. Connettivo OR
E vero se almeno uno i due input è vero.
Tabella di verità:
Fame Soldi Ristorante
0 0 0
Anche se non ho fame, ma
ho i soldi vado al
0 1 1 ristorante e viceversa,
anche se non ho i soldi
1 0 1 ma ho vado al ristorante
1 1 1
In generale A and B = C è vera se:
A B C= A and B
0 0 0
0 1 1 In Algebra di Boole
1 0 1
1 1 1
57. Connettivo NOT
L’operazione NOT ha una variabile di input ed una
variabile di output.
Il valore della variabile di output è l’opposto di quella
di input
A Not A
0 1
1 0
In Algebra di Boole
58. Ripasso
A cosa serve AND?
A cosa serve OR?
A cosa serve NOT?
59. 1.0.3.3 Distinguere fra linguaggio
macchina e linguaggi procedurali
I linguaggi di programmazione sono di due tipi:
basso livello:
linguaggi assemblativi orientati alla macchina (comunicano
direttamente con il computer utilizzando il "linguaggio
macchina");
il "linguaggio macchina“ è l’unico linguaggio compreso dal
computer
alto livello:
orientati all’uomo
fanno uso di uno pseudo linguaggio umano, utilizzando allo
scopo codici operativi in lingua inglese.
Ogni linguaggio di programmazione ha bisogno di un
traduttore
60. I Traduttori: Compilatori e
Interpreti
trasformano un programma sorgente (espresso in
un linguaggio di programmazione), in un programma
oggetto (tradotto in codice binario).
dipendono dal linguaggio di programmazione e
dall’architettura del computer.
Linguaggi ad Alto Livello
Linguaggi ad Alto Livello
(Orientati all’uomo)
(Orientati all’uomo)
C, C++, Java, Visual
C, C++, Java, Visual
Basic, Pascal, ecc…
Basic, Pascal, ecc…
Compilatori o Interpreti
Compilatori o Interpreti Traduttore
Linguaggio Macchina
Linguaggio Macchina
(codice Binario)
(codice Binario)
61. Compilatori e Interpreti: le fasi
I Compilatori:
trasformano un programma “sorgente” (scritto in linguaggio di
programmazione) in un file “oggetto” (tradotto in linguaggio macchina
ma non ancora utilizzabile).
Per rendere “eseguibile” il risultato ottenuto è necessario che sia
ulteriormente trattato da un programma definito “linker” (o link editor),
che collega, tra loro, i vari moduli tradotti ed i riferimenti e sterni (ad
esempio librerie di sistema), creando il programma eseguibile.
Gli Interpreti:
leggono una istruzione alla volta
=> la traducono in codice macchina
=> e la eseguono => traduzione ed esecuzione sono contemporanei
62. Linguaggi Assemblativi ed
assemblatori
I linguaggi assemblativi:
Sono linguaggi di tipo simbolico in quanto utilizzano
dei nomi (simboli) per designare il codice operativo e
le variabili che compongono il programma.
Linguaggi a basso Livello
Linguaggi a basso Livello
Gli Assemblatori sono i traduttori dei linguaggi
assemblativi. ((orientati alla macchina)
orientati alla macchina)
Assembly
Assembly
L’Assembly (assemblatore):
è il primo linguaggio informatico utilizzato, Assemblatore
Assemblatore
è comprensibile agli utilizzatori umani,
ma è talmente simile al linguaggio macchina che
rimane legato al processore su cui viene sviluppato il
programma Linguaggio Macchina
Linguaggio Macchina
Tale programma non potrà essere eseguito su (codice Binario)
(codice Binario)
computer con processori diversi.
63. Alcuni linguaggi di
programmazione
Fortran (FORmula TRANslation): uno dei primi linguaggi di alto
livello ad uso scientifico
COBOL (COmmon Business-Oriented Language) ossia,
letteralmente, "linguaggio orientato alle applicazioni commercia li
comuni"
C, per uso ingegneristico. Usato per scrivere sistemi operativi
come Linux
Java, per applicazioni web
PHP, per applicazioni web
PASCAL, per uso didattico
BASIC, inizialmente per applicazioni didattiche e scientifiche.
Oggi Visual Basic
64. Scrivere un programma con
Pseudo linguaggio
È un modo alternativo per rappresentare gli
algoritmi
Le istruzioni sono descritte tramite frasi
rigorose
Si usano parole chiave, operatori e nomi di
variabili
Non è usabile direttamente => va tradotto in
un linguaggio di programmazione
65. Esempio di pseudo linguaggio
Calcolare l’area di un quadrato dato il lato.
Inizio
PSEUDO LINGUAGGIO
Leggi Lato
PROGRAMMA Area
Area = Lato * Lato INIZIO
Leggi (Lato)
Scrivi Area Area Lato*Lato
Scrivi (Area)
Fine FINE
66. Esercizi
Il linguaggio C è un linguaggio di alto livello?
Differenza tra Interpreti e Compilatori?
Cosa sono i Flow Chart?
L’assembly è un linguaggio di alto livello?
I compilatori traducono un file sorgente in
codice oggetto e quindi con il Linker si
genera il file eseguibile?