ECDL CORE 5.0 Modulo 1 – Concetti di base dell’ICT 1.0 Fondamenti Docente: Stefania De Martino Liceo “G. Leopardi” – Recanati – a.s. 2012/2013 Scopi del Modulo 1 Concetti di base dell’ICT, richiede che il candidato comprenda i concetti fondamentali delle Tecnologie dell’Informazione e della Comunicazione (ICT) ad un livello generale e conosca le varie parti di un computer. Il candidato dovrà essere 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 conoscere 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 quotidiana. Comprendere le problematiche di igiene e sicurezza associate all’impiego dei computer. Riconoscere importanti problematiche di sicurezza informatica associate all’impiego dei computer. Riconoscere importanti problematiche legali relative al diritto di riproduzione (copyright) e alla protezione dei dati associate all’impiego dei computer. 1 Sezioni 1.0 Fondamenti§ 1.1 Hardware 1.2 Software 1.3 Reti 1.4 ICT nella vita di ogni giorno 1.5 Sicurezza 1.6 Aspetti giuridici § Questa sezione è stata inserita in base agli accordi tra AICA e il Ministero della Pubblica Istruzione. 1.0 Fondamenti Definizione di Algoritmo passi o istruzioni) che consente di risolvere tutti i problemi di una determinata “classe” e produrre il risultato stabilito. Esempio: algoritmo per accendere il cellulare. Un algoritmo deve essere: definizione Un algoritmo è una successione finita di operazioni (dette anche Generale: deve fornire la soluzione per tutti i problemi che appartengono alla medesima classe (la descrizione di come si accende il cellulare è valida per tutti i cellulari). Finito: deve essere costituito da un numero finito di istruzioni eseguite un numero finito di volte. Non ambiguo: ogni istruzione deve essere definita in modo preciso ed univoco, senza alcuna ambiguità sul significato dell’operazione (nel caso del cellulare ogni passaggio è chiaro). Deterministico: a partire dagli stessi dati in ingresso, deve produrre i medesimi risultati, indipendentemente dall’esecutore (nel caso del cellulare una persona, nel caso dell’informatica un computer). 2 1.0 Fondamenti Dal problema al programma Dato un problema e il suo algoritmo risolutivo, la traduzione dell’algoritmo in codice eseguibile dal computer si chiama programma. programma Tale traduzione avviene attraverso una serie di passaggi intermedi. 1.0 Fondamenti Dal problema al programma: esempio (1) Dato in input un numero, calcolarne il cubo se è maggiore di 0, il quadrato in caso contrario. Il problema è così scritto in linguaggio naturale. naturale definizione Il linguaggio naturale è quello comunemente utilizzato per comunicare con gli altri: consente ricchezza espressiva, ma, in alcuni casi, può dare adito ad ambiguità e talvolta anche a ridondanza → non è correttamente interpretabile da un elaboratore. 3 1.0 Fondamenti Dal problema al programma: esempio (2) Avviciniamoci gradualmente ad una forma interpretabile naturale e linguaggio di programmazione, ancora non direttamente comprensibile da un computer. definizione da un computer, riscrivendo il problema in pseudopseudolinguaggio. linguaggio Lo pseudo-linguaggio è una via di mezzo tra linguaggio INIZIO LEGGI num SE num > 0 ALLORA CALCOLA ris = num*num*num ALTRIMENTI CALCOLA ris = num*num SCRIVI ris FINE 1.0 Fondamenti Dal problema al programma: esempio (3) Rappresentiamo graficamente il nostro problema attraverso un diagramma di flusso (o diagramma a blocchi o flowflow-chart). chart Un diagramma di flusso permette di avere un’immagine più comprensibile della sequenza logica del problema e di come i dati Indica un calcolo o devono essere elaborati. un’assegnazione Indica l’inizio o la fine del programma indica l’inserimento di dati (input) o la visualizzazione dei risultati (output) indica domande, test, confronti (vero/falso, si/no) 4 1.0 Fondamenti Dal problema al programma: esempio (4) L’elaboratore però non è in grado di eseguire direttamente l’algoritmo, che deve essere perciò trasformato in un programma espresso mediante un linguaggio di programmazione. programmazione 1.0 Fondamenti Linguaggi di alto e di basso livello definizione Il linguaggio di programmazione (o linguaggio procedurale) procedurale è un linguaggio intermedio fra il linguaggio macchina e il linguaggio naturale, in grado di descrivere gli algoritmi con una ricchezza espressiva comparabile a quella dei linguaggi naturali, risultando così semplice da apprendere e da usare da parte dei programmatori. Il linguaggio di programmazione è anche definito linguaggio di alto Il linguaggio macchina, macchina l’unico direttamente comprensibile dalla CPU, è costituito da una sintassi limitatissima e molto rigida, composta da sequenze di cifre binarie 1 e 0. definizione livello perché indipendente dal funzionamento specifico di una certa CPU. Esempi: FORTRAN, COBOL, C, JAVA, PASCAL, BASIC, VISUAL BASIC. Un programma scritto in linguaggio macchina è strettamente collegato alla struttura fisica del processore. Esempio: ASSEMBLER. 5 1.0 Fondamenti Dal programma al codice binario Esistono sostanzialmente due modi per tradurre un programma scritto in linguaggio di alto livello in linguaggio macchina. 1. Programmi compilatori: compilatori traducono l’intero programma scritto in 2. linguaggio di alto livello nella corrispondente copia in linguaggio macchina; tutte le istruzioni vengono controllate nel lessico e nella sintassi, tradotte e trasformate in un file eseguibile che potrà essere utilizzato tutte le volte che si ritiene opportuno, in quanto indipendente dal programma scritto in linguaggio di alto livello che lo ha prodotto e, una volta tradotto, eseguibile senza il programma compilatore. Programmi interpreti: interpreti “leggono” riga per riga le istruzioni scritte in linguaggio di alto livello, ne controllano il lessico e la sintassi e le traducono in linguaggio macchina per farle eseguire direttamente dall’unità centrale di elaborazione. In questo caso non viene prodotta una copia del programma in linguaggio macchina, ma ogni istruzione viene di volta in volta tradotta e poi fatta eseguire. 1.0 Fondamenti Il sistema di numerazione binario Il nostro sistema di numerazione è il sistema decimale (ragioni antropomorfiche). Notazione posizionale Cifre: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Un computer è un’apparecchiatura elettronica quindi capisce solo due stati: passa corrente, non passa corrente, o anche, acceso, spento. Il sistema di numerazione di un computer è il sistema binario. Notazione posizionale Cifre: 0 e 1 6 1.0 Fondamenti Conversione da binario a decimale Per convertire un numero binario in decimale, partendo da destra, si moltiplica ogni cifra per la potenza di 2 corrispondente alla posizione occupata. 1.0 Fondamenti Conversione da decimale a binario Per convertire un numero decimale in binario si divide il numero per 2 e il resto rappresenta la prima cifra da destra in binario; si divide poi per 2 il quoziente ottenuto e il resto rappresenta la seconda cifra da destra in binario e così si procede fino all’ultimo quoziente 1. Nella lettura del numero binario si parte dall’ultimo quoziente 1 e poi si leggono i resti ottenuti. 7 1.0 Fondamenti Codifica dei dati: bit e byte Il bit (binary digit) è la cifra 0 oppure 1 e costituisce l’unità elementare di memorizzazione. Un gruppo di 8 bit viene detto byte. byte Un computer riesce a rappresentare tutti i possibili caratteri stampabili attraverso un’operazione di codifica: ogni carattere stampabile viene associato ad una determinata sequenza di bit. Un byte consente di codificare 256 (28) simboli o dati elementari diversi. Tabelle standard di codifica: ASCII standard ed estesa, UNICODE. 1.0 Fondamenti Tabella ASCII 8 1.0 Fondamenti Codifica dei dati: le immagini digitali (1) 1.0 Fondamenti Codifica dei dati: le immagini digitali (2) Un’immagine digitale è una griglia di tanti elementi detti pixel (picture element). Un pixel è l’unità minima di memorizzazione e può contenere da 1 a 24 bit di informazione: 1 bit → bianco e nero 4 bit → 16 livelli di grigio 8 bit → 256 livelli di grigio o 256 colori 24 bit → 16 milioni di colori La precisione della codifica dipende dal numero di pixel nella griglia (risoluzione): maggiore è il numero di pixel che compongono la griglia, migliore è l’approssimazione dell’immagine, maggiore è l’ingombro. Formati per le immagini più usati: bmp, gif, jpeg, png, tif. 9 1.0 Fondamenti L’algebra booleana Le istruzioni del linguaggio macchina seguono le regole dell’algebra booleana. Si definisce enunciato una proposizione che può essere soltanto vera (V) o falsa (F). Un enunciato può essere composto da più sottoenunciati collegati tra loro da connettivi logici. logici I connettivi logici sono la congiunzione (AND), la disgiunzione (OR) e la negazione (NOT). Il valore di verità dell’enunciato dipende dai valori di verità dei sottoenunciati componenti, in base alle tavole di verità. 1.0 Fondamenti Le tavole di verità: la congiunzione AND Date le proposizioni semplici a e b collegate dal connettivo AND, il risultato della congiunzione a AND b darà origine a una proposizione composta che sarà: vera, solo se a e b sono entrambe vere; falsa, quando almeno una delle due è falsa. 10 1.0 Fondamenti Le tavole di verità: la disgiunzione OR Date le proposizioni semplici a e b collegate dal connettivo OR, il risultato della disgiunzione a OR b darà origine a una proposizione composta che sarà: falsa, solo se a e b sono entrambe false; vera, quando almeno una delle due è vera. 1.0 Fondamenti Le tavole di verità: la negazione NOT Data la proposizione semplice a, inserendo o anteponendo ad a il connettivo NOT è possibile formare un’altra proposizione, detta negazione di a: NOT a. 11