






















































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Riassunti di informatica sulla storia del computer, Excel e Windows Access, utili per le ECDL
Tipologia: Sintesi del corso
1 / 62
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!























































Il termine calcolatore designa genericamente un sistema elettronico di elaborazione dati, nato in forma meccanica sviluppatosi in forma analogica e giunto poi alla forma digitale. Il più antico strumento di calcolo, utilizzato per compiere operazioni matematiche fu l’abaco in uso già 2000 anni fa in Cina. Dopo di esso molte furono le scoperte in questo ambito, ma la maggior parte di esse, (come ad esempio la “pascalina” ideata nel 1642 da Blaise Pascal) non vennero mai realizzate. I primi veri progenitori dell’elaboratore videro la luce agli inizi del XIX secolo. Nel 1804 Joseph Marie Jacquard, introdusse una nuova tecnologia per i telai in grado di controllare il movimento di aghi, filo e tessuto attraverso delle schede perforate automatizzando così la procedura di tessitura. A metà del XIX secolo Charles Babbage elaborò una macchina di calcolo in grado, sempre attraverso il sistema delle schede perforate di compiere operazioni aritmetiche, ma non fu mai realizzata. Alla fine del XIX secolo invece Herman Hollerith, un funzionario americano dell’ufficio per il censimento sviluppò una macchina tabulatrice, anch’essa a schede perforate, per automatizzare le operazioni di censimento. Il successo e la richiesta di queste macchine fu tale che nel 1896 Hollerith fondò la Tabulating Machine Company che nel 1924 divenne la International Business Machine (IBM). Tra gli antenati del calcolatore figura poi il Memex, macchina immaginaria progettata dallo scienziato statunitense Vannevar Bush. Quello di Bush era un progetto davvero molto ambizioso, teso a rivoluzionare completamente i concetti di elaborazione, creazione e rappresentazione dell’informazione. L’idea che stava alla base del Memex era quella di un enorme sistema di archiviazione di dati utilizzato a scopi personali. Il macchinario era descritto come una scrivania dotata di schermi traslucidi, una tastiera, un set di bottoni e delle leve. Il Memex avrebbe reso possibile, tramite dispositivi analogici elettro-ottici basati sull'utilizzo di microfilm (tecnologia d'avanguardia all'epoca), la creazione da parte dell'utente di collegamenti tra i dati memorizzati (foto e documenti). Per questo motivo il Memex viene oggi ricordato come primo esempio di ipertesto. Nel 1939 fu la volta del matematico e fisico John Vincent Atanasoff e del suo allievo Clifford Berry i quali costruirono l’Atanasoff Berry Computer meglio noto come ABC il primo calcolatore digitale totalmente elettronico, ma questo non fu mai brevettato. Nel 1946 venne presentato poi l’ENIAC il primo calcolatore elettronico basato interamente su tecnologia a valvole. Progettato presso l’Università della Pennsylvania fu il primo vero calcolatore dell’era elettronica in quanto eliminava tutti i dispositivi meccanici. L’ENIAC era in grado di compiere operazioni molto complesse in pochissimo tempo ma pesava 300 tonnellate e occupava 170 metri quadrati. Quella delle dimensioni rimase per lungo tempo una delle più grandi sfide dell’industria dei calcolatori. Nel 1954 l’IBM propose il primo calcolatore commerciale con memoria su nastro magnetico. Tra le più importanti innovazioni che in quegli anni raggiunse la tecnologia dei calcolatori vi fu quella di usare i transistor al posto dei tubi a vuoto per controllare la corrente di circuito e l’evoluzione dei linguaggi di programmazione. Nel 1959 venne lanciato l’IBM 705 che usava il linguaggio FORTRAN, un linguaggio di programmazione molto più vicino a quello umano (linguaggio ad alto livello). I problemi principali che ostacolavano la diffusione commerciale del calcolatore restavano i costi elevati e la dimensione di queste macchine. Questo durò fino al 1965, quando la Digital Equipement Corporation introdusse il suo primo
minicomputer. Agli inizi degli anni ’70 la Intel Corporation sviluppò il microprocessore, il primo circuito integrato capace di contenere l’intera unità di calcolo di un calcolatore. In seguito venne commercializzato quello che viene oggi considerato il primo personal computer (PC) della storia, l'Apple II, con il suo sistema operativo chiamato Apple Dos. Solo quattro anni dopo, nel 1981, l’IBM brevettò il suo primo pc, destinato ad imporsi come standard di riferimento con il sistema operativo MS-Dos prodotto dalla software house “Microsoft”.
LA MACCHINA DI TURING La macchina di Turing ha rappresentato il modello formale dal quale è nato, negli anni ‘40, il calcolatore così come lo conosciamo oggi. È una macchina astratta (cioè mai costruita realmente) in grado di svolgere in teoria qualunque elaborazione la cui esecuzione possa essere automatizzata. Fu ideata nel 1936 da Alan Turing, un matematico, logico e crittanalista. Turing era partito dal tentativo di risolvere un problema di teoria della calcolabilità: il problema della decisione. Quest’ultimo era uno dei 23 problemi presentati da David Hilbert a Parigi nel 1900, durante il Congresso Internazionale dei matematici. La questione che poneva Hilbert era se potesse esistere un algoritmo in grado di rispondere (i.e. decidere) circa la veridicità o la falsità di qualsiasi enunciato matematico. Dunque Turing nel tentativo di risolvere il problema della decisione inventò il dispositivo astratto più "potente" che fosse mai stato immaginato. La macchina si basa su componenti fisiche (hardware) e programmi (software) ed esiste solo come integrazione di questi elementi. Prima di essa, macchine, programmi e dati erano pensati come entità fisiche separate. Dopo Turing il concetto di macchina sarà caratterizzato solo dall’insieme delle componenti materiali (hardware) e istruzioni (software), non esisterà più una differenziazione tra dati e programmi.
PROBLEMI, ALGORITMI E PROGRAMMI Come abbiamo visto la macchina di Turing risolve problemi attraverso opportune istruzioni scritte in un linguaggio ad essa comprensibile. In questo senso potremmo dire che la macchina di Turing incarna il concetto stesso di algoritmo. Il termine algoritmo deriva dal nome del matematico arabo Muhammad ibn Musa al-Khuwarizmi. Un algoritmo può essere definito come un metodo per risolvere in modo efficiente, univoco, universale, formalmente preciso e finito un problema. Nella sua accezione più ampia, è possibile includere nella categoria degli algoritmi anche una semplice ricetta di cucina oppure il libretto di istruzioni di un elettrodomestico. Entrambi infatti sono una successione di istruzioni precise per la realizzazione di un risultato.
Le proprietà fondamentali di un algoritmo sono: ● Finitezza delle operazioni da svolgere ● Non ambiguità del linguaggio in cui sono scritte le operazioni da effettuare. Questo significa che le istruzioni devono essere scritte in un linguaggio codificato e formale. ● Universalità della procedura algoritmica nel senso che essa deve valere per tutti i problemi dello stesso genere. ● Completezza: tutte le operazioni necessarie devono essere dichiarate in maniera esplicita.
codifica crescano di pari passo con il numero di informazioni da rappresentare. È facile intuire che la gestione di un codice con un elevato numero di simboli può essere molto complessa. È possibile costruire un codice che consenta di rappresentare lo stesso numero di informazioni diverse utilizzando un numero inferiore di simboli? Ciò significa ridurre il numero di simboli a disposizione senza tuttavia ridurre il numero di informazioni che possono essere codificate. La risposta è positiva, ma è evidente che, avendo meno simboli a disposizione, la rappresentazione di un’informazione richiederà una combinazione di più simboli e quindi una maggiore lunghezza dei messaggi codificati. In questo modo, dato un voto, la lunghezza del messaggio codificato sarà pari a due simboli, il doppio rispetto all’unico simbolo richiesto dal codice della Figura 2.3. Si noti inoltre che sono importanti tanto i simboli quanto la posizione che questi occupano nel messaggio.
CODIFICA BINARIA La rappresentazione dell’informazione numerica può adottare varie tecniche. Noi usiamo normalmente la numerazione decimale posizionale, dove una cifra assume un valore dipendente dalla posizione che occupa nel numero. Adottando una numerazione in base 10 si hanno 10 cifre con le quali costruire i numeri (0,1,2,3,4,5,6,7,8,9). Esistono molti altri tipi di numerazione in cui il numero di cifre è minore a 10, come ad esempio nella numerazione binaria. Questa fu inventata nel XVII secolo da Gottfried Liebniz e si basa sull’utilizzo di soltanto due cifre 0 e 1. La differenza è che mentre nella numerazione decimale il valore si misura in potenze di 10, nel caso della numerazione binaria il valore si misura in potenze di 2. L’unico difetto è che a parità di valore da scrivere con la numerazione binaria è necessario impiegare molte più cifre. Questo tipo di numerazione divenne fondamentale con l’avvento dei calcolatori elettronici, poiché le due cifre 0/1 sono intuitivamente associabili alle posizioni On/Off (passaggio di corrente/nessun passaggio di corrente).
RAPPRESENTAZIONE DIGITALE DI UN CODICE Per manipolare ed elaborare informazioni (testo, immagini, audio, video) il calcolatore ha bisogno che queste siano codificate attraverso un codice composto dai soli simboli di 0 e 1. Tale rappresentazione dell’informazione prende il nome di rappresentazione binaria o rappresentazione digitale. Un bit (Binary Digit) rappresenta l’unità minima di informazione ovvero una sola unità informativa che può avere valore “0” o “1”. Dal momento che con un bit è possibile esprimere solo due informazioni, per poter rappresentare un numero maggiore di informazioni sarà necessario combinare i bit in sequenze.
UNITÀ DI MISURA DELL'INFORMAZIONE DIGITALE In informatica l’unità di misura fondamentale è il byte. Un byte è formato da una sequenza di 8 bit contigui. Un byte può rappresentare 256 informazioni diverse. Questo dipende dal fatto che, avendo 8 bit a disposizione ed essendo che ogni bit può assumere due valori (0 e 1), è possibile definire 28=256 diverse combinazioni di bit. Come per ogni unità di misura anche il byte possiede multipli che consentono di rappresentare maggiori quantità di informazioni:
1 kilobyte (KB) = 1024 byte
1 megabyte (MB) = 1KB x 1024 1 gigabyte (GB) = 1MB x 1024 1 terabyte (TB) = 1 GB x 1024 1 petabyte (PB) = 1 TB x 1024
RAPPRESENTAZIONE DIGITALE DEL TESTO La codifica binaria può essere utilizzata anche per rappresentare i caratteri alfanumerici, cioè i caratteri alfabetici, i numeri e gli altri simboli usati nella scrittura di testi. È quindi possibile fornire una rappresentazione binaria di un qualsiasi testo. A tal fine, è necessario che ogni carattere di scrittura possieda una propria rappresentazione binaria univoca. Si noti che anche segni come le parentesi, le cifre numeriche, gli operatori aritmetici, i segni di punteggiatura e le lettere maiuscole devono avere la propria rappresentazione binaria univoca. I codici attualmente più utilizzati per rappresentare digitalmente i testi sono ASCII, un codice di 8 bit (1 byte), ISO Latin 1 anch'essa di 8 bit, la cui tabella comprende oltre alle lettere speciali degli alfabeti latini anche le lettere accentate che si usano nell’alfabeto italiano e UNICODE di 16 bit (2 byte) in grado di codificare anche caratteri appartenenti alla cultura orientale e per questo motivo maggiormente adatto a essere impiegato in ambito globale. Il fatto che un codice “sia di 8 bit” significa che la rappresentazione di un singolo carattere occupa 8 bit e che, complessivamente, il codice è in grado di rappresentare fino a 28= caratteri diversi. Questa considerazione è generalizzabile: dato un codice di N bit possiamo dire che ogni carattere di quel codice occupa N bit e che complessivamente il codice può rappresentare fino a 2N caratteri diversi.
IL CODICE ASCII Il primo alfabeto codificato è stato l’alfabeto anglosassone. Questo primo codice venne chiamato ASCII (American Standard Code for Information Interchange). In origine l’ASCII era a 7 bit, cioè esistevano 27=128 diverse combinazioni di bit per la rappresentazione dei caratteri. Questo significa che ASCII a 7 bit è in grado di rappresentare fino a 128 caratteri diversi. In questo primo standard non era possibile rappresentare caratteri come le lettere accentate, di uso comune nei paesi di influenza neolatina. A questo primo codice ne fece seguito una sua estensione, detto ASCII esteso, utilizzato tutt’oggi. Questo si serve di un byte (8 bit) consentendo la rappresentazione di 28= 256 caratteri diversi nei quali sono contenute anche le lettere accentate. Per codificare una parola occorre recuperare dalla tabella ASCII la sequenza di bit corrispondenti ad ogni lettera che la compone. Ad esempio, poniamo il caso di voler rappresentare la stringa “Inf”. Essa richiede 3 byte, uno per ogni carattere, e l’insieme dei bit corrispondente ad ogni lettera sarà:
RAPPRESENTAZIONE DIGITALE DELLE IMMAGINI La codifica di un’immagine presenta aspetti molto diversi rispetto a quella di un testo. Mentre per i dati testuali l’unità minima è il carattere, per le immagini l’unità è rappresentata dal pixel (picture element – elemento dell’immagine). In sostanza si divide l’immagine in una griglia in cui ogni cella è un pixel e a ogni pixel è associato un colore. In altri termini, la codifica delle
invece di memorizzare quel colore 20 volte, lo memorizzo una volta sola e lo associo ai pixel "dal 10 al 30"). Viceversa, le tecniche con perdita di informazione (lossy) sono disposte a rinunciare alla rappresentazione di alcuni dettagli dell’immagine al fine di ridurre in modo significativo le dimensioni di rappresentazione (es. diminuzione delle sfumature di colore rappresentabili). Un formato compresso molto utilizzato è il formato GIF (Graphic Interchange Format). Sviluppato alla fine degli anni ’80 il formato GIF utilizza per ogni pixel al massimo 8 bit (e non 24 come nello schema RGB) ottenendo in questo modo un notevole risparmio in termini di spazio su disco. Questo formato di rappresentazione è molto popolare su Internet proprio per le sue capacità di compressione che consentono di ridurre drasticamente le dimensioni di rappresentazione di un’immagine pur mantenendo un livello di dettaglio delle tonalità di colore accettabile.
Un altro formato molto utilizzato è il formato JPEG (Joint Photographic Expert Group) nato nel 1986. Questo formato utilizza 24 bit (3 byte) per rappresentare un singolo pixel come nello schema RGB. A differenza del formato GIF, il formato JPEG adotta un sistema di compressione con perdita di informazione. Ad esempio, JPEG effettua delle approssimazioni nella rappresentazione dei punti dell’immagine e accade spesso che punti vicini di diverso colore vengano rappresentati da un unico colore quando la differenza è poco significativa. Un ulteriore tipo di formato è il PNG (Portable Network Graphics). Ideato per sostituire il formato GIF nella trasmissione delle immagini sulla rete, si distingue dai precedenti poiché adotta una tecnica di compressione senza perdita di informazione.
ANATOMIA DI UN CALCOLATORE Il funzionamento di un calcolatore si basa sull’interazione tra componenti fisiche hardware e programmi software. Il termine Hardware, letteralmente “ferraglia”, designa la parte fisica della macchina, composta da tutte le componenti materiali che ne consentono il funzionamento sulla base dei principi dell’elettronica.
Ogni componente svolge una sua funzione di base: _> Elaborazione dati
Memorizzazione dati Trasferimento dati_
Le componenti principali dell’hardware sono: la CPU, la memoria centrale (RAM), la memoria di massa e le periferiche che consentono al calcolatore di comunicare con l’esterno. Oltre a queste, il calcolatore si compone anche di una scheda madre, che è la piastra sulla quale si inseriscono tutte le varie componenti, dal microprocessore all’hard disk, ai connettori provenienti dalle varie periferiche. Inoltre, un calcolatore è dotato di un alimentatore elettrico, un dispositivo che ha il compito di trasformare la corrente alternata proveniente dalla rete elettrica in corrente continua utilizzata dai dispositivi all’interno del calcolatore. Nei calcolatori portatili, oggi molto diffusi, l’alimentatore è affiancato da una batteria che permette il funzionamento del dispositivo anche senza il collegamento alla rete elettrica. Tutti questi elementi sono contenuti nel case ovvero la scatola di metallo che racchiude i componenti del calcolatore.
La CPU (Central Processing Unit) è l’unità centrale del calcolatore. Comprende il controllo logico e l’unità aritmetica e si occupa di eseguire i programmi che sono scritti in linguaggio macchina. Attualmente le CPU sono costituite da microprocessori che racchiudono in un unico circuito integrato le seguenti componenti di calcolo:
L’unità di controllo (CU, Control Unit). La CU esegue le istruzioni dei programmi, coordina le attività del microprocessore, controlla il flusso delle istruzioni tra il microprocessore e la memoria. Inoltre svolge la sua attività in modo ciclico: preleva dalla memoria principale la “prossima” istruzione da eseguire, preleva gli operandi specificati nell’istruzione, decodifica ed esegue l’istruzione e infine ricomincia. L’unità logico aritmetica (ALU, Arithmetic-Logic Unit) è il nucleo di esecuzione dei calcoli, essendo in grado di eseguire operazioni come somma, sottrazione, moltiplicazione e divisione (oltre che le principali operazioni logiche come AND, OR e NOT). Una volta prelevati gli operandi dai Registri di memoria, esegue l'operazione richiesta e ne deposita il risultato nuovamente in memoria. La ALU, insieme all’unità di controllo, collabora al completamento di un ciclo della macchina. I registri di memoria sono delle unità di memoria estremamente veloci con capacità ridotta ma con tempo di accesso molto breve. Le dimensioni variano da 16, 32, 64 bit e vengono utilizzati per immagazzinare le istruzioni e i dati che stanno per essere processati, o sono appena stati processati. I bus sono dei canali di comunicazione tra le varie componenti dell’elaboratore e si differenziano a seconda della funzione svolta. Tra i principali produttori di microprocessori citiamo Intel, Amd, Motorola e Sun. Ogni microprocessore è caratterizzato da un clock che scandisce la sequenza delle operazioni da eseguire. La frequenza di clock indica il numero di operazioni elementari che vengono eseguite dalla CPU nell’unità di tempo ed è uno dei parametri con i quali si valuta la velocità di calcolo di un microprocessore. L’unità di misura della frequenza di clock è l’Hertz (1 Hertz corrisponde ad una operazione al secondo). I microprocessori attualmente in commercio raggiungono frequenze di clock nell’ordine dei GigaHertz (109 Hertz).
MEMORIA PRIMARIA Un calcolatore possiede due tipi di memoria: la memoria primaria o centrale e la memoria secondaria o di massa. La memoria primaria è quella che conserva i programmi in esecuzione e i dati in uso all’interno della CPU. E’ organizzata come una successione di bit raggruppati in unità dotate di indirizzo (un numero progressivo a partire da 0, codificato in esadecimale) dette celle. La velocità di accesso a questa memoria è cruciale perché da essa dipende la reattività del calcolatore alle richieste dell’utente. Il metodo di accesso alla memoria primaria è casuale, nel senso che, conoscendo l’indirizzo, è possibile accedere a una qualsiasi cella di memoria in modo diretto e il tempo di accesso alla cella non dipende dalla sua posizione. Per questo motivo, la memoria primaria è anche detta Random Access Memory o RAM. Un’ulteriore caratteristica distintiva della memoria primaria è la sua volatilità: questo significa che spegnendo il calcolatore, il contenuto delle celle di memoria viene cancellato e non è più recuperabile.
Oltre alla CPU e alla memoria primaria e quella secondaria, il calcolatore ha bisogno di dispositivi di input e output chiamati periferiche per supportare l'interazione con l’ambiente esterno. Le periferiche si collegano al calcolatore mediante le porte (o interfacce) di comunicazione, e possono variare a seconda del tipo e della velocità di trasmissione. Inoltre per ogni tipo di periferica, esiste una scheda chiamata controller che viene connessa alla scheda madre e che ha il compito di gestire il comportamento della periferica. I dispositivi di input consentono di comunicare al calcolatore informazioni provenienti dall’utente o dall’ambiente esterno. I principali dispositivi di input sono: la tastiera, gli strumenti di puntamento (mouse), lo scanner, il microfono, le macchine fotografiche e le videocamere digitali. La testiera è il dispositivo di input principale ed è comunemente affiancata dagli strumenti di puntamento. Questi ultimi, oltre al popolarissimo mouse, sono costituiti dal touchpad, uno strumento molto diffuso sui calcolatori portatili che offre funzionalità analoghe a quelle del mouse. In particolare, il touchpad è costituito da un’area sensibile al movimento e alla pressione delle dita che è collegata con il puntatore sullo schermo. Lo scanner è una periferica che si collega alla macchina, spesso usando una porta che è detta USB (Universal Serial Bus) che permette di riprodurre digitalmente una sorgente cartacea (una fotografia o un documento scritto). Microfoni, macchine fotografiche e videocamere digitali sono dispositivi analoghi a quelli tradizionalmente conosciuti con la differenza che sono in grado di comunicare al calcolatore una versione digitale del suono, delle fotografie e dei video realizzati.
I dispositivi di output consentono al calcolatore di comunicare all’esterno informazioni in esso contenute. I principali dispositivi di output sono: lo schermo, la stampante e le casse per la riproduzione del suono. E’ importante notare che nella maggior parte dei casi il collegamento al calcolatore di una periferica richiede, oltre al collegamento dei cavi alla porta adeguata, l’istallazione di uno specifico software chiamato driver che ha il compito di gestire il flusso di dati diretto e proveniente dal dispositivo, facendo in modo che la periferica funzioni correttamente (rappresenta in pratica il vocabolario contenente il "linguaggio" di comunicazione della periferica). Oltre a quelle menzionate, esistono altre tipologie di periferiche. Tra le più comuni citiamo la scheda di rete, che permette di collegare un calcolatore ad altri calcolatori tramite una rete locale o la rete Internet, e il modem che consente di far comunicare due calcolatori tramite la rete telefonica.
IL RUOLO DEL SOFTWARE Se l'hardware è la componente materiale di un calcolatore, il software ne costituisce la componente immateriale. Il termine software (letteralmente "materia morbida") è l'insieme dei programmi che possono essere eseguiti da un calcolatore. In particolare, un singolo programma software è un insieme di istruzioni che un calcolatore, e più precisamente la CPU, deve eseguire per portare a compimento un certo compito (task). Microsoft Word è un esempio di programma software che contiene istruzioni per la creazione e la gestione di documenti. Nel contesto di Word, il pulsante che consente di formattare in grassetto un testo selezionato è una funzione software associata a un insieme di istruzioni che consentono di
raggiungere l’obiettivo (cioè visualizzare in grassetto una data porzione di testo). Mozilla Firefox è invece un esempio di programma software che si propone come strumento per reperire e visualizzare pagine web. E’ facile pensare a numerosi altri esempi di programmi software, ciascuno con le proprie caratteristiche e finalità. Ne risulta che esistono diverse tipologie di programmi software di cui è opportuno conoscere le specificità.
TIPOLOGIE DI SOFTWARE E’ consuetudine suddividere il software in due macro-categorie: il software di sistema e il software applicativo. Il software di sistema è l’insieme dei programmi che gestiscono le risorse e il comportamento del calcolatore. In questa categoria, il software più importante è il sistema operativo, un insieme di programmi che controlla e gestisce le funzionalità legate a CPU, memoria, periferiche e dispositivi di input/output collegati al calcolatore. Nel software di sistema sono inclusi i firmware e i driver. Il firmware è un software integrato in un dispositivo elettronico per svolgere funzioni specifiche, come l’avvio del dispositivo stesso. Un esempio di firmware è il BIOS (Basic Input-Output System) che è un firmware integrato sulla scheda madre del calcolatore con il compito di eseguire la procedura di avvio all’accensione della macchina. Il driver è un software che affianca uno specifico dispositivo e ne consente il corretto funzionamento. Il driver è normalmente installato all’interno del sistema operativo e consente al calcolatore di utilizzare il dispositivo. Ogni dispositivo possiede il proprio driver e il driver è composto da un insieme di procedure che controllano le varie funzionalità del dispositivo. Ad esempio, una stampante, come ogni dispositivo collegabile a un calcolatore, è dotata del proprio driver, la cui installazione è necessaria affinché il calcolatore possa correttamente farne uso. Il software applicativo comprende tutti i programmi che consentono all’utente di eseguire compiti specifici.
IL SISTEMA OPERATIVO Il sistema operativo (SO) è il software di sistema più importante per il corretto funzionamento di un calcolatore e presiede numerose funzionalità. Da un lato, il sistema operativo si occupa di gestire le componenti fisiche del calcolatore. In particolare, sono di competenza del sistema operativo funzioni come
La gestione della CPU e della memoria principale (RAM). In ogni istante, il calcolatore esegue numerosi programmi. Per questo motivo, il sistema operativo deve stabilire come e in quale ordine questi programmi avranno accesso alla CPU, allocando inoltre lo spazio in memoria principale per ciascuno di essi. La gestione dei file e la memorizzazione sui dispositivi di memoria secondaria. Il sistema operativo è dotato di un modulo denominato file system per la gestione dei file. Questo modulo presiede le operazioni di salvataggio/memorizzazione dei file e le corrispondenti operazioni di lettura/caricamento dei medesimi. Il file system utilizza un’organizzazione dei file in cartelle (directory) per favorire una gestione ordinata e intuitiva dello spazio disponibile da parte dell’utente. L’interazione con le periferiche. Tramite i driver, il sistema operativo è in grado di comunicare con i dispositivi collegati al calcolatore consentendone il corretto funzionamento. Inoltre, il sistema operativo si occupa di gestire l’interazione fra l’utente e il calcolatore. In particolare, è compito del sistema operativo intercettare i comandi dell’utente e fare in modo che essi siano correttamente eseguiti orchestrando il funzionamento delle varie componenti
programmi di un calcolatore. Il software applicativo comprende innumerevoli programmi, ognuno concepito per realizzare specifiche funzionalità di interesse per l'utente finale. Il software applicativo non è pre-installato sul calcolatore: l'utente sceglie quali software applicativi sono di suo interesse e procede con l'installazione. La scelta può richiedere una riflessione: a volte la medesima funzionalità è offerta da più software applicativi e si pone il dubbio di come procedere. In generale, i software applicativi non sono in conflitto fra loro e possono coesistere sul calcolatore senza recarsi reciproco danno. Esistono eccezioni a questa regola generale, come ad esempio il caso dei software anti-virus per i quali è raccomandato l'uso di un unico prodotto di questo tipo alla volta. Fatta eccezione per questi casi, i software applicativi, anche quando analoghi per funzionalità, possono essere installati e usati contemporaneamente sul calcolatore. Si pensi al caso dei browser, i software applicativi per la navigazione su web. Esistono numerosi prodotti che offrono questa funzionalità come ad esempio i noti Internet Explorer e Mozilla Firefox. Entrambi possono essere installati sul calcolatore e possono essere usati contemporaneamente senza alcun problema. Dunque, come scegliere quali software applicativi installare sul proprio calcolatore? Un fattore di scelta è certamente il costo. Numerosi software sono prodotti commerciali ed è necessario pagare il costo di una licenza per poterli installare e utilizzare. Spesso questi software possono essere installati in versione di prova (trial version) che ha una durata limitata nel tempo (tipicamente 30 giorni) o offre funzionalità limitate rispetto alla versione ufficiale. Esistono anche software cosiddetti freeware per i quali non è necessario pagare una licenza e possono essere liberamente installati sul calcolatore. L'acquisto di un software applicativo può avvenire presso un rivenditore di apparecchiature informatiche. Più comunemente, il canale principale per acquisire un software, sia a pagamento sia gratuito, è scaricarlo da web. L'installazione richiede l'esecuzione di una procedura di configurazione. Tale procedura installa il programma sul calcolatore e lo rende disponibile per tutte le successive esecuzioni. L'installazione comporta l'occupazione di una porzione di spazio sulla memoria secondaria del calcolatore (disco fisso). Fatta eccezione per lo spazio occupato su memoria secondaria, il software applicativo utilizza (e consuma) risorse del calcolatore solo quando è in esecuzione. Il software applicativo interagisce con il software di sistema e in particolare con il sistema operativo per l'accesso e l'utilizzo delle risorse del calcolatore, come ad esempio la memoria principale e quella secondaria. Pertanto il software applicativo è costruito per funzionare con uno specifico sistema operativo. Il software applicativo è distribuito in diverse versioni, una per ogni sistema operativo su cui può essere installato. Si pensi al caso di Mozilla Firefox che è disponibile per sistema operativo Windows, Linux e Mac OS X. Tuttavia, si tenga presente che numerosi software sono concepiti e distribuiti per funzionare solo con uno specifico sistema operativo e non è possibile utilizzarli su altri sistemi. Si pensi al caso di Microsoft Access, un software applicativo della suite di Microsoft Office che è disponibile solo per sistema operativo Windows.
ESEMPI DI PROGRAMMI APPLICATIVI Di seguito proponiamo un elenco di software applicativi raggruppati per funzionalità offerte:
Software di videoscrittura o wordprocessor : alcuni software di questo tipo sono molto semplici e offrono funzionalità minimali per lo più legate alla formattazione del testo
(esempio: Wordpad). Altri software offrono funzionalità avanzate per la videoscrittura che comprendono strumenti di revisione e supporto all'inserimento di immagini e altri elementi grafici (Microsoft Office Word e OpenOffice Writer). Altri ancora sono concepiti per la scrittura in ambito scientifico e facilitano l'uso di notazioni matematiche sofisticate. Fogli di calcolo : consentono la memorizzazione di dati sui quali eseguire funzioni di calcolo di varia natura (Microsoft Office Excel). Software per la gestione di basi di dati o DMBS (Database Management System): questi software supportano l'interazione con le base di dati, cioè oggetti capaci di memorizzare dati in forma strutturata (Microsoft Office Access e OpenOffice Base). Software per realizzare presentazioni : consentono di creare presentazioni composte da diapositive (slide) in sequenza (Microsoft Office Powerpoint). Software di intrattenimento : consentono di giocare e di usare il calcolatore come uno strumento ludico. Questi software possono essere semplici emulazioni di giochi esistenti nella realtà (come ad esempio giochi di carte) o giochi più complessi di avventura e strategia. Software per grafica, disegno, fotoritocco e animazione : consentono la modifica e la manipolazione di immagini e oggetti di tipo grafico (Adobe Photoshop e Paint Shop). Software per la riproduzione audio e video : (Windows Media Player) Software per la navigazione su web (browser): consentono di reperire e visualizzare pagine web (Internet Explorer, Google Chrome e Safari).
Infine, tra i software applicativi occorre menzionare i prodotti gestionali concepiti e sviluppati per soddisfare le specifiche esigenze di una certa realtà. Il software di gestione di ospedali, biblioteche, uffici, magazzini sono esempi di questo tipo. I software gestionali sono commissionati dall'interessato (l'azienda che necessita del software per le proprie esigenze gestionali) ad una o più società di sviluppo software (software house) concordando le funzionalità da sviluppare e il prezzo da corrispondere.
INTRODUZIONE ALLE RETI DI CALCOLATORI Una rete di calcolatori è costituita da un insieme di calcolatori autonomi connessi fra loro attraverso canali di comunicazione fisica (ad esempio, cavi, onde radio) allo scopo di poter condividere dati, informazioni e programmi. Una rete può essere vista come un insieme di punti (spesso denominati nodi) e di linee che collegano tra loro questi nodi. In una rete di calcolatori, i nodi sono costituiti dai singoli calcolatori e le linee di collegamento sono costituite dai canali di comunicazione. Questa organizzazione dell’elaborazione dei dati nasce dall’esigenza di superare il precedente modello in cui la potenza di calcolo e le informazioni risiedevano presso un unico grande elaboratore (mainframe) a cui si accedeva per mezzo di terminali, i quali non erano però dotati di capacità di calcolo autonome. Il modello a rete garantisce maggiore flessibilità e costi inferiori. La tecnologia delle reti, infatti, insieme all'emergere dei personal computer a basso costo, ha permesso rivoluzionari sviluppi nell'organizzazione delle risorse di calcolo. Moltissimi sono gli usi delle reti di calcolatori, sia per le organizzazioni che per l’utenza privata.
Organizzazioni
una serie di strati o livelli, ognuno dei quali costruito su quello inferiore. Ogni livello si occupa di una delle informazioni necessarie all’invio del messaggio. Fra un tipo di rete ed un altro possono variare:
In ogni caso, è sempre rispettato il principio generale per il quale lo scopo di un livello è fornire certi servizi ai livelli più alti, nascondendo loro i dettagli implementativi. Tornando al nostro esempio, quando componiamo il messaggio di posta operiamo a un livello molto alto, nel quale è nascosta l’informazione relativa al modo in cui il messaggio viene fisicamente recapitato. Di questa informazione si occuperanno infatti i livelli inferiori. Per esemplificare, la situazione è analoga allo scrivere una lettera tradizionale. Quando indichiamo l’indirizzo, infatti, non sappiamo come effettivamente la lettera venga recapitata, quali uffici postali la smisteranno né con quali mezzi.
LIVELLI DI COMUNICAZIONE Il livello n di un nodo (detto anche host) porta avanti una conversazione con il livello n di un altro nodo. Le regole e le convenzioni adottate sono chiamate protocollo di livello n mentre le entità che effettuano la conversazione si chiamano peer entity. Il dialogo tra due peer entity di livello n viene materialmente realizzato tramite i servizi offerti dal livello sottostante (n-1). In realtà, non esiste uno scambio diretto di informazioni tra i due livelli n dei nodi coinvolti. Ogni livello di host1 passa i dati e alcune informazioni di controllo al livello sottostante e il meccanismo viene iterato fino al raggiungimento del mezzo fisico attraverso il quale i dati sono trasferiti da host1 a host2. Quando arrivano a host2, i dati sono passati da ogni livello a quello superiore, fino a raggiungere il livello n. Fra ogni coppia di livelli adiacenti è definita un’interfaccia che caratterizza le operazioni primitive che possono essere richieste al livello sottostante e definisce i servizi che quest’ultimo è in grado di offrire.
LE RETI LOCALI Le reti locali o LAN (Local Area Network) sono reti di calcolatori utilizzate per la condivisione di risorse all’interno di una singola organizzazione localizzata sul territorio. Sono l’unità minima di base della rete internet. Le reti locali possono essere organizzate secondo diversi modelli topologici: a stella, punto-a-punto, lineare, ad anello. In alcuni casi la dislocazione fisica dei calcolatori può richiedere soluzioni articolate per realizzare tutte le connessioni necessarie (cablaggio). All’interno di una LAN ogni nodo della rete è in grado sia di richiedere che di offrire servizi agli altri calcolatori, servizi quali potenza di calcolo, dispositivi hardware (stampanti, scanner ecc.) e dati. Quindi ciascun calcolatore può essere sia Server che Client. Il Server è un elaboratore che offre uno o più servizi, il Client invece è un elaboratore che può richiedere le risorse condivise messe a disposizione dal server. All’intero di una LAN alcuni nodi possono assumere una funzionalità specifica come ad
esempio gestire la memorizzazione dei dati condivisi (file server) oppure gestire le stampanti condivise (print server).
STRUTTURA TIPICA DI UNA RETE LOCALE La struttura di una rete locale può essere:
Ad anello: i nodi sono organizzati secondo una configurazione ad anello (ring) e non sono tutti direttamente collegati. La trasmissione dei pacchetti avviene in modo broadcast. Le reti broadcast sono dotate di un unico canale di comunicazione condiviso da tutti gli elaboratori. Il pacchetto parte dal mittente e viene trasmesso al nodo seguente fino a giungere al nodo del destinatario. Le reti ad anello inoltre possono essere unidirezionali quando il flusso dei pacchetti avviene in un’unica direzione o bidirezionali quando le trasmissioni possono avvenire in entrambi i versi. A stella : i calcolatori sono legati ad un nodo centrale detto host che provvede a smistarli verso il nodo destinazione. Un messaggio per essere consegnato deve attraversare l’host centrale, questo da un lato garantisce una maggiore efficienza dall’altro può essere causa di possibili colli di bottiglia dovuti ad un elevato traffico. Uno dei vantaggi delle reti a stella è che l’interruzione di un arco isola il nodo corrispondente ma non compromette il funzionamento della rete. Al contrario però il malfunzionamento dell’host partiziona la rete. Punto-a-punto : consiste in un insieme di connessioni fra coppie di elaboratori. Per andare dal mittente al destinatario, spesso in una rete punto-a-punto un pacchetto può dover attraversare uno o più nodi intermedi. Per questo motivo sono stati definiti degli algoritmi di instradamento (routing) che consentono il corretto recapito dei pacchetti. Nelle reti punto-a-punto solo alcuni nodi sono connessi direttamente tra di loro per questo motivo sono dette a magliatura irregolare. Un tipo particolare di rete punto-a-punto è quella detta a magliatura completa in cui ogni nodo è connesso con tutti gli altri. Lineare : sono dotate di un unico canale di comunicazione (bus o dorsale) condiviso da tutti gli elaboratori. I messaggi inviati da ogni elaboratore sono ricevuti da tutti gli altri elaboratori della rete. Le reti lineari sono il modello più diffuso. In una rete lineare l’interruzione di un arco isola il nodo corrispondente ma non compromette il funzionamento della rete, inoltre la rete risulta partizionata solo in caso di danneggiamento della dorsale.
LE RETI LOCALI La WAN (Wide Area Network) è una rete geografica che si estende su un vasto territorio e consente l’interconnessione (internetworking) fra sottoreti distinte, appartenenti a diverse organizzazioni ed etorogenee dal punto di vista dei protocolli. All’interno di una WAN distinguiamo i calcolatori (host) che mettono a disposizione i servizi e la sottorete di comunicazione caratterizzata da linee di trasmissione (circuiti, canali, dorsali) ed elementi di commutazione (router). Un router è un elaboratore specializzato con funzione di instradamento. Il router appartiene contemporaneamente a due reti e consente la propagazione di un messaggio dal nodo seguente al destinatario. I principali problemi in una rete WAN derivano dall’eterogeneità dei protocolli. Motivo per cui gli elaboratori di una sottorete che sono “esposti” verso l’esterno hanno funzione di gateway e si occupano delle necessarie traduzioni per garantire l’interoperabilità con i protocolli in uso nelle altre reti. Un altro tipo di problema deriva dalla sicurezza. Infatti per evitare
per dispositivi ravvicinati quali possono essere un telefono cellulare e un auricolare, due calcolatori portatili o una macchina fotografica e una stampante.
EXCEL
DEFINIZIONE DI FOGLIO DI CALCOLO Un foglio di calcolo (anche conosciuto come foglio elettronico o spreadsheet in lingua Inglese) è un programma applicativo di produttività personale. Si tratta di un programma che, operando su dati organizzati in una griglia di celle, offre strumenti di elaborazione e automazione del calcolo, quali ad esempio l’inserimento di funzioni predefinite, la definizione di formule personalizzate e la costruzione di grafici e diagrammi. Esistono molti esempi di fogli di calcolo. A partire da VisiCalc (1978) che è il primo programma di questo tipo e passando per Lotus-1-2-3 (1983) che è il primo foglio di calcolo di grande successo commerciale, arriviamo ai più recenti e diffusissimi Microsoft Office Excel e OpenOffice.org Calc.
ORGANIZZAZIONE DI UN FOGLIO DI CALCOLO Un foglio di calcolo si presenta come una griglia di celle, ciascuna risultante dall’intersezione di una riga e una colonna. Convenzionalmente, le colonne e le righe di un foglio di calcolo sono identificate rispettivamente da un indice progressivo alfabetico (A, B, …) e da uno numerico (1, 2, …). Ne consegue che ogni cella possiede coordinate univoche rappresentate dalla combinazione degli indici di colonna e riga che la determinano. In un foglio di calcolo, esiste sempre almeno una cella selezionata che indica la posizione corrente all’interno del foglio. La cella selezionata è evidenziata mediante una bordatura di colore nero, più marcata rispetto alla bordatura delle altre celle. Inoltre, essa è dotata di un quadratino sporgente nell’angolo in basso a destra chiamato maniglia di riempimento che, come vedremo in seguito, consente di accedere a particolari funzionalità legate al riempimento automatico di celle e al trascinamento di formule. Nell’esempio della Figura 1.1, è possibile notare la maniglia di riempimento della cella B4 selezionata. Sopra alla griglia delle celle, il foglio di calcolo mostra la barra della formula (fx) che visualizza il contenuto della cella correntemente selezionata. Nell’esempio della Figura 1.1, la barra della formula è vuota dal momento che la cella B4 selezionata non ha alcun contenuto.
INSERIMENTO DI DATI Una cella di un foglio di calcolo può ospitare tre diverse tipologie di contenuto: valori testuali, cioè una sequenza di caratteri alfanumerici (anche denominata stringa di testo); valori numerici, cioè una sequenza di cifre; formule, cioè espressioni di calcolo che consentono di eseguire operazioni sul contenuto di altre celle. Una formula può essere composta manualmente utilizzando i consueti operatori aritmetici di somma (+), sottrazione (-), prodotto (*), divisione (/) e elevamento a potenza (^). A questi, si aggiunge la possibilità di costruire una formula utilizzando, anche in modo combinato, le funzioni predefinite che il foglio di calcolo mette a disposizione per eseguire calcoli complessi. Una formula ha inizio con il simbolo di uguaglianza (=) al quale segue l’espressione della formula da calcolare. Una volta completato l’inserimento della formula (premendo il tasto Invio sulla tastiera), la cella mostra il risultato calcolato mediante
l’espressione inserita. Selezionando una cella che contiene una formula, l’espressione corrispondente è visualizzata nella barra della formula.
RIEMPIMENTO AUTOMATICO DI CELLE Talvolta, i dati di un foglio di calcolo appartengono a un elenco predefinito e possono richiedere una lunga attività di inserimento. In questi casi, è possibile utilizzare una funzionalità chiamata riempimento automatico di celle che consente di inserire automaticamente gli elementi relativi alle serie di dati predefinite. Sono disponibili serie di dati testuali, come i mesi dell’anno o i giorni della settimana, e numeriche, come le progressioni aritmetiche di ragione impostata dall’utente. La funzionalità di riempimento automatico di celle è accessibile tramite la maniglia di riempimento.
DIMENSIONAMENTO DI RIGHE E COLONNE Inizialmente, le colonne e le righe di un foglio di calcolo sono impostate alla medesima dimensione, creando l’effetto di una griglia omogenea di celle tra loro identiche. La larghezza di ogni colonna, e analogamente l’altezza di ogni riga, può essere modificata in base alla lunghezza del contenuto che deve ospitare. È possibile modificare la larghezza di una colonna utilizzando il dispositivo di puntamento (mouse). In alternativa, mediante le opzioni di formato, è possibile impostare il valore numerico esatto di larghezza di ciascuna colonna (In Excel, utilizzare il comando di menù Formato > Colonna
Larghezza). Allo stesso modo, è possibile modificare l’altezza di una riga del foglio di calcolo. È bene notare che la griglia di un foglio di calcolo deve sempre possedere una struttura regolare, quindi non è possibile modificare la dimensione in larghezza o altezza di una singola cella.
I fogli di calcolo mettono a disposizione numerose funzionalità di formattazione delle celle e del loro contenuto. Tali funzionalità possono essere suddivise nelle seguenti categorie:
Numero: Le funzionalità di questa categoria consentono di personalizzare la visualizzazione dei valori numerici contenuti nelle celle. Ad esempio, si può indicare che il valore numerico contenuto in una cella esprime una percentuale, facendo in modo che il simbolo percentuale (%) sia visualizzato a fianco del numero. Analogamente, sono disponibili opportuni formati per personalizzare la visualizzazione dei numeri che esprimono valute, date/orari, frazioni e numeri esponenziali. Allineamento : Riguarda la disposizione del contenuto di una cella. Ad esempio, è possibile specificare l’allineamento orizzontale (sinistra, centro, destra, giustificato) e verticale (in alto, al centro, in basso). È anche possibile indicare l’orientamento della cella (orizzontale, verticale, diagonale secondo una specifica angolazione). Infine, esiste un’opzione per fare in modo che il contenuto di una cella possa essere disposto su righe diverse qualora superi la larghezza della cella. Carattere : Si tratta di funzionalità analoghe a quelle offerte dai programmi di videoscrittura come Microsoft Office Word e OpenOffice.org Writer per la formattazione del testo. Esempi di questa categoria sono la selezione di tipo, colore e dimensione del font e l’impostazione di stili come il testo grassetto, corsivo e sottolineato. Bordo : Le funzionalità di questa categoria consentono di personalizzare la bordatura della