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 Si maggiore = numero Si Ci sono altri numeri? No output maggiore No .

Nel sistema di numerazione decimale vengono usate 10 cifre. o in altre parole “0” e “1”. Questo sistema di rappresentazione è detto sistema binario. All’interno di un calcolatore le cifre vengono memorizzate in un circuito elettronico che può assumere solo 2 stati: assenza o presenza di corrente. poiché si basa su due sole cifre. .

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 … … .Il sistema di numerazione decimale e binario possono essere “collegati”.

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 2 4 + 0 x 2 3 + 0 x 2 2 + 1 x 2 1 + 0 x 2 0 = 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 .

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 .Per convertire un numero da decimale a binario basta dividere esaustivamente il numero decimale e utilizzare i resti. Ad esempio. scritti al contrario.

Nella codifica ASCII possiamo trovare simboli speciali. lettere accentate. Questo significa che il computer utilizza 8 bit (1 byte) per rappresentare ogni carattere. Questa codifica associa a ogni carattere un numero (da 0 a 255). numeri. segni di punteggiatura.Il computer per rappresentare i caratteri usa la codifica ASCII (American Standard Code for Information Interchange). .

.

Ad ogni pixel viene associato un colore. il quale è suddiviso in 3 componenti: R (Red). detti pixel. chiamato spazio. A ognuno di questi componenti viene attribuito un valore da 0 a 256. . Questa modalità scompone l’immagine nei singoli punti che la compongono. Unendo i 3 livelli possiamo ottenere fino a 26 milioni di sfumature differenti. G (Green) e B (Blue).Un’immagine all’interno di un computer viene memorizzata tramite la modalità bitmap (mappa di caratteri).

ed è questo il motivo per cui questa modalità di rappresentazione delle immagini è chiamata Bitmap a 24 bit. ogni pixel è costituito da 24 bit.Quindi ogni immagine bitmap è costituita da triplette di byte RGB. Visto che ogni componente viene definito da 1 byte (8 bit). Tuttavia esistono delle ottimizzazioni che consentono di ridurre l’utilizzo di spazio di memoria da parte dell’immagine. .

Un tipico esempio è il formato TIFF (Tagged Image File Format). E’ il formato utilizzato maggiormente dalle fotocamere digitali. Un tipico esempio è il formato JPEG (Joint Photographic Experts Group): in questo caso vengono tolte dall’immagine tutti quei dettagli che possono essere trascurati. Compressione con perdita di informazioni. poiché l’occhio umano non riesce a catturarli perfettamente.  Compressione senza perdita di informazioni. . il quale elimina tutte le ridondanze nei bit delle immagini.

Come già detto. . tramite appositi operatori. possiamo eseguire delle operazioni tra bit. OR e NOT e ogni attività sul computer si basa su di essi. I tre principali operatori logici sono AND. Così come per i numeri decimali. il computer è in grado di comprendere solo gli stati binari “0” e “1”.

Cioè: NOT 0 = 1 e NOT 1= 0 . trasformandolo da 0 a 1 e viceversa. Il suo compito è quello di invertire il valore del bit.L’operatore NOT è il più semplice e opera solo su un bit.

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 AND 1 AND 1 AND 0 1 0 1 = = = = 0 0 0 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 OR 1 OR 1 OR 0= 1= 0= 1= 0 1 1 1 OR 0 1 0 0 1 1 1 1 .

informatica e linguistica. Ogni linguaggio di programmazione possiede:  una sintassi.Un linguaggio di programmazione è un linguaggio formale dotato di una sintassi ben definita per scrivere programmi per calcolatori. In matematica. simboli o lettere. cioè l'insieme delle regole che una porzione di codice deve seguire per essere considerata conforme a quel linguaggio  una semantica. cioè sopra un insieme finito di oggetti tendenzialmente semplici che vengono chiamati caratteri. un compito improponibile per programmi meno che semplicissimi. linguaggio formale si intende un insieme di stringhe di lunghezza finita costruite sopra un alfabeto finito. cioè l'insieme delle regole di associazione tra costrutti del linguaggio sintatticamente corretti e le relative azioni univoche ad esse associate . logica. in una forma più vicina al linguaggio umano scritto: l'alternativa sarebbe scrivere direttamente le istruzioni nel codice macchina del particolare processore.

Vediamo un elenco dei più famosi linguaggi di programmazione: Fortran (1957) C (1972) Cobol HTML XML Basic (1964) C++ (1986) Visual Basic Javascript Pascal (1970) Java (1995) SQL VBScript Programmare in un dato linguaggio di programmazione significa generalmente scrivere uno o più semplici file di testo.h> int main(void) { printf("Hello World!\n"). } . return 0. chiamato codice sorgente. Ad esempio questo è un programma scritto in C: #include <stdio.

