Elementi di Informatica Claudia Raibulet raibulet@disco.unimib.it
Didattica
Orario lezioni Lezioni Ricevimento Contatto Martedi’ 13:30 – 15:30 Mercoledi’ 13:30 – 15:30 Giovedi’ 13:30 – 15:30 Ricevimento Martedi’ 16:00 – 18:00 Contatto raibulet@disco.unimib.it 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: Libro: http://www.lintar.disco.unimib.it/space/Formazione/Didattica/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: Software SW: 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 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 1952 - IAS di Von Neumann primo calcolatore con programma in memoria aritmetica decimale sostituita con l’aritmetica binaria Memoria Unità di controllo ALU input accumulatore 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 progetto reso pubblico per aumentare il numero dei componenti compatibili nascono i “cloni” di altre aziende Storia “Moderna”: INTEL, MICROSOFT, MS-DOS, OS/2, WINDOWS
Il futuro Calcolatori Miniaturizzati Calcolatori Pervasivi 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’ ?