Elementi di Informatica Claudia Raibulet [email protected] Didattica Orario lezioni Lezioni • Martedi’ • Mercoledi’ • Giovedi’ Ricevimento • Martedi’ 13:30 – 15:30 13:30 – 15:30 13:30 – 15:30 16:00 – 18:00 Contatto • [email protected] • U7, 4 piano, stanza 427 Laboratorio 2 turni: A e B Turno A: Dott. Paolo Mereghetti Turno B: Dott. Luigi Ubezio Edificio U16 – Terzo Piano Via Thomas Mann, 8 Orario laboratori - Turno A Lab1: lunedi’ 15 maggio, ore 14:00 – 18:00 Lab2: venerdi’ 26 maggio, ore 9:30 – 13:30 Lab3: lunedi’ 29 maggio, ore 14:00 – 18:00 Lab4: venerdi’ 16 giugno, ore 14:00 – 18:00 Lab5: lunedi’ 19 giugno, ore 9:30 – 13:30 Lab6: lunedi’ 26 giugno, ore 9:30 – 13:30 Orario laboratori – Turno B Lab1: lunedi’ 15 maggio, ore 10:00 – 13:00 Lab2: mercoledi’ 24 maggio, ore 13:30 – 16:30 Lab3: venerdi’ 26 maggio, ore 14:30 – 17:30 Lab4: lunedi’ 29 maggio, ore 9:30 – 12:30 Lab5: venerdi’ 9 giugno, ore 9:30 – 13:30 Lab6: venerdi’ 16 giugno, ore 9:30 – 13:30 Lab7: venerdi’ 23 giugno, ore 9:30 – 13:30 Obiettivi Conoscere le nozioni fondamentali dei sistemi di elaborazione e del software di base. • hardware e software Scrivere semplici algoritmi Supporto Sito del corso: • http://www.lintar.disco.unimib.it/space/Formazione/Didatti ca/InfoBio2006 Libro: • Informatica arte e mestiere, Ceri, Mandrioli, Sbattella, McGraw-Hill, 2004 Programma del corso (I) Introduzione (Cap. 1) Architettura dell’elaboratore (Cap. 2): • • • • L’architettura funzionale L’Unita’ Centrale di Elaborazione (CPU) Memoria centrale e memoria di massa Dispositivi di Input/Output Rappresentazione dell’informazione nel calcolatore (Cap. 11): • Rappresentazione dei numeri • Rappresentazione dei caratteri • Rappresentazione delle immagini Programma del corso (II) La soluzione algoritmica dei problemi (Cap. 5 e 6): • Operazioni primitive, esecutori, algoritmi • Progettazione degli algoritmi e loro rappresentazione • Programmazione strutturata: le strutture di controllo fondamentali: sequenza, selezione e iterazione • Linguaggi di programmazione • Interpreti e compilatori Programma del corso (III) L’organizzazione dei dati (Cap. 14): • Le strutture di dati fondamentali L'architettura dei sistemi informatici (Cap. 13 e 15) • Sistemi operativi • Sistemi distribuiti e reti di calcolatori Internet (Cap. 16) Evoluzione dell’informatica (Cap. 19) Che cos’e’ informatica? Possibile definizione: • La scienza della rappresentazione e dell’elaborazione dell’informazione. Tecnologie e strumenti formali per l’aquisizione, la rappresentazione, il trattamento automatico, la trasformazione e la comunicazione di informazioni INFORMAione automaTICA Che cos’e’ informatica? Elaboratore = un sistema per l’elaborazione automatica delle informazioni Risorse per la realizzazione automatica di compiti: • Hardware – la struttura fisica prende il nome di hardware • Software – l’insieme di tutti i programmi che permettono di utilizzare l’elaboratore si chiama software Informatica: Hardware + Software Hardware & Software Hardware HW: • • • • componenti fisici circuiteria periferiche dispositivi Software SW: • Programmi, dati e informazioni Hardware & Software L’Hardware è la parte del computer che puoi prendere a calci. Il Software è quella contro cui puoi solo imprecare. Evoluzione dell’elaboratore Obiettivo: • Definire una macchina per il calcolo automatico (calcolatore) Due tipi differenti di calcolatori: • Meccanici • Digitali Calcolatori meccanici 1642 - Calcolatore Meccanico di Pascal • Primo prototipo di macchina di calcolo (Pascalina) • Addizioni e Sottrazioni • Pascal la progettò all’età di 19 anni per agevolare il lavoro del padre che era funzionario del fisco Calcolatori meccanici 1650 - Regolo calcolatore del matematico inglese Gunter • Esegue moltiplicazioni, divisioni ed operazioni complesse utilizzando scale logaritmiche. Calcolatori meccanici Fine 1600 – calcolatore meccanico di Leibniz • Moltiplicazioni e divisioni Calcolatori Meccanici Programmabili Inizio 1800 – matematico e ingegnere inglese Babbage costrui la prima macchina programmabile (l’antenato del moderno calcolatore elettronico) • Operazioni complesse • Osservazione: progetto estremamente innovativo, ma la complessita’ e la precisione richiesta per i suoi meccanismi e la mancanza dei fondi resero impossibile la realizzazione concreta di tale strumento • Ada Augusta Byron, figlia del poeta George Byron, collaboro’ con Babbage seguendo i progetti della macchina analitica e arricchendo con numeroi ed importanti contributi il concetto di programmazione Calcolatori Meccanici Programmabili 1930 – Zi di Zuse • Calcolatore a relè (dispositivi atti ad effettuare, mediante opportuni segnali di comando, operazioni di connessione, interruzione e commutazione fra circuiti elettrici) • I suoi calcolatori andarono distrutti con il bombardamento di Berlino nel 1944 Fine 1930 – Atanasoff e Stibbitz • Condensatori per la memoria 1944 – Mark I di Aiken • Realizza l’idea di Babbage utilizzando i relè invece degli ingranaggi meccanici Calcolatori digitali 1943 - Colossus di Turing • macchina segreta usata dagli inglesi durante il periodo bellico per decodificare i messaggi che i tedeschi inviavano ai propri sottomarini o segreto per 30 anni 1946: Electronic Numerical Integrator and Computer (ENIAC) di Eckert e Mauchley • utilizzato per sostituire centinaia di donne americane che manualmente calcolavano le tabelle di puntamento per l’artiglieria pesante Macchina di Von Neumann Macchina di Von Neumann • 1952 - IAS di Von Neumann o o primo calcolatore con programma in memoria aritmetica decimale sostituita con l’aritmetica binaria Memoria Unità di controllo ALU accumulatore input output Prima generazione Anni ‘50 Dominata dallo sviluppo dei calcolatori Obiettivo: esecuzione di un altissimo numero di calcoli numerici per elaborazioni scientifiche Calcolatori di dimensioni enormi Programmazione in linguaggio macchina Problemi di ricerca relativi alla traduzione automatica Seconda generazione 1948 - i transistor sono inventati ai Bell Labs. Bardeen, Brattain e Shockley vincono il premio Nobel Hardware dedicato ad uno specifico software (Algol 60) Fino ad ora l’hardware era al centro dell’attenzione -> l’attenzione si sposta sull’ingegneria del software Sviluppo dei linguaggi di programmazione di alto livello Cresce la potenza del calcolatore – come gestire tale potenza? -> tramite i sistemi operativi Operazioni effettuate in parallelo all’interno della CPU Terza generazione 1958 – Invenzione dei circuiti integrati (dispositivi elettronici costituiti dall'integrazione di un circuito elettronico su di un substrato che può essere ceramico o semiconduttore) Costruzioni di calcolatori più piccoli, più veloci e meno costosi -> nasce il personal computer L’attenzione si foccalizza sui metodi di progettazione sia del hardware che del software Definizione piu’ rigorosa del significato dei programmi e una verifica piu’ affidabile della loro correttezza Quarta generazione VLSI (Very Large Scale Integration) • Milioni di transistor in un unico chip • 1980, ognuno può acquistare un calcolatore (PC) • IBM 8088, costruito con soli componenti esistenti o o progetto reso pubblico per aumentare il numero dei componenti compatibili nascono i “cloni” di altre aziende • Storia “Moderna”: o INTEL, MICROSOFT, MS-DOS, OS/2, WINDOWS Il futuro Calcolatori Miniaturizzati • palmari, cellulari, ... Calcolatori Pervasivi • calcolatori invisibili, onnipresenti, comunicanti ed intelligenti DNA computing • molecole di DNA come materiale per costruire i computer del futuro • integrazione tra computer ed esseri viventi L’impatto dell’informatica sull’individuo e sulla societa’ ?