ovvero viene tradotto in linguaggio macchina dal compilatore che produce così un file binario eseguibile direttamente sul computer .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.

%esp andl$-16.file "hello.Vediamo come il codice sorgente del precedente programma C viene convertito in linguaggio assembly: #include <stdio.text . . return 0.: 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).c" .type main. %eax leave ret .B. %esp movl$0.string "Hello World!" . %ebp subl$8.LC0. %eax shrl$4. %eax addl$15. @function main: pushl %ebp movl%esp.section .globl main . %eax sall$4. %esp movl$.h> int main(void) { printf("Hello World!\n").LC0: . (%esp) callputs movl$0. %eax addl$15. } N. %eax subl%eax.rodata .

Il codice macchina è composto da un set di istruzioni (detto ISA. Ad esempio i PC odierni utilizzano set di istruzioni macchina chiamati:  i386 (per processori a 32 bit)  amd64 (per processori a 64 bit) .Il linguaggio macchina è un linguaggio comprensibile (praticamente) solo dal computer. Ogni computer. Instruction Set Architecture) codificate in codice binario. o per meglio dire. ogni processore ha un proprio codice macchina che può essere diverso da processore a processore.

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) .

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  . film e fotografie (multimedia e intrattenimento) telefonia e video-telefonia (VoIP). musica.  In ambiente casalingo:          ricerca e studio Giochi tv.Vediamo adesso alcuni possibili impieghi dei computer.

 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'autoapprendimento 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 .

 SOFTWARE (SW): indica un programma o un insieme di programmi in grado di funzionare su un elaboratore. Generalmente è anche riferito a qualsiasi componente fisico di una periferica o di una apparecchiatura elettronica. meccaniche ed elettroniche che gli consentono di funzionare. il software “non si tocca con mano”.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. Tanto per intendersi. ovvero tutte quelle parti magnetiche. l'hardware sì! . ottiche.

. 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.Esaminiamo adesso alcune delle caratteristiche principali dei calcolatori.

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) .

quella del computer ad uso privato. 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). Caratteristiche principali:  basse prestazioni. Al giorno d'oggi il termine personal computer è invalso ad indicare una specifica fascia del mercato dell'informatica. o per la piccola azienda.Personal Computer dovrebbe essere. nel significato originale del termine. o casalingo. per uffici. ma adatte all'uso domestico  basso costo  impiegato per l'utilizzo individuale .

.

offrendo a parità di prestazioni una maggiore comodità. conosciuto anche con i nomi inglesi laptop e notebook.Il computer portatile. Stanno rapidamente sostituendo i tradizionali PC desktop. Caratteristiche principali:  basse prestazioni. per essere trasportato con facilità. è un computer caratterizzato principalmente dalla riduzione del peso e delle dimensioni. 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 .

.

Alle volte il tablet è costituito da un portatile con lo schermo sensibile al tatto e ribaltable su se stesso. Un tablet è dotato di un ampio schermo sensibile al tatto. Per interagire spesso si utilizza una penna o le dita.E’ un’ulteriore evoluzione dei computer portatili. .

.

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. di un calendario. dotato di uno schermo sensibile al tocco (o Touch Screen). Originariamente concepito come agenda elettronica (organizer). ed effettuare semplici elaborazioni  possiede una alimentazione autonoma a batteria  è limitata la possibilità di collegamento con altre periferiche . di una lista di impegni/attività e della possibilità di emorizzare note e appunti (anche vocali) (personal information manager). spesso indicato in lingua inglese con l'acronimo PDA (Personal Digital Assistant). tali da essere portato sul palmo di una mano. o sistema non particolarmente evoluto dotato di un orologio.Un computer palmare (detto anche palmare). si è nel corso degli anni arricchito di funzioni sempre più potenti ed avanzate. o con l'ormai desueto termine palmtop. di una calcolatrice. di una rubrica dei contatti. è un computer di dimensioni contenute.

.

.

.

.

Periferiche di INPUT Tastiera Mouse Trackball Scanner Touchpad Dispositivi di archiviazione Hard disk interni/esterni Unità di calcolo CPU Memoria principale RAM Periferiche di OUTPUT CD/DVD Penna USB Speaker Monitor Stampante .

Alimentatore Lettore/Masterizzatore CD/DVD CPU RAM Scheda video Scheda di rete Hard disk Scheda madre .

Tastiera/Mouse Porte USB Porte Audio Monitor .

Porta FireWire Porta Ethernet (di rete) Porta Parallela .