Introduzione all’Informatica DavidePierantonio Di Ruscio Alfonso Dipartimento di Informatica Informatica Dipartimento di Università Studidell’Aquila dell’Aquila Universitàdegli degli Studi [email protected] [email protected] Lezione 1 . Sommario » Introduzione al corso » Introduzione all’Informatica 22 » Applicativi software − Scrittura di documenti testuali − cos’è l’informatica − Fogli di calcolo − problemi, algoritmi, programmi e calcolatore − Produzione di Slides − applicazioni dell’informatica − Ipertesti, Multimedia, Ipermedia » Architettura del calcolatore − processore, memoria centrale, memoria di massa, memoria cache, periferiche » Reti di calcolatori − La comunicazione dei dati − le reti locali − le reti geografiche − Internet ed i suoi servizi − Motori di ricerca Introduzione all’Informatica Dott. Davide Di Ruscio − Applicazioni su Internet Testo di riferimento Ceri, Mandrioli, Sbattella Informatica Arte e Mestiere McGraw Hill Materiale fornito dal docente Introduzione all’Informatica Dott. Davide Di Ruscio 33 Lucidi delle lezioni I lucidi delle lezioni sono basati su del materiale del Prof. Flammini Michele, Dott. Fabrizio Costa, e Dott. Patrizio Pelliccione Introduzione all’Informatica Dott. Davide Di Ruscio 44 Contatti Home page del docente: www.di.univaq.it/diruscio/ Email: [email protected] Introduzione all’Informatica Dott. Davide Di Ruscio 55 Calendario » Lezione 1: Martedì 9 Novembre 2010 » Lezione 2: Mercoledì 1 Dicembre 2010 » Lezione 3: Lunedì 6 Dicembre 2010 » Lezione 4: Lunedì 13 Dicembre 2010 Introduzione all’Informatica Dott. Davide Di Ruscio 66 L’Informatica nel tempo » Nel 1940, i primi ricercatori che crearono i calcolatori elettronici credettero che in USA sarebbero stati necessari non più di una mezza dozzina di calcolatori. » Nel 1976, il New York Times pubblicò un libro dal titolo “La scienza nel ventesimo secolo”, nel quale il calcolatore veniva menzionato una sola volta ed indirettamente, in relazione al calcolo delle orbite dei pianeti. » Oggi, la presenza del calcolatore è invasiva nella vita quotidiana. Occorre che le persone si adattino alla prospettiva che alcuni lavori stanno diventando/diventeranno obsoleti Introduzione all’Informatica Dott. Davide Di Ruscio 77 Applicazioni » Vediamo alcune applicazioni: − applicazioni in medicina − applicazioni nella gestione delle informazioni − applicazioni industriali Introduzione all’Informatica Dott. Davide Di Ruscio 88 Applicazioni medicali » Controllo delle funzioni vitali primarie » Dosaggio farmacologico automatico » TAC e Risonanza Magnetica: si elaborano i dati generati da un campo magnetico attorno al corpo umano, e si producono immagini degli organi interni, non rilevabili con i raggi X » Interventi di microchirurgia guidati dall’elaboratore » Interfacce intelligenti di comunicazione per disabili: − riconoscitori vocali − renderer tattili, sonar per non vedenti − mouse vocali o ad impulsi nervosi per paraplegici Introduzione all’Informatica Dott. Davide Di Ruscio 99 Gestione delle informazioni 10 1 0 » Nel 1993, la biblioteca della Facoltà di Legge della Columbia University cancellò il progetto di costruire un edificio da 20 mil $ per acquistare un calcolatore da 1.5 mil $, per memorizzare i contenuti di decine di migliaia di libri vecchi e soggetti a deterioramento. Oggi le biblioteche digitali sono molto diffuse » Riduzione dei consumi/rifiuti cartacei: invece di gettare nel cestino un documento obsoleto, lo si cancella semplicemente da una memoria di massa. Gli articoli distribuiti elettronicamente dalla Electronic Frontier Foundation terminano con “Questo articolo è stato stampato al 100% con elettroni riciclati” » Facilità di accesso a gran parte dello scibile umano attraverso il WWW. Introduzione all’Informatica Dott. Davide Di Ruscio Automazione 11 1 1 » I robot vengono impiegati nelle catene di montaggio per l’assemblaggio veloce ed accurato dei prodotti di uso quotidiano (elettrodomestici, automobili, etc.). » Vengono impiegati per lavori ed in ambienti considerati pericolosi o a rischio per le persone (per ispezionare strutture e cavi di comunicazione sui fondali marini). » Il Sojourner, controllato via calcolatore, ha orbitato intorno a Marte e le comunicazioni satellitari hanno permesso a milioni di persone di osservarne le immagini al televisore o sullo schermo del proprio calcolatore. Introduzione all’Informatica Dott. Davide Di Ruscio Concetti di base (1/6) » INFORMATICA: scienza della rappresentazione e dell’elaborazione dell’informazione − » 12 1 2 L’informazione una delle risorse strategiche più importanti della società moderna ELABORATORE: non e l’oggetto fondamentale di studio nell’informatica, ma e l’attore principale, poiché permette l’elaborazione di grandi quantità di dati in poco tempo, rendendo quindi realizzabili nella pratica i principi e le tecniche informatiche. Introduzione all’Informatica Dott. Davide Di Ruscio L’informazione » » 13 1 3 L'informazione − aggregazione di dati di cui sia noto, oltre al valore, anche il significato − incremento di conoscenza che può essere acquisita (o inferita) dai dati L’informazione riguarda il contesto in cui i dati sono raccolti, la loro codifica in forma intellegibile ed in definitiva il significato attribuito a tali dati 13 Introduzione all’Informatica Dott. Davide Di Ruscio Codifica dell’informazione 14 1 4 » La codifica dell'informazione consiste nel trasformare una informazione generica in una informazione comprensibile da un dispositivo o che sia adatta alla successiva elaborazione » L'informazione si rappresenta usando un numero finito di simboli affidabili e facilmente distinguibili » All'interno delle apparecchiature digitali l'informazione è rappresentata mediante livelli di tensione o mediante magnetizzazione di dispositivi appropriati » Le informazioni di interesse sono rappresentate tramite una collezione di dati 14 Introduzione all’Informatica Dott. Davide Di Ruscio Uso dei calcolatori nell’Informatica » L’utilizzo degli elaboratori per ripetere una sequenza di operazioni un numero indefinito di volte » Possibilità di gestire l’informazione in modo rapido ed efficiente » Capacità di calcolo elevate » Velocità nel reperire le informazioni Introduzione all’Informatica Dott. Davide Di Ruscio 15 1 5 Vantaggi del calcolatore » Rapidità » Precisione » Capacità di esecuzione di lavori ripetitivi » Capacità di gestione di grandi quantità di dati » Capacità di integrare dati provenienti da fonti diverse » Possibilità di memorizzare dati per lunghi periodi di tempo Introduzione all’Informatica Dott. Davide Di Ruscio 16 1 6 Limiti del calcolatore » Mancanza di intelligenza autonoma » Mancanza di creatività » Difficoltà ad affrontare problemi nuovi » Difficoltà nei lavori non ripetitivi » Difficoltà a gestire informazioni non strutturate » Difficoltà ad interpretare un discorso » Possibilità di guasti » Limiti in gran parte imputabili al software Introduzione all’Informatica Dott. Davide Di Ruscio 17 1 7 Hardware e Software » L’hardware è costituito da tutti i componenti “materiali” di un elaboratore − » macchina nella sua fisicità compresi i componenti esterni quali: tastiera, schermo, stampante, mouse ecc. Il software è l’insieme dei programmi che consentono all’ hardware di svolgere le attività per cui è proposto − Il Software rappresenta una serie di istruzioni, scritte in un apposito linguaggio, che permettono alla macchina di funzionare Introduzione all’Informatica Dott. Davide Di Ruscio 18 1 8 Hardware > Tipi di Calcolatori » Esiste una vasta tipologia di calcolatori che si differenziano per: − Velocità di elaborazione − Capacità di archiviazione − Numero di stazioni di lavoro utilizzabili contemporaneamente − Dispositivi addizionali che possono essere connessi − Per ingombro Introduzione all’Informatica Dott. Davide Di Ruscio 19 1 9 Hardware > Tipi di Calcolatori 20 2 0 » Naturalmente i diversi tipi di calcolatori presentano differenze sostanziali sia nelle capacità d’elaborazione sia nei costi » Il prezzo è strettamente collegato alla configurazione: un computer grafico ha un costo maggiore di un computer che deve servire solo per la stesura dei testi » La configurazione è l’insieme dei componenti hardware e software di cui un computer è dotato » Computer molto simili nell’aspetto esteriore possono avere prezzi molto diversi Introduzione all’Informatica Dott. Davide Di Ruscio Hardware > Calcolatori particolari: Terminale self-service » Aree applicative − Bancomat − Certificazione comunale − Segreterie studenti − Punti informativi − … Introduzione all’Informatica Dott. Davide Di Ruscio 21 2 1 Hardware > Calcolatori particolari: Terminale self-service » Facilità di utilizzo − interfaccia semplice e chiara − uso di menù − pochi dati per pagina video − schermi sensibili al tatto − tastiera essenziale − funzioni di aiuto in linea Introduzione all’Informatica Dott. Davide Di Ruscio 22 2 2 Collegamento elaboratori in rete (1/2) » Rete: insieme di canali di interconnessione che permettono ad elaboratori diversi di comunicare tra loro » Si suddividono principalmente in due categorie: − locali (Local Area Network): > di piccola estensione (tipicamente un edificio) > veloci > permettono agli utenti di condividere dati ed usufruire di servizi (stampanti, server, accesso a reti esterne, ...) > tra le più note: ethernet, … − geografiche (Wide Area Network): > molto estese (anche tutto il globo) > più lente > tra le più note: Internet Introduzione all’Informatica Dott. Davide Di Ruscio 23 2 3 Collegamento elaboratori in rete (2/2) 24 2 4 » Sistema distribuito: insieme di elaboratori che cooperano per lo svolgimento un determinato compito scambiando dati e risultati di elaborazioni attraverso una rete di interconnessione » Sistemi paralleli: sistemi con più CPU in stretta collaborazione. La comunicazione di solito avviene mediante memoria condivisa » Un singolo elaboratore di un sistema distribuito può anche essere parallelo Introduzione all’Informatica Dott. Davide Di Ruscio Software (1/3) 25 2 5 » È formato dall’insieme dei programmi che vengono eseguiti sulla macchina hardware » Si suddivide in − software di base: per permettere l’utilizzo dell’elaboratore − software applicativo: per specifiche esigenze da parte degli utenti Introduzione all’Informatica Dott. Davide Di Ruscio Software (2/3) » » 26 2 6 Il software di base comprende − il sistema operativo: > è il cuore del software di base > consente un utilizzo facile ed efficiente delle risorse dell’elaboratore − protocolli: insieme dei programmi che gestiscono la comunicazione nelle reti − …. Anche se generalmente si usa suddividere il software solamente in due categorie (di base ed applicativo), esiste tuttavia uno strato intermedio che ha le caratteristiche dell’una e dell’altra Introduzione all’Informatica Dott. Davide Di Ruscio Software (3/3) 27 2 7 Software applicativo Strumenti di produttività Software personale Ambiente di programmazione • fogli elettronici • videoscrittura • editor • basi di dati • agende elettroniche • compilatore •… • ipertesti • collegatore (linker) • posta elettronica • debugger •… Software di base • sistema operativo • protocolli •… Introduzione all’Informatica Dott. Davide Di Ruscio Tipi di software » Software proprietario » Open software » Shareware » Freeware Introduzione all’Informatica Dott. Davide Di Ruscio 28 2 8 Software proprietario » Acquistando il programma originale si entra in possesso di una licenza d’uso » Il prodotto è soggetto al copyright del produttore e implica la segretezza del codice sorgente e la proibizione di apportare modifiche e di distribuirlo. Introduzione all’Informatica Dott. Davide Di Ruscio 29 2 9 Open software » 30 3 0 Un software libero ( free software) è definito (GNU Project) dalla libertà di − eseguire il programma, per qualsiasi scopo; − studiare come funziona il programma, e adattarlo alle proprie necessità, l'accesso al codice sorgente ne è una precondizione; − ridistribuire copie in modo da promuoverne lo sviluppo; − migliorare il programma, e distribuirne pubblicamente i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio. L'accesso al codice sorgente ne è una precondizione. » Un programma è software libero se l'utente ha tutte queste libertà. In particolare, è libero di ridistribuire copie, con o senza modifiche, gratis o addebitando delle spese di distribuzione a tutti ed ovunque. » Tuttavia il software libero e ogni sua modifica devono essere ridistribuiti sotto una licenza restrittiva almeno quanto quella di partenza (nativa) Introduzione all’Informatica Dott. Davide Di Ruscio 30 Shareware » Software che viene distribuito gratuitamente » L’utente dopo un periodo di prova stabilito deve versare una quota limitata per poter continuare ad usufruirne. In cambio riceve un manuale e gli aggiornamenti successivi Introduzione all’Informatica Dott. Davide Di Ruscio 31 3 1 Freeware » Software che viene distribuito solitamente dalla Rete » La sua particolarità risiede nel fatto di essere completamente gratuito e gli utenti lo possono usare senza restrizioni Introduzione all’Informatica Dott. Davide Di Ruscio 32 3 2 Concetti di base (2/6) » ALGORITMO: procedura passo passo o sequenza di passi per la risoluzione di un determinato compito » PASSO: 33 3 3 − compiuto da un ipotetico esecutore − elementare: corrisponde ad un’azione semplice del suo esecutore − limitato: un lavoro “illimitato” può essere eseguito soltanto con un numero “illimitato” di passi − comprensibile dall’esecutore − non ambiguo: non deve dare adito ad alcuna libera interpretazione da parte dell’esecutore NB: l’esecutore per eccellenza è il calcolatore, ma possiamo essere anche noi esecutori quando effettuiamo un prelievo da uno sportello del bancomat, quando montiamo apparecchiature o assembliamo componenti, … Introduzione all’Informatica Dott. Davide Di Ruscio Concetti di base (3/6) » 34 3 4 PROPRIETÀ DI UN ALGORITMO: − correttezza: deve effettivamente risolvere il compito a cui è preposto, senza difettare di alcun passo fondamentale − efficienza: deve pervenire alla risoluzione del compito utilizzando il minor numero possibile di risorse, come ad esempio il tempo (numero di passi eseguiti) e la memoria − robustezza: anche in presenza di input errati, situazioni non previste o anomalie deve mantenere la correttezza − … Introduzione all’Informatica Dott. Davide Di Ruscio Concetti di base (4/6) » PROGRAMMA: algoritmo descritto in un linguaggio comprensibile dall’esecutore » ISTRUZIONE ≈ passo » LINGUAGGIO DI PROGRAMMAZIONE: linguaggio usato per descrivere l’algoritmo » CODIFICA: processo di descrizione o trascrizione di un algoritmo in un linguaggio di programmazione Introduzione all’Informatica Dott. Davide Di Ruscio 35 3 5 Concetti di base (5/6) » » » 36 3 6 LINGUAGGIO MACCHINA: − l’unico comprensibile dall’elaboratore − istruzioni date da sequenze di bit (es. 011001100000). LINGUAGGIO ASSEMBLER: − utilizza nomi simbolici per indicare le istruzioni del linguaggio macchina ed i dati su cui operano, come ad esempio READ X invece di 011001100000 − ha la stessa potenza del linguaggio macchina, poiché esiste una corrispondenza uno-a-uno tra le rispettive istruzioni e quindi non aggiunge nuove potenzialità ASSEMBLATORE: traduce un programma in linguaggio assembler in uno equivalente in linguaggio macchina che può essere eseguito dall’elaboratore Introduzione all’Informatica Dott. Davide Di Ruscio Concetti di base (6/6) 37 3 7 » LINGUAGGIO AD ALTO LIVELLO: istruzioni più sintetiche, più potenti, più vicine al modo di ragionare umano » COMPILATORE: traduce un programma in un linguaggio ad alto livello in uno equivalente in linguaggio macchina per permettere la sua esecuzione da parte dell’elaboratore » INTERPRETE: simile al compilatore, ma esegue la traduzione in fase d’esecuzione, istruzione per istruzione Introduzione all’Informatica Dott. Davide Di Ruscio Evoluzione dei linguaggi ad alto livello (1/3) » » » 38 3 8 Tra i primi: − FORTRAN (FORmula TRANslation): adatto ad applicazioni scientifiche e di calcolo − COBOL (Common Business Oriented Language): per applicazioni gestionali − BASIC: semplice, interpretato − LISP: funzionale In seguito: − ALGOL 60: ispirato (come i seguenti) ai principi di programmazione ed in particolare alla programmazione strutturata − PASCAL: adatto per uso didattico, perché è molto semplice e pulito − C: permette di agire anche a basso livello ed è quindi adatto anche per la scrittura di moduli o parti del software di base … Introduzione all’Informatica Dott. Davide Di Ruscio Evoluzione dei linguaggi ad alto livello (2/3) » » Paradigma Imperativo − Le istruzioni corrispondono ad ordini impartiti all’esecutore, ossia all’elaboratore − Tutti i linguaggi ad alto livello citati precedentemente, ad eccezione del LISP, fanno parte di questo paradigma Per esigenza descrittive, per avvicinarsi di più al linguaggio ed ai concetti matematici ed infine per facilitare i processi di sviluppo di software sono stati proposti altri paradigmi Introduzione all’Informatica Dott. Davide Di Ruscio 39 3 9 Evoluzione dei linguaggi ad alto livello (3/3) » » » » 40 4 0 Paradigma funzionale: − si basa sul concetto di funzione matematica − le istruzioni corrispondono al calcolo di funzioni − ne fanno parte i linguaggi LISP, SCHEME, HUSKEL, ML… Paradigma logico: − si basa sulla logica matematica e sul concetto di relazione matematica − ne fanno parte i linguaggi PROLOG, … Paradigma orientato ad oggetti (OO): − nasce come un’evoluzione del paradigma imperativo in cui si raggruppano i tipi di dati e le operazioni e procedure che possono essere eseguite su di essi − ne fanno parte i linguaggi SMALLTALK, SIMULA 67, C++ (estensione del C), JAVA (adatto alle applicazioni web), EIFFEL, … Un diagramma dell’evoluzione dei linguaggi di programmazione ad alto livello è il seguente (per procedural si intende imperativo): Introduzione all’Informatica Dott. Davide Di Ruscio 41 4 1 41 Introduzione all’Informatica Dott. Davide Di Ruscio Applicazioni informatiche » » » » » » Numeriche: − richiedono grandi quantità di calcoli − es.: studi statistici, traiettorie satellitari, previsioni meteorologiche, studio andamento fenomeni fisici, ... Gestionali: − riguardano la gestione di aziende ed attività − es.: gestione produzione, fornitori, clienti, dipendenti, … Telematiche: − sfruttano le reti per offrire servizi e permettere transazioni a distanza − es.: prenotazioni, bancomat, archivi pubblici, applicazioni web, … Automazione industriale: − per la gestione automatica di impianti, catene di montaggio in aziende manifatturiere, … − includono applicazioni di robotica, software progettuali, … Dedicate: − per contesti e funzionalità molto specifiche e delicate che richiedono soluzioni ad-hoc − es: controllo reattori nucleari, dispositivi ad alto rischio, strumentazione di bordo di aerei, … … Introduzione all’Informatica Dott. Davide Di Ruscio 42 4 2 Aree disciplinari dell’informatica » Algoritmi e strutture dati » Linguaggi di programmazione » Architetture degli elaboratori » Sistemi operativi » Ingegneria del software » Basi di dati e sistemi per il reperimento dell’informazione » Intelligenza artificiale » Grafica computerizzata » Interazione uomo-macchina » Visione e robotica » … Introduzione all’Informatica Dott. Davide Di Ruscio 43 4 3 Punti Chiave » Concetti fondamentali − Informatica − Algoritmo − Programma » Linguaggi di programmazione » Software [Ref: Cap. 1, 2, 12 del libro di testo] Introduzione all’Informatica Dott. Davide Di Ruscio 44 4 4