Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni e le aree disciplinari 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 1 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 2 Informatica - def. 1 etim.: crasi dal fr. information automatique trattamento automatico dell informazione def.: disciplina scientifica che si occupa dell informazione e del suo trattamento in modo in modo automatico Informatica INFORMAZIONE MEZZI PER ELABORARLA RAPPRESENTAZIONE MEZZI FISICI PROCEDIMENTI (calcolatore) (algoritmi) 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 3 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 4
Informatica - def. 2 È la disciplina scientifica che studia La rappresentazione dell informazione in formato binario e la sua organizzazione 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 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 5 Algoritmo Un algoritmo è una sequenza finita di operazioni che portano alla soluzione di un problema in un numero finito di passi. Inoltre, ogni operazione deve essere realizzabile e non ambigua per l esecutore. Il concetto di algoritmo è noto da molto tempo. Il primo esempio è probabilmente quello di Euclide (oltre duemila anni fa) per il calcolo del massimo comune divisore di interi. Il concetto di algoritmo prescinde dall esistenza del calcolatore. 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 6 Esempi di algoritmi Esempi di algoritmi 12317 7 53 1759 41 67 4 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 7 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 8
Esecutore di algoritmi Un esecutore è un soggetto in grado di attuare le azioni specificate in un algoritmo Differenti esecutori possono usare algoritmi diversi per risolvere uno stesso problema Nel caso della divisione, un computer NON userebbe l algoritmo proposto nell esempio. 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 9 Problema - soluzione In ambito informatico si trattano problemi di elaborazione dell informazione. Un problema di elaborazione dell informazione è caratterizzato da un insieme di dati di partenza input (ingresso) il risultato (o insieme di risultati) che si vuole ottenere output (uscita) Ogni sua soluzione è una procedura che genera il risultato sulla base dei dati indicati 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 10 Esempi di problemi e loro soluzioni (algoritmi) 1. Calcolo della media dei voti di uno studente 2. Verificare se uno studente ha preso almeno un 30 Informatica 27 Matematica 18 Chimica 30 Biologia 23 Geologia 30 Fisica 22 V1 V2 V3. Vn Algoritmo per il calcolo della media 27 18 30 23 30 22 V1 V2 V3. Vn Algoritmo: Conta i voti: numero n Somma i voti V1 Vn Dividi la somma per n Esecuzione sull esempio: 6 150 25 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 11 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 12
27 18 30 23 30 22 Algoritmo per la verifica della presenza di un 30 Algoritmo: V1 V2 V3. Vn Leggi V1 V1=30? Se SÌ ok e Fine; altrimenti continua Leggi il voto successivo Vi Vi=30? Se SÌ: ok e Fine; altrimenti continua Ripeti gli ultimi due passi sino al termine dei voti Esecuzione sull esempio: 27 NO 18 NO 30 ok Algoritmi - Ricerca La ricerca di algoritmi è stata una grande parte del lavoro dei matematici nei secoli Occorre verificarne/dimostrarne la correttezza Occorre valutarne la bontà in termini di uso delle risorse di calcolo e memoria Occorre individuare i problemi che non ammettono una soluzione generale in tempi ragionevoli 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 13 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 14 Chi è l esecutore dell algoritmo? Gli esempi visti erano diretti ad esecutori umani. Se vogliamo automatizzare gli algoritmi, dobbiamo scriverli in un linguaggio comprensibile al calcolatore: linguaggio di programmazione Algoritmo codifica Programma Programma I linguaggi usati per dare istruzioni al calcolatore si chiamano linguaggi di programmazione Un programma è l espressione di un algoritmo in un linguaggio di programmazione Programma: sequenza di istruzioni comprensibili dal calcolatore (senza bisogno di ulteriori spiegazioni) 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 15 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 16
Calcolatore e calcolatrice In prima approssimazione un calcolatore è un dispositivo che: riceve dei dati (INPUT), li elabora, li memorizza, produce dei risultati (OUTPUT). Che differenza c è tra una calcolatrice ed un calcolatore? Una visione globale problema algoritmo dati programma Può eseguire soltanto un insieme predisposto di programmi programma 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 17 dati computer risultato risultato 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 18 Calcolatore L esecuzione di un algoritmo non richiede la comprensione dei principi su cui si fonda Il calcolatore è un esecutore di algoritmi È una macchina elettronica programmabile I dati e le istruzioni sono codificati in uno stesso formato (codice binario) e memorizzati sugli stessi tipi di dispositivi (memorie) Il calcolatore svolge funzioni diverse in base al programma che sta eseguendo HARDWARE SOFTWARE Distinzione Hw/Sw equipaggiamento fisico del computer, costituito da componenti meccanici, elettrici, ed elettronici che fanno svolgere al calcolatore un insieme di funzioni generiche equipaggiamento logico del computer, costituito da programmi che utilizzano i componenti dell hardware integrandoli al fine di svolgere compiti specifici 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 19 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 20
Distinzione Hw/Sw Hardware Qualcuno l ha sintetizzata così: L hardware è la parte del computer che puoi prendere a calci, il software quella contro cui puoi solo imprecare Parte attiva : processore o CPU esegue i programmi Parte passiva : memoria, canali di comunicazione, dispositivi I/O 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 21 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 22 Il software Il software Equipaggiamento logico del calcolatore Costituito dai programmi che fanno svolgere al calcolatore un insieme di funzioni Si distingue tra software di sistema e software applicativo (un programma è un algoritmo codificato in un linguaggio di programmazione) 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.) 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 23 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 24
Il software - Esempi 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 compilatori S.O. HW utilità CAD biblioteca videoscrittura Software di sistema Software applicativo 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 25 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 26 Funzioni tipiche Le funzioni svolte da un calcolatore sono: elaborazione di informazioni memorizzazione di informazioni trasferimento di informazioni controllo Obiettivi dell informatica 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 del calcolatore per impiegare il calcolatore in aree nuove per aiutare la ricerca in altre discipline scientifiche 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 27 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 28
Applicazioni - Esempi Calcolo scientifico Grafica Musica e video Archivi e sistemi informativi Medicina e altre scienze Robotica e controllo di processi industriali Comunicazione Aree disciplinari - Esempi Areedibase Informatica teorica Algoritmi Linguaggi di programmazione Sistemi operativi 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 29 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 30 Aree disciplinari - Esempi Aree applicative Reti di telecomunicazione Basididati Multimedialita` Grafica Video Suono Interazione uomo-macchina Intelligenza artificiale, apprendimento automatico Software engineering Sicurezza 2004/05 - Morpurgo, Zanaboni DSI Università di Milano Pag. 31