Laboratorio di Informatica Introduzione Laboratorio di Informatica AA 2008/2009 1 Scopo della lezione • Introdurre le nozioni base della materia • Definire le differenze tra hardware e software • Individuare le applicazioni e le aree disciplinari Laboratorio di Informatica AA 2008/2009 2 Informatica: definizione • Informatica: disciplina che cerca di dare un fondamento scientifico ad argomenti come la progettazione di computer, la programmazione, l’elaborazione delle informazioni, le soluzioni algoritmiche dei problemi, il processo algoritmico stesso. Laboratorio di Informatica AA 2008/2009 3 Concetti base • Algoritmo (informalmente): sequenza di passi che definiscono il modo in cui viene eseguita un’operazione (es. ricetta). • Primi algoritmi Æ ambito matematico, es. algoritmo della divisione (serie di operazioni ben codificate che permettono di calcolare il risultato della divisione ed il resto). • Spesso l’esecuzione di un algoritmo implica il ripetersi di una serie di operazioni elementari. Laboratorio di Informatica AA 2008/2009 4 Concetti base • Un algoritmo necessita di un esecutore (es. cuoco per algoritmo ricetta). • L’algoritmo deve essere rappresentato in forma tale da garantire che l’esecutore comprenda le istruzioni dell’algoritmo. • Ogni rappresentazione di un algoritmo è detta programma. Laboratorio di Informatica AA 2008/2009 5 Algoritmo di Euclide • Dati due numeri interi e positivi m e n, calcola il più grande intero che li divide 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 Laboratorio di Informatica AA 2008/2009 6 Programma_euclide #include <stdio.h> void main( ); int m = 0, n = 0, a, b, r, q; { 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); } a = m; b = n; do q = m/n; r = m - q*n; m = n; n = r; while r <> 0; printf(“il MCD tra %d e %d e` %d\n”, a,b,n); } Laboratorio di Informatica AA 2008/2009 7 Il computer è… • Il computer è un esecutore di algoritmi! Laboratorio di Informatica AA 2008/2009 8 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 di cicli deve terminare – 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 Laboratorio di Informatica AA 2008/2009 9 Concetti base • L’esecutore deve essere in grado di capire l’algoritmo Æ necessaria un’opportuna codifica dell’algoritmo • Es. ricetta per cuoco, linguaggio macchina per un elaboratore. • Programmazione = sviluppo di un programma, codifica in un opportuno formato, inserimento nella macchina. Laboratorio di Informatica AA 2008/2009 10 Concetti di base • Hardware • Software – Esecutore (cuoco, circuiti elettronici, …) – Programmi (insiemi di algoritmi) Programmazione Laboratorio di Informatica AA 2008/2009 11 Cosa studia l’informatica? • L’informatica 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 Laboratorio di Informatica AA 2008/2009 12 Cosa studia l’informatica? … tutto quello che sta tra l’hardware … (equipaggiamento fisico del computer) .. e il software (equipaggiamento logico del computer) Laboratorio di Informatica AA 2008/2009 13 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!) Laboratorio di Informatica AA 2008/2009 14 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 – per impiegare il calcolatore in aree nuove – per aiutare la ricerca in altre discipline scientifiche Laboratorio di Informatica AA 2008/2009 15 Un po’ di storia… • Nascono gli algoritmi (es. divisione)… • … Mancano delle “macchine calcolatrici” per eseguirli! • Prima “macchina calcolatrice”: abaco (al tempo dei Greci / Romani) + essere umano. • L’abaco ha capacità di memorizzazione, ma le istruzioni vengono eseguite dall’operatore umano. Laboratorio di Informatica AA 2008/2009 16 Un po’ di storia… • Utilizzo di ingranaggi meccanici per la memorizzazione e l’elaborazione dei dati (Pascal, XVII sec.; Leibniz, XVII-XVIII sec.;) – “linguaggio”: posizione degli ingranaggi. Le macchine eseguono operazioni prestabilite (non programmabili). • Babbage, XVIII sec.: macchina analitica, trascrizione su carta dei risultati, programmazione tramite schede perforate di cartone. Laboratorio di Informatica AA 2008/2009 17 Un po’ di storia… • Censimento degli Stati Uniti, 1890: Hollerith, schede di cartone preforate per velocizzare l’elaborazione dei dati Æ nascita dell’IBM. • Prima metà del ‘900: macchine elettromeccaniche (relè meccanici controllati elettronicamente). • Fine anni ’40, ENIAC (Electronic Numerical Integrator and Calculator), primo calcolatore. Laboratorio di Informatica AA 2008/2009 18 Un po’ di storia • Anni ’50 – ’70: computer per grandi aziende, amministrazioni pubbliche, militari, … • Fine anni ’70: nascita del personal computer (PC), Apple. • 1981: PC della IBM, software della Microsoft. • Oggi: Reti di calcolatori, Internet, … Laboratorio di Informatica AA 2008/2009 19 Il calcolatore • Composto da – processore, o CPU (Central Processing Unit) o microprocessore – memoria centrale, o RAM (Random Access Memory) – periferiche Laboratorio di Informatica AA 2008/2009 20 Il calcolatore Periferiche Monitor Tastiera Mouse Memorie di massa Memoria CPU centrale BUS Input Output Laboratorio di Informatica AA 2008/2009 Input/Output (I/O) 21 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 Laboratorio di Informatica AA 2008/2009 22 La macchina di von Neumann memoria programma gestionale programma editor processore periferiche compilatore C dati sugli stipendi libro di testo programma sorgente in C Modello di macchina a programma memorizzato - lo stesso dagli anni 1940 ad oggi Laboratorio di Informatica AA 2008/2009 23 Il software • Equipaggiamento logico del calcolatore • Costituito dai programmi che fanno svolgere al calcolatore un insieme di funzioni • Si distingue quello di sistema e quello applicativo Laboratorio di Informatica AA 2008/2009 24 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.) Laboratorio di Informatica AA 2008/2009 25 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 Laboratorio di Informatica AA 2008/2009 26 Il software - Esempi compilatori Software di sistema S.O. utilità HW CAD biblioteca videoscrittura Software applicativo Laboratorio di Informatica AA 2008/2009 27 Quindi l’informatica per… i d i l g o… o F ol c l ca e r P d r … o r W so s e c o pr Laboratorio di Informatica AA 2008/2009 … i n o i z a t n e s n o n Ma lo… so 28 Analisi del respiro / saturazione O2, CO2 durante l’attività sportiva • E:\_Ricerca_BiomeccanicaArrampicata\2007.09.27 BergamoScienza2007 - Postazione multimediale\Filmati\Filmato02.pps • Un “minicomputer” (processore, sistema operativo) portatile che sia in grado di analizzare in tempo reale il respiro dell’atleta. • I dati vengono registrati in una periferica di archiviazione di massa (ad esempio, hard disk). Laboratorio di Informatica AA 2008/2009 29 Acquisizioni a campo della pressione plantare durante la sciata, mediante un sistema portatile di solette a sensori di pressione. • E:\_Ricerca_BiomeccanicaArrampicata\2007.09.27 BergamoScienza2007 - Postazione multimediale\Filmati\Filmato03.pps • Una rete wireless è necessaria per la comunicazione tra soletta e PC. Laboratorio di Informatica AA 2008/2009 30 Archiviazione di immagini in un ospedale Sistemi PACS: in un ospedale moderno è necessaria un’infrastruttura (leggi rete) per la trasmissione di immagini ed un SW (database) per l’archiviazione ordinata. Laboratorio di Informatica AA 2008/2009 31 Elaborazione del segnale acustico per l’esaltazione delle frequenze del parlato Algoritmi per l’elaborazione digitale del segnale (identificazione automatica del parlato - amplificazione delle frequenze corrispondenti). Laboratorio di Informatica AA 2008/2009 32