Prof. Andrea Trentini UNIMI AA 2006-07 1 COS’E` L’INFORMATICA 2 COS’E` L’INFORMATICA LOGISTICA • [email protected] Informatica corso di laurea in Scienze Geologiche LEZIONE 1 - Cos’è l’informatica • Scrivere SOLO da [email protected] • Ricevimento su appuntamento (mail) • www.sl-lab.it • seguire “WIKI” e poi “Informatica geologi” • Esame: teoria + lab • Teoria nella pausa, Lab a fine corso • Appelli a giugno, luglio, settembre, novembre (pausa), gennaio, febbraio • Iscrizione via SIFA Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 3 COS’E` L’INFORMATICA Bibliografia • J. G. Brookshear • Informatica: una panoramica generale - 7a ed. • Sciuto, Buonanno, Fornaciari, Mari • Introduzione ai sistemi informatici - 3a ed. • Curtin, Foley, Sen, Morin • Informatica di base - 3a ed. Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 4 COS’E` L’INFORMATICA Scopo della lezione • Introdurre le nozioni base della materia • Definire le differenze tra hardware e software • Individuare le applicazioni e le aree disciplinari • Lagana`, Righi, Romani • Informatica: concetti e sperimentazioni Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni Informatica Corso di laurea in Scienze Geologiche Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 1 Prof. Andrea Trentini UNIMI AA 2006-07 5 COS’E` L’INFORMATICA 6 L’Informatica - def. 1 • Scienza che studia l’informazione • l’elaborazione dei dati • il trattamento dei dati mediante elaboratore elettronico (computer) L’informatica - def. 2 • È la disciplina scientifica che studia • i calcolatori, nati in risposta all’esigenza di eseguire “meccanicamente” operazioni ripetitive • inizialmente il calcolo matematico • gli algoritmi, nati in risposta all’esigenza di definire procedure “meccaniche” per la soluzione di problemi • le applicazioni, in risposta all’esigenza di sviluppare sistemi di supporto in varie aree Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 7 COS’E` L’INFORMATICA Ovvero … … tutto quello che sta tra COS’E` L’INFORMATICA Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 8 COS’E` L’INFORMATICA Distinzione Hw/Sw HARDWARE equipaggiamento fisico del computer, costituito da componenti meccanici, elettrici, ed elettronici che fanno svolgere al calcolatore un insieme di funzioni generiche (si puo` prendere a calci!) SOFTWARE equipaggiamento logico del computer, costituito da programmi che utilizzano i componenti dell’hardware integrandoli al fine di svolgere compiti specifici (si puo` solo imprecargli contro!) l’hardware … (equipaggiamento fisico del computer) .. e il software (equipaggiamento logico del computer) Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni Informatica Corso di laurea in Scienze Geologiche Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 2 Prof. Andrea Trentini 9 UNIMI AA 2006-07 COS’E` L’INFORMATICA 10 COS’E` L’INFORMATICA Il calcolatore Il calcolatore Periferiche • Composto da • processore, o CPU (Central Processing Unit) o microprocessore • memoria centrale, o RAM (Random Access Memory) • periferiche Monitor Tastiera Mouse Memorie di massa Memoria CPU centrale BUS Input Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 11 COS’E` L’INFORMATICA Il calcolatore • Il processore, o CPU, esegue i programmi • La memoria contiene dati e programmi memorizzati allo stesso modo • Il calcolatore svolge funzioni diverse in base al programma eseguito • Il calcolatore e` una macchina di Von Neumann Output Input/Output (I/O) Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 12 COS’E` L’INFORMATICA La macchina di von Neumann memoria programma gestionale processore programma editor compilatore C periferiche dati sugli stipendi libro di testo programma sorgente in C Modello di macchina a programma memorizzato - lo stesso dagli anni 1940 ad oggi Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni Informatica Corso di laurea in Scienze Geologiche Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 3 Prof. Andrea Trentini 13 UNIMI AA 2006-07 COS’E` L’INFORMATICA 14 Classificazione dei calcolatori • Criteri COS’E` L’INFORMATICA Classi di computer • Mainframe • numero di utenti che vi possono accedere “contemporaneamente” • capacità di memoria • velocità di elaborazione • affidabilità • costo • grande capacità di memoria e di elaborazione • accessibili da centinaia di utenti “contemporaneamente” • utenti: grandi imprese, enti pubblici • Minicomputer • elevata capacità di elaborazione • accessibili da decine di utenti “contemporaneamente” • utenti: medie e grandi imprese Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 15 COS’E` L’INFORMATICA Classi di computer (2) • Workstation • elevata capacità di elaborazione • accessibili da pochi utenti “contemporaneamente” • utenti: piccole imprese, laboratori di ricerca • Personal computer • buona capacità di elaborazione • accessibile da un solo utente alla volta • automazione di ufficio, uso personale Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni Informatica Corso di laurea in Scienze Geologiche Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 16 COS’E` L’INFORMATICA Classi di computer (3) • Supercalcolatori • grande capacità di elaborazione • elaborazione scientifica, modelli matematici • in via di estinzione per elevato rapporto costo/prestazioni • Sistemi multiprocessore • grande capacità di elaborazione • elaborazione scientifica, modelli matematici • rapporto costo/prestazioni inferiore rispetto ai supercalcolatori Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 4 Prof. Andrea Trentini UNIMI AA 2006-07 17 COS’E` L’INFORMATICA 18 Una cosmogonia Mainframes …Proprietary software …FORTRAN, COBOL …Batch, time-sharing Minicomputers …DEC, Data Gen, HP …PDP, Vax Microcomputers …C, Unix …Hand calculators …TRS, Apple, IBM Supercomputers …Hobby kits -> PCs …Vector processors …Parallel processors …Massively parallel Networking …LANs, Ethernet …Client-server systems …Arpanet, NFSnet, Internet Batch → Time-sharing → Personal → Collaborative ~1950 ~1970 2000 Il software • Equipaggiamento logico del calcolatore • Logiciel in francese • Costituito dai programmi che fanno svolgere al calcolatore un insieme di funzioni • Si distingue quello di sistema e quello applicativo Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 19 COS’E` L’INFORMATICA Il software di sistema • per la gestione delle risorse del sistema • per il supporto nella stesura di programmi applicativi • per la comunicazione con l’utente applicativo • programmi destinati all’utente finale (videoscrittura, fogli elettronici, posta elettronica, browser, ecc.) Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni Informatica Corso di laurea in Scienze Geologiche COS’E` L’INFORMATICA Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 20 COS’E` L’INFORMATICA Il software - Esempi di sistema • sistema operativo • compilatori • driver di I/O • interfaccia utente applicativo • videoscrittura • gestione biblioteca • controllo impianto industriale • sequenziazione genoma • progettazione (CAD) • previsioni finanziarie Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 5 Prof. Andrea Trentini UNIMI AA 2006-07 21 COS’E` L’INFORMATICA 22 COS’E` L’INFORMATICA Il software - Esempi compilatori S.O. HW Software di sistema utilità Il software • Componente algoritmica • strutture dati e loro manipolazione • Codifica in un programma • linguaggio di programmazione • compilato vs interpretato CAD biblioteca • interazione con l’ambiente di esecuzione videoscrittura Software applicativo Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 23 COS’E` L’INFORMATICA Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 24 COS’E` L’INFORMATICA Algoritmi • Un algoritmo e` una procedura per risolvere un problema (matematico) in un numero finito di passi che implicano frequenti ripetizioni di un'operazione • Concetto fondamentale e centrale dell'informatica Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni Informatica Corso di laurea in Scienze Geologiche Algoritmi - Esempi • Algoritmi (o procedure) per • • • • calcolare il Massimo Comun Divisore ordinare un insieme di oggetti azionare la lavatrice suonare una melodia al piano (espressa in un insieme di simboli negli spartiti) Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 6 Prof. Andrea Trentini UNIMI AA 2006-07 25 COS’E` L’INFORMATICA 26 Programmi Algoritmo di Euclide • Un programma è la codifica di un algoritmo in un particolare linguaggio comprensibile ad un calcolatore • Dati due numeri interi e positivi m e n, calcola il più grande intero che li divide • implementazione dell’algoritmo • dettaglia aspetti quali l’acquisizione dei dati di ingresso e la visualizzazione dei risultati • può dover tener conto dell’architettura della macchina 1. dividere m per n, e sia r il resto della divisione (con 0 ≤ r < n) 2. se r = 0 allora la risposta è n e STOP 3. porre m ← n e n ← r e ripetere il passo 1 Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 27 COS’E` L’INFORMATICA COS’E` L’INFORMATICA Schema di programma • Leggi i dati • Elabora i dati - realizza l’algoritmo • La parte piu` difficile • Stampa il risultato Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni Informatica Corso di laurea in Scienze Geologiche Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 28 COS’E` L’INFORMATICA Programma_euclide #include <stdio.h> void main( ); int m = 0, n = 0, a, b, r, q; { /** leggi i dati **/ printf(“dammi il dividendo\n”); if scanf(“%d”, &m) == 0 { printf(“errore, fine programma\n”); exit(-1); } printf(“dammi il divisore\n”); if scanf(“%d”, &n) == 0 { printf(“errore, fine programma\n”); exit(-1); } /** elabora i dati **/ a = m; b = n; do q = m/n; r = m - q*n; m = n; n = r; while r <> 0; /** stampa il risultato **? printf(“il MCD tra %d e %d e` %d\n”, a,b,n); } Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 7 Prof. Andrea Trentini 29 UNIMI AA 2006-07 COS’E` L’INFORMATICA 30 Algoritmo vs procedura di calcolo • Gli algoritmi definiscono un insieme finito di istruzioni che danno luogo a una sequenza finita di operazioni • Il processo di ripetizione dei cicli deve terminare Algoritmi - Ricerca • La ricerca di algoritmi è stata una grande parte del lavoro dei matematici nei secoli • non tutti i problemi sono risolubili mediante un algoritmo • realizzare un programma che dato un qualunque programma e il relativo input e` in grado di decidere se il programma termina su quell’input • paradossi logici – questa frase e` falsa; questa frase contiene sei parole; questa frase non contiene sei parole • nell’algoritmo di Euclide, la sequenza dei resti r • sequenza di numeri interi positivi decrescenti • Se il requisito non e` soddisfatto, si parla di procedure di calcolo • La loro esecuzione non richiede la comprensione dei principi su cui si fonda • Il computer è un esecutore di algoritmi Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 31 COS’E` L’INFORMATICA Algoritmi - Ricerca • Verificarne/dimostrarne la correttezza • Valutarne la bonta` in termini di uso delle risorse di calcolo e memoria • Individuare i problemi che non ammettono una soluzione generale in tempi ragionevoli COS’E` L’INFORMATICA Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 32 COS’E` L’INFORMATICA Programmi • L’algoritmo va espresso in un sistema formale comprensibile dalla macchina che lo esegue • I linguaggi di programmazione sono sistemi formali piu` facili da usare del linguaggio macchina (sequenze di 0 e 1) ma piu` rigidi del linguaggio naturale • il linguaggio macchina è quello che la macchina può eseguire direttamente • la traduzione da un linguaggio ad un altro puo` essere svolta automaticamente • Non esiste un unico approccio per affrontare il processo della programmazione Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni Informatica Corso di laurea in Scienze Geologiche Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 8 Prof. Andrea Trentini 33 UNIMI AA 2006-07 COS’E` L’INFORMATICA 34 COS’E` L’INFORMATICA Obiettivi dell’informatica Integrazione tra artefatti • Progettare calcolatori • sempre più potenti e veloci • sempre più aperti a possibili integrazioni con altri artefatti tecnologici • sempre più facilmente utilizzabili da chiunque • Progettare software • per migliorare l’uso attuale • per impiegare il calcolatore in aree nuove • per aiutare la ricerca in altre discipline scientifiche (Fonte: http://www.ubiq.com/weiser) Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 35 COS’E` L’INFORMATICA Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 36 COS’E` L’INFORMATICA Applicazioni - Esempi • • • • • • • • Calcolo scientifico Grafica Musica e video Archivi e sistemi informativi Medicina e altre scienze Robotica e controllo di processi industriali Comunicazione … Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni Informatica Corso di laurea in Scienze Geologiche Aree disciplinari - Esempi • Aree di base • • • • • Informatica teorica Algoritmi Linguaggi di programmazione Sistemi operativi Architettura dei calcolatori Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni 9 Prof. Andrea Trentini 37 UNIMI AA 2006-07 COS’E` L’INFORMATICA Aree disciplinari - Esempi • Aree applicative • Reti di telecomunicazione • Basi di dati • Multimedialita` • Grafica • Video • Suono • Interazione uomo-macchina • Intelligenza artificiale, apprendimento automatico • Software engineering • Sicurezza Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni Informatica Corso di laurea in Scienze Geologiche 10