1. Concetti base dell’Informatica Insegnamento di Informatica Elisabetta Ronchieri Corso di Laurea di Economia, Universitá di Ferrara I semestre, anno 2014-2015 Elisabetta Ronchieri (Universitá) Insegnamento di Informatica I semestre, anno 2014-2015 Argomenti Cos’é l’Informatica Informatica come scienza Elementi dell’Informatica Informazione Rappresentazione Elaborazione Algoritmo Un po’ di storia [Casadei] All’inizio E dopo 1 / 37 Argomenti Cos’é l’Informatica Informatica come scienza Elementi dell’Informatica Informazione Rappresentazione Elaborazione Algoritmo Un po’ di storia [Casadei] All’inizio E dopo 2 / 37 Alcune definizioni Scienza ⇒ possiede specifiche interpretazioni della realtá, metodologie per la risoluzione di problemi e approcci per lo sviluppo di concetti. Tecnologia ⇒ rivolta a comprendere le caratteristiche e il funzionamento dei dispositivi hardware e software. Strumento ⇒ orientata ad affrontare problemi con l’ausilio di strumenti tecnologici. 3 / 37 Nell’accezione di tecnologia I I É necessario tener conto dei nuovi modi di interazione con le macchine. Presume capacitá: I I I di ragionamento sulle modalitá di funzionamento; di utilizzo di strumenti complessi come i sistemi software; di verifiche sul campo. 4 / 37 Cosa non é I La scienza e la tecnica dei calcolatori. I Lo studio degli utilizzi e delle applicazioni dei calcolatori e del software. I Lo studio su come scrivere i programmi per i calcolatori. I La scienza di Internet e dei siti Web. Dicendo cosa non é, si capisce di cosa tratta l’Informatica. 5 / 37 Edsger W. Dijkstra (1930 - 2002) Computer science is no more about computers than astronomy is about telescopes. Provenienza della figura http://commons.wikimedia.org/ wiki/File: Edsger_Wybe_Dijkstra.jpg 6 / 37 Leonardo da Vinci (1452 - 1519) Quelli che s’innamorano della pratica senza la scienza, sono come i nocchieri che entrano in naviglio senza timone o bussola, che mai hanno certezza dove si vadano. Sempre la pratica dev’essere edificata sopra la buona teorica [...] e senza questa nulla si fa bene [Da Vinci, 1786]. 7 / 37 Aristotele (384322 a.C.) Noi riteniamo che il sapere e l’intendere siano propri piú all’arte che all’esperienza, e giudichiamo coloro che posseggono l’arte piú sapienti di coloro 8 / 37 Epistemologia del termine Informatica I Non deriva dall’Inglese, ma dal Francese. I Combina i lemmi Information e Authomatique ⇒ Informatique. I Tratta in modo automatico le informazioni. 9 / 37 Informatica come scienza É la rappresentazione e l’elaborazione dell’informazione [Ceri, 2006]. 10 / 37 Cosa é l’informazione I I É un’entitá (come notizia, dato o elemento). Consente all’uomo di: I I conoscere, in modo piú o meno esatto, ció che lo circonda; comunicare ed interpretare le proprie conoscenze ed esperienze. I Puó essere trattata anche da uno strumento. I Caratterizzata da contenuti. I Puó risultare piú o meno efficace in base allo strumento che la gestisce. 11 / 37 Esempi d’informazione I Una valore numerico. I Un cartello stradale. I Una parola che identifica un oggetto, come chiave. 12 / 37 Cosa si intende per rappresentazione I É una funzione che associa ad ogni entitá una sequenza di simboli. I É unica per ogni entitá. I Un simbolo puó essere espresso da una lettera dell’alfabeto. 13 / 37 Esempi di rappresentazione TROPPO GENERICI 10 TROPPO GENERICO Comprare del pane. Meno GENERICO Comprare 1 Kg di pane. 50110 18 Meno GENERICI Giorno: 10 Numero di matricola: 50110 Voto Scritto: 18 14 / 37 Cosa si intende per elaborazione I É una trasformazione del tipo Y = F (X ): I I I I I X é l’insieme dei dati iniziali; Y é l’insieme dei dati finali; F é una regola che fa corrispondere Y a X ; F si puó ottenere attraverso una o piú azioni elaborative che devono essere eseguite per ottenere una trasformazione. Avviene in modo sistematico e rigoroso ⇒ é ripetibile. 15 / 37 Esempio d’elaborazione Problema: ricerca del numero di telefono a partire dal nome e cognome di una persona. I Dati iniziali: I I I nome e cognome; rubrica telefonica. Dati iniziali: I I nome e cognome; elenco telefonico. I Regola di ricerca: sequenziale nella pagina con la letterina del nostro cognome nella rubrica; I Regola di ricerca: dicotomica nella pagina e poi sequenziale in essa nell’elenco. I Dato finale: numero di telefono. I Dato finale: numero di telefono. 16 / 37 Informatica come scienza É lo studio sistematico degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione (Association for Computing Machinery (ACM)). http://www.acm.org/ 17 / 37 Cosa si intende per algoritmo I I I I I É una sequenza finita di azioni elaborative che portano alla realizzazione di un compito. É l’insieme ordinato di azioni che risolvono un dato problema. Descrive il metodo risolutivo del problema. La sequenza di passi, se intrapresa da un esecutore, permette di ottenere i risultati attesi a partire dai dati iniziali. É eseguito da un’esecutore. I I Il calcolatore o computer é un esempio di esecutore. É in grado di automatizzare la risoluzione di un problema. 18 / 37 Esempi di algoritmi I Le istruzioni per montare un’apparecchiatura, come antenna. I Le istruzioni per impostare il ciclo di lavaggio di una lavastoviglia. I Le indicazioni per gli origami. I Le istruzioni per prelevare contanti dal Bancomat. I Il metodo per il calcolo del massimo comun divisore. I La ricetta di cucina. 19 / 37 Proprietá principali dell’algoritmo Non ambiguo ⇒ le istruzioni devono essere univocamente interpretabili dall’esecutore. Eseguibile ⇒ ogni istruzione deve essere eseguibile da parte dell’esecutore dell’algoritmo. Finito ⇒ per ogni input l’esecuzione dell’algoritmo deve terminare in un tempo finito. Corretto ⇒ se é finito, non ambiguo ed eseguibile. 20 / 37 Esempi di algoritmi non corretti Algoritmo con output diversi e input uguali ⇒ ambiguo Algoritmo con istruzioni complesse ⇒ non eseguibile Algoritmo con operazioni cicliche ⇒ non finito. 21 / 37 Altre proprietá Deterministico ⇒ Le istruzioni presenti in un algoritmo devono essere definite senza ambiguitá. Terminabile ⇒ L’esecutore deve terminare in tempo finito per ogni insieme di valori in ingresso. Realizzabile in pratica ⇒ L’esecutore deve essere in grado di eseguire l’algoritmo con le risorse a sua disposizione (informazioni + tecnologia). Generale ⇒ Un algoritmo, compatibilmente con i vincoli espressi dal problema, si occupa della risoluzione di famiglie di problemi. 22 / 37 Esempio di algoritmi ambigui Problema: pagare un bollettino di conto corrente postale. I Sequenza di azioni: I I I I Andare ad un ufficio postale; Compilare il bollettino di conto corrente postale; Effettuare il pagamento. Algoritmo ambiguo. I Sequenza di azioni: I I I I I Andare all’ufficio postale piú vicino; Compilare il bollettino; Assicurarsi di avere la cifra da pagare; Effettuare il pagamento. Algoritmo ancora ambiguo. 23 / 37 Esempio di algoritmi ambigui Problema: cottura degli spaghetti. Nota: algoritmo puramente sequenziale, le operazioni vengono eseguite in un unico ordine preciso. I Sequenza di azioni: I I I I I I Mettere l’acqua sul fuoco; Attendere l’ebollizione; Mettere il sale; Buttare gli spaghetti; Attendere x minuti; Scolare la pasta. I Sequenza di azioni: I I I I I I Mettere l’acqua sul fuoco; Mettere il sale; Attendere l’ebollizione; Buttare gli spaghetti; Attendere x minuti; Scolare la pasta. 24 / 37 Cosa serve per definire un algoritmo I Condurre l’analisi del problema. I Individuare i possibili ingressi. I Determinare le uscite. I Definire completamente e dettagliatamente la sequenza dei passi che portano alla soluzione del problema. I Scomporre la soluzione in piccoli passi. 25 / 37 Quali elementi definiscono l’Informatica I Informazione I Rappresentazione I Elaborazione I Algoritmo 26 / 37 Argomenti Cos’é l’Informatica Informatica come scienza Elementi dell’Informatica Informazione Rappresentazione Elaborazione Algoritmo Un po’ di storia [Casadei] All’inizio E dopo 27 / 37 Un po’ di storia I Nella storia l’uomo ha sempre cercato di rappresentare l’informazione ed elaborarla per risolvere i problemi della quotidianitá e di scienza. I Inizialmente sfruttava semplici strumenti, come tavolette di pietra per riportare i calendari lunari o effettuare conteggi. I Successivamente creava strumenti in grado di rappresentare numeri, come l’abaco. I Inventava macchinari in grado di automatizzare operazioni aritmetiche. I Fino ad ideare e costruire il primo calcolatore elettronico. 28 / 37 Mil[iardi di, a] anni fa 14 miliardi di anni fa Con il Bing Bang nasce l’universo, composto di materia, energia e informazione. 3 miliardi di anni fa Compaiono sulla terra microrganismi in grado di replicarsi secondo regole codificate. 7 milioni di anni fa Inizia l’avventura dell’uomo. 40 mila anni fa Risale il primo prototipo di calendario, ritrovato in una grotta dell’Africa meridionale. 9 e 6 mila anni fa Risalgono i primi conteggi, ritrovati in Africa. 29 / 37 a.C. 4000-3000 a.C. A Babilonia compare il primo strumento per la rappresentazione dei numeri (tipo abaco). 3000 a.C. In Mesopotamia si usano le tavolette di argilla per rappresentare simbolicamenti oggetti e numeri per registrare le transazioni commerciali. 3000-2000 a.C. Ad Ebla in Siria, si costituisce la prima biblioteca, esempio di file system. 1780 a.C. circa Si ha il primo esempio di programma dichiarativo, il codice di Hammurabi. 30 / 37 a.C. 800 a.C. Si ha il primo simbolismo per rappresentare l’informazione con alfabeto binario. 4 o 3 secolo a.C. Euclide descrive il metodo per trovare il massimo comun divisore tra due numeri, esempio di programma procedurale. Metá del 3 secolo a.C. circa Ctesibio di Alessandria costruisce un orologio ad acqua, la prima macchina a controllo automatico che mantiene costante il flusso d’acqua che lo alimenta 150-100 a.C. Compare il primo strumento (macchina di Anticitera) per calcolare la posizione della luna, del sole e dei 5 pianeti allora conosciuti. 31 / 37 Subito dopo 1 secolo d.C. A Roma compare l’abaco tascabile. Prima metá del 7 secolo Brahmagupta introduce regole formali per usare lo zero e numeri negativi. 8 o 9 secolo A Baghdad Muhammad ibn Musa Alkhwarizmi scrive libri di aritmetica e albegra. 1145 circa Compaiono per la prima volta i termini algoritmo e algebra, grazie a Roberto di Chester che traduci i libri di Akhwarizmi. 1494-1500 Leonardo Da Vinci progetta un robot umano, un cavaliere in grado di alzarsi e di muovere le braccia. 1606 Galileo Galilei descrive il compasso, strumento di calcolo. 1614 John Napier introduce algoritmi per semplificare l’esecuzione delle moltiplicazioni. 32 / 37 Rivoluzione Industriale 1623 Wilhelm Schickard costruisce il primo strumento automatico, l’orologio calcolatrice, usata per fare calcoli astronomici. 1642-1645 Blaise Pascal costruisce la Pascalina, che esegue addizioni e sottrazioni. 1671-1694 Gottfried Leibniz progetta il tamburo di Leibniz, macchina per eseguire addizione, sottrazione, moltiplicazione e divisione. 1733-1737 Jacques de Vaucanson costruisce il suonatore flauto traverso, macchina automatica di notevole qualitá. 1805 Joseph Marie Jacquard costruisce il telaio Jacquard, la prima macchina programmabile con schede perforate. 1820 Charles Xavier Thomas de Colmar produce l’Aritmometro, prima macchina calcolatrice di successo su scala industriale. 1829 Austin Burt costruisce la Typographer, la prima macchina da scrivere. 33 / 37 XIX secolo e metá XX Maturazione delle tecnologie meccaniche ed elettromagnetiche. 1836-1839 Samuel Morse brevetta il telegrafo e propone alfabeto Morse. 1842 Luigi Menabrea introduce il primo linguaggio di programmazione. 1843 Alexander Bain brevetta l’antesignana del moderno fax. 1867 William Thomson inventa un calcolatore analogico programmabile per prevedere le alte maree. 1884 Herman Hollerith produce la prima tabulatrice elettrica a schede perforate. 1885 Dorr Eugene Felt costruisce il primo prototipo di registratore di cassa. 1894 Guglielmo Marconi trasmette e riceve il primo segnale elettomagnetico senza fili. 1928 IBM introduce la prima scheda perforata con 80 colonne. 34 / 37 II guerra mondiale Ulteriori progressi dovuti alle tecnologie militari. 1936 Alan Mathison Turing inventa la macchina di Turing. 1943 In Inghilterra esce il primo computer completamente elettronico, Colussus, usato per decifrare i messaggi tedeschi. 1944 Ad Harvard viene installato Harvard Mark I (IBM), calcolatore interamente automatico. 1946 ENIAC é il primo computer elettronico. 35 / 37 Dopo la II guerra mondiale Maturazione dell’elettronica. 1947 Il primo transistor favorendo minor ingombro e assorbimento di elettricitá. 1958 Nasce il modem per la trasmissione dei dati binari via telefono. 1958 Nasce il microprocessore. 1960 PDP-1 primo computer commericale con monitor e tastiera. 1961 Primo videogame (due giocatori si sparano con dei laser). 1964 Doug Engelbart inventa il mouse. 1970 Floppy disk dell’IBM. 1971 Esce il microprocessore Intel 4004: intero PC su un unico chip con 2300 transistor in 3 mm2 (oggi decine di milioni di transistor). 36 / 37 Per ulteriori letture Leonardo Da Vinci, Trattato della pittura, Nell’Istituto delle scienze in Bologna (1786), https://archive.org/details/trattatodellapit00leon Stefano Ceri, Dino Mandrioli, Licia Sbattella, Informatica: programmazione, McGraw-Hill Education (2006) Giorgio Casadei, Antonio Teolis, Cronologia di Storia dell’Informatica, http://www.cs.unibo.it/casadei/poster/1.pdf 37 / 37