Fondamenti La Tecnologia dell’Informazione Tipi di ... · Il telelavoro riduce il pendolarismo i...

Post on 18-Feb-2019

215 views 0 download

transcript

Modulo 1- Lezione 1 di 4

Concetti di Base della teoria dell’Informazione

Fondamenti

La Tecnologia dell’Informazione

Tipi di Computer

Componenti principali del PC

Si dice algoritmo una sequenza di istruzioni

che può essere impiegata in un’attività di

elaborazione dei dati.

Un algoritmo è costituito da una serie di passi,

ognuno dei quali è semplice e porta alla

risoluzione del problema.

In un algoritmo è possibile definire dei cicli,

che ripetono più volte i passi, e delle

condizioni: in pratica alcuni passi possono

essere eseguiti solo sotto determinate

ipotesi.

Esempio: scrivere un algoritmo che individua il

maggiore di una serie.

L’algoritmo accetta in ingresso una serie di

numeri (input), e produce in uscita un

risultato (output).

Per rappresentare gli algoritmi utilizziamo la

rappresentazione a pseudocodice, la quale

descrive in linguaggio naturale le operazioni

che descrivono l’algoritmo.

Algoritmo NumeroMaggiore

Input: elenco non vuoto di numeri (E)

Output: il maggiore dei numeri in E

maggiore E1

Per ogni numero in E fai

Se numero > maggiore, allora

maggiore numero

Restituisci maggiore

maggiore = E1

Leggi numero

successivo

numero

>

maggiore

maggiore = numero

Ci sono

altri

numeri?

output maggiore

No

No

Si

Si

Nel sistema di numerazione decimale vengono

usate 10 cifre.

All’interno di un calcolatore le cifre vengono

memorizzate in un circuito elettronico che

può assumere solo 2 stati: assenza o

presenza di corrente, o in altre parole “0” e

“1”.

Questo sistema di rappresentazione è detto

sistema binario, poiché si basa su due sole

cifre.

Il sistema di numerazione decimale e binario

possono essere “collegati”, vediamo un

esempio.

Sistema decimale Sistema binario

0 0

1 1

2 10 = 1*21 + 0*20

3 11 = 1*21 + 0*20

4 100 = 1*22 + 0*21 + 0*20

… …

Per convertire un numero binario in un numero

decimale basta sommare le varie potenze di

due corrispondenti alla cifra binaria.

10011010010=

1 x 210 + 0 x 29 + 0 x 28 + 1 x 27 + 1 x 26 + 0 x

25 + 1 x 24 + 0 x 23 + 0 x 22 + 1 x 21 + 0 x 20 =

1 x 1024 + 0 x 512 + 0 x 256 + 1 x 128 + 1 x 64

+ 0 x 32 + 1 x 16 + 0 x 8 + 0 x 4 + 1 x 2 + 0 x

1 = 1234

Per convertire un numero da decimale a binario basta dividere esaustivamente il numero decimale e utilizzare i resti, scritti al contrario. Ad esempio, usando 1234

1234 : 2 = 617 resto: 0

617 : 2 = 308 resto: 1

308 : 2 = 154 resto: 0

154 : 2 = 77 resto: 0

77 : 2 = 38 resto: 1

38 : 2 = 19 resto: 0

19 : 2 = 9 resto: 1

9 : 2 = 4 resto: 1

4 : 2 = 2 resto: 0

2 : 2 = 1 resto: 0

Quoziente = 1 Numero: 10011010010

Il computer per rappresentare i caratteri usa la

codifica ASCII (American Standard Code for

Information Interchange). Questa codifica

associa a ogni carattere un numero (da 0 a

255). Questo significa che il computer

utilizza 8 bit (1 byte) per rappresentare ogni

carattere.

Nella codifica ASCII possiamo trovare simboli

speciali, numeri, segni di punteggiatura,

lettere accentate.

Un’immagine all’interno di un computer viene memorizzata tramite la modalità bitmap(mappa di caratteri).

Questa modalità scompone l’immagine nei singoli punti che la compongono, detti pixel.

Ad ogni pixel viene associato un colore, il quale è suddiviso in 3 componenti: R (Red), G (Green) e B (Blue).

A ognuno di questi componenti viene attribuito un valore da 0 a 256, chiamato spazio.

Unendo i 3 livelli possiamo ottenere fino a 26 milioni di sfumature differenti.

Quindi ogni immagine bitmap è costituita da

triplette di byte RGB. Visto che ogni

componente viene definito da 1 byte (8 bit),

ogni pixel è costituito da 24 bit, ed è questo

il motivo per cui questa modalità di

rappresentazione delle immagini è chiamata

Bitmap a 24 bit.

Tuttavia esistono delle ottimizzazioni che

consentono di ridurre l’utilizzo di spazio di

memoria da parte dell’immagine.

Compressione senza perdita di informazioni.Un tipico esempio è il formato TIFF (Tagged Image File Format), il quale elimina tutte le ridondanze nei bit delle immagini.

Compressione con perdita di informazioni. Un tipico esempio è il formato JPEG (Joint Photographic Experts Group): in questo caso vengono tolte dall’immagine tutti quei dettagli che possono essere trascurati, poiché l’occhio umano non riesce a catturarli perfettamente. E’ il formato utilizzato maggiormente dalle fotocamere digitali.

Come già detto, il computer è in grado di

comprendere solo gli stati binari “0” e “1”.

Così come per i numeri decimali, possiamo

eseguire delle operazioni tra bit, tramite

appositi operatori.

I tre principali operatori logici sono AND, OR e

NOT e ogni attività sul computer si basa su di

essi.

L’operatore NOT è il più semplice e opera solo

su un bit.

Il suo compito è quello di invertire il valore del

bit, trasformandolo da 0 a 1 e viceversa.

Cioè:

NOT 0 = 1

e

NOT 1= 0

L’operatore AND accetta due bit e restituisce

come risultato 1 se e solo se entrambi i valori

che gli abbiamo sottoposto sono uguali a 1.

0 AND 0 = 0

0 AND 1 = 0

1 AND 0 = 0

1 AND 1 = 1

AND 0 1

0 0 0

1 0 1

L’operatore OR accetta due bit e restituisce

come risultato 1 almeno uno dei valori che

gli abbiamo sottoposto è uguale a 1.

0 OR 0 = 0

0 OR 1 = 1

1 OR 0 = 1

1 OR 1 = 1

OR 0 1

0 0 1

1 1 1

Un linguaggio di programmazione è un linguaggio formale

dotato di una sintassi ben definita per scrivere programmi per

calcolatori, in una forma più vicina al linguaggio umano

scritto: l'alternativa sarebbe scrivere direttamente le

istruzioni nel codice macchina del particolare processore, un

compito improponibile per programmi meno che

semplicissimi.

In matematica, logica, informatica e linguistica, linguaggio

formale si intende un insieme di stringhe di lunghezza finita

costruite sopra un alfabeto finito, cioè sopra un insieme finito

di oggetti tendenzialmente semplici che vengono chiamati

caratteri, simboli o lettere.

Ogni linguaggio di programmazione possiede:

una sintassi, cioè l'insieme delle regole che una porzione di

codice deve seguire per essere considerata conforme a quel

linguaggio

una semantica, cioè l'insieme delle regole di associazione tra

costrutti del linguaggio sintatticamente corretti e le relative

azioni univoche ad esse associate

Vediamo un elenco dei più famosi linguaggi di programmazione:

Fortran (1957) Basic (1964) Pascal (1970)

C (1972) C++ (1986) Java (1995)

Cobol Visual Basic SQL

HTML Javascript VBScript

XML

Programmare in un dato linguaggio di programmazione significa generalmente scrivere uno o più semplici file di testo, chiamato codice sorgente.

Ad esempio questo è un programma scritto in C:#include <stdio.h>

int main(void)

{

printf("Hello World!\n");

return 0;

}

Il codice sorgente può essere eseguito sul computer in modi diversi a seconda del tipo di linguaggio di programmazione utilizzato, è necessario quindi distinguere tra due principali famiglie di linguaggi:

linguaggi interpretati: in questi linguaggi il codice sorgente viene passato direttamente ad un programma interprete che esegue le istruzioni presenti nel codice del programma sorgente

linguaggi compilati: in questi linguaggi il codice sorgente viene compilato, ovvero viene tradotto in linguaggio macchina dal compilatore che produce così un file binario eseguibile direttamente sul computer

Vediamo come il codice sorgente del precedente programma

C viene convertito in linguaggio assembly:

.file "hello.c"

.section .rodata

.LC0:

.string "Hello World!"

.text

.globl main

.type main, @function

main:

pushl %ebp

movl%esp, %ebp

subl$8, %esp

andl$­16, %esp

movl$0, %eax

addl$15, %eax

addl$15, %eax

shrl$4, %eax

sall$4, %eax

subl%eax, %esp

movl$.LC0, (%esp)

callputs

movl$0, %eax

leave

ret

#include <stdio.h>

int main(void)

{

printf("Hello World!\n");

return 0;

}

N.B.: questo non è un file

binario eseguibile è un file di

testo che contiene il codice

sorgente del programma scritto

in linguaggio assembly (un

passo prima della traduzione in

linguaggio macchina).

Il linguaggio macchina è un linguaggio

comprensibile (praticamente) solo dal computer.

Ogni computer, o per meglio dire, ogni processore

ha un proprio codice macchina che può essere

diverso da processore a processore.

Il codice macchina è composto da un set di

istruzioni (detto ISA, Instruction Set Architecture)

codificate in codice binario.

Ad esempio i PC odierni utilizzano set di istruzioni

macchina chiamati:

i386 (per processori a 32 bit)

amd64 (per processori a 64 bit)

La nuova società dell’informazione è caratterizzata da un impiego più ampio delle risorse informatiche.

Che cos'è l'informatica?

è la tecnologia che viene utilizzata per la progettazione e la realizzazione di moderni elaboratori

Conseguenze sul lavoro e sulla vita quotidiana sono:

nascita di una New Economy

aumento della produttività in tutti i campi

riduzione dei tempi e delle attese per i servizi

In questi anni si vedrà la diffusione capillare di applicazioni generalizzate della ”Tecnologia dell’informazione” anche detta ICT (Information and Communication Technology)

New Economy: termine coniato alla fine degli anni '90 per indicare ciò che si riteneva un'evoluzione da un'economia basata sulla produzione industriale/manifatturiera, verso un'economia basata sui servizi ed in particolare sulle nuove tecnologie informatiche e telematiche gestibili su internet.

Conseguenze della New Economy:

aumento di efficienza in fase di produzione ed erogazione dei servizi da parte delle aziende

perdita dei posti di lavoro tradizionali e nascita di nuovi impieghi

Il telelavoro

riduce il pendolarismo

i lavoratori possono concentrarsi su un compito specifico

orari più flessibili

non sono più necessari grandi spazi aziendali

diminuzione dei rapporti umani

mancanza del lavoro di gruppo (dipende)

Vediamo adesso alcuni possibili impieghi dei computer.

In ambiente casalingo: ricerca e studio

Giochi

tv, musica, film e fotografie (multimedia e intrattenimento)

telefonia e video-telefonia (VoIP), segreteria e fax

email e newsgroup

acquisti on-line (e-commerce)

on-line banking (o home banking)

Chat

In ambiente amministrativo: registrazione pubblica (censimenti e registri)

dichiarazione dei redditi

voto elettronico

In ambiente ospedaliero:

catalogazione dei pazienti

controllo delle ambulanze

apparecchiature diagnostiche (ad esempio la TAC)

apparecchiature chirurgiche (ad esempio bracci meccanici di precisione)

In ambiente scolastico:

registrazione degli studenti

preparazione dell'orario (in maniera automatica)

CBT (Computer Based Training) per l'auto-apprendimento

apprendimento a distanza (e-learning)

esercitazioni in rete via internet

Impatto sull'individuo

il primostress determinato da ritmi sempre più frenetici

riduzione dell'attività fisica e dei contatti interpersonali

necessità di continui aggiornamenti sulle nuove tecnologie

nuovi problemi nei settori di privacy e sicurezza

Evoluzione delle tecnologie elettroniche

Il primo calcolatore della storia dell'informatica si chiamava ENIAC ed aveva delle capacità di calcolo ridicole rispetto anche ad un semplice telefono cellulare odierno

Il progresso è dovuto a vari fattori:

miniaturizzazione dei componenti elettronici

riduzione dei prezzi dei componenti

maggiore facilità di uso delle apparecchiature hardware e software

ricerca di algoritmi e tecniche matematiche sempre più efficienti

Il computer è una apparecchiatura elettronica che possiede le seguenti caratteristiche:

è rapido nell'effettuare calcoli matematici (anche complessi)

è preciso nell'esecuzione delle operazioni assegnategli

è versatile

E' importante fin da ora distinguere le due componenti implementative che costituiscono ciò che noi oggi chiamiamo semplicemente “computer”:

HARDWARE (HW): è la parte fisica di un personal computer, ovvero tutte quelle parti magnetiche, ottiche, meccaniche ed elettroniche che gli consentono di funzionare. Generalmente è anche riferito a qualsiasi componente fisico di una periferica o di una apparecchiatura elettronica.

SOFTWARE (SW): indica un programma o un insieme di programmi in grado di funzionare su un elaboratore.

Tanto per intendersi, il software “non si tocca con mano”, l'hardware sì!

Esaminiamo adesso alcune delle caratteristiche principali dei calcolatori.

Vantaggi:

Rapidità

Precisione

capacità di eseguire numerose operazioni ripetitive

capacità di riuscire a gestire grandi moli di dati

capacità di riuscire ad integrare e memorizzare grandi moli di dati

Svantaggi:

mancanza di intelligenza e di creatività

difficoltà in situazioni nuove non previste

possibilità di guasti (sia a componenti HW sia a componenti SW)*

* Vedi ad esempio il “Millennium Bug”: errore software dovuto al cambio del tipo di data in alcuni programmi (Problema Y2K). Problema di alcuni software ormai risolto.

E' possibile suddividere l'insieme dei calcolatori

in varie categorie:

Mainframe

Minicomputer

Network Computer

Personal Computer

Laptop Computer (o Notebook o Computer

Portatili)

Palmari (o PDA – Personal Digital Assistant)

Personal Computer dovrebbe essere, nel significato originale del termine, un qualsiasi computer che sia stato progettato per l'uso da parte di una singola persona (in opposizione per esempio ai mainframe a cui interi gruppi di persone accedono attraverso terminali remoti).

Al giorno d'oggi il termine personal computer è invalso ad indicare una specifica fascia del mercato dell'informatica, quella del computer ad uso privato, o casalingo, per uffici, o per la piccola azienda.

Caratteristiche principali:

basse prestazioni, ma adatte all'uso domestico

basso costo

impiegato per l'utilizzo individuale

Il computer portatile, conosciuto anche con i nomi inglesi laptop e notebook, è un computer caratterizzato principalmente dalla riduzione del peso e delle dimensioni, per essere trasportato con facilità. Stanno rapidamente sostituendo i tradizionali PC desktop, offrendo a parità di prestazioni una maggiore comodità.

Caratteristiche principali:

basse prestazioni, ma adatte all'uso domestico

basso costo (leggermente superiore a quello di un PC Desktop)

impiegato come sistema di elaborazione portatile individuale

possiede una alimentazione autonoma a batteria

E’ un’ulteriore evoluzione dei computer

portatili. Un tablet è dotato di un ampio

schermo sensibile al tatto. Per interagire

spesso si utilizza una penna o le dita.

Alle volte il tablet è costituito da un portatile

con lo schermo sensibile al tatto e ribaltable

su se stesso.

Un computer palmare (detto anche palmare), spesso indicato in lingua inglese con l'acronimo PDA (Personal Digital Assistant), o con l'ormai desueto termine palmtop, è un computer di dimensioni contenute, tali da essere portato sul palmo di una mano, dotato di uno schermo sensibile al tocco (o Touch Screen). Originariamente concepito come agenda elettronica (organizer), o sistema non particolarmente evoluto dotato di un orologio, di una calcolatrice, di un calendario, di una rubrica dei contatti, di una lista di impegni/attività e della possibilità di emorizzare note e appunti (anche vocali) (personal information manager), si è nel corso degli anni arricchito di funzioni sempre più potenti ed avanzate.

Caratteristiche principali:

basse prestazioni (meno potenti di Notebook e PC)

basso costo (inferiore a quello di un Laptop o Desktop PC)

impiegato come sistema tascabile in grado di prendere appunti fare da agenda, ed effettuare semplici elaborazioni

possiede una alimentazione autonoma a batteria

è limitata la possibilità di collegamento con altre periferiche

Tastiera Mouse Trackball Scanner Touchpad

Hard disk interni/esterni

CD/DVD Penna USB

Dispositivi di archiviazione

Unità di calcolo

CPU

Memoria principale

RAM

Speaker Monitor Stampante

Periferiche di OUTPUT

Periferiche di INPUT

Alimentatore

RAMCPU

Scheda video

Scheda di rete Hard disk

Scheda madre

Lettore/Masterizzatore

CD/DVD

Tastiera/Mouse

Monitor

Porte USB

Porte Audio

Porta FireWire

Porta Parallela

Porta Ethernet (di rete)