Lezione introduttiva
Transcript
Lezione introduttiva
Informazioni sul corso INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) Ufficio: via Donizetti 3 Orario di ricevimento: giovedì dalle 14 alle 16 Pagina Web: http://www.unibg.it/dondi Materiale del corso Libro di testo: M. Lazzari, A. Bianchi, M. Cadei, Cr. Chesi, S. Maffei, Informatica Umanistica, McGraw-Hill, 2010, pp. 342 Lucidi delle lezioni Modalità d’esame: scritto Introduzione al corso Informazioni sul corso Informatica Programma del corso Fondamenti di informatica Rappresentazione dei dati Codifica analogica e digitale Codifiche di dati Telematica e ipermedialità: Architettura dell’elaboratore Software: sistema operativo Reti di elaboratori Internet e Web Ricerca dell’informazione Fondamenti della catalogazione bibliotecaria Ricerca bibliografia Informatica: disciplina che si occupa di progettare e costruire macchine per l’elaborazione automatica di informazione Vantaggi elaboratori automatici: Tempi di elaborazione Affidabilità Elaborazione operazioni meccaniche Informatica Informazione Information & Communication Technology (ICT): disciplina nata dalla convergenza tra Tecnologia dell’informazione Telecomunicazioni Elaborazione di informazione; cosa si intende per informazione? Dato: insieme di simboli rappresentati su un supporto Informazione: dato per la descrizione della proprietà di un oggetto Conoscenza: interpretazione dell’informazione Linguaggi formali Codifica dell’informazione Linguaggi naturali: linguaggi per la comunicazione Ambiguità del significato Elaborazione automatica: richiede assenza di ambiguità → linguaggi formali Alfabeto Grammatica formale: regole di combinazione tra simboli Semantiche formali: definizione significato Informazione: ammette codifiche diverse Codifiche numeriche: numeri arabi, numeri romani,… Codifica minima: Alfabeto = {0,1} ogni simbolo rappresenta un bit (binary digit) Rappresentabile da dispositivi bistabili Codifica dell’informazione Bit: due possibili configurazioni Sequenza di n bit: 2n configurazioni bit: 00, 01, 10, 11 (22=4 configurazioni) 3 bit: 000, 001, 010, 011, 100, 101, 110, 111 (23=8 configurazioni) … 2 Byte: successione di 8 bit Capacità di memorizzazione misurata in bit, byte, … Elaborazione dell’informazione L’elaborazione dell’informazione prevede le seguenti fasi: 1. Informazione in ingresso (input) 2. Fase di elaborazione 3. Informazione in uscita (output) Possono essere presenti altre fasi: Memorizzazione Trasmissione Codifica dell’informazione Kilobyte (KB) 210=1.024 byte (circa mille byte) 20 Megabyte (MB) 2 =1.048.576 byte (circa un milione di byte) Gigabyte (GB) 230=1.073.741.824 byte (circa un miliardo di byte) Terabyte (TB) 240=1.099.511.627.776 byte (circa mille miliardi di byte) Analogamente: Kilobit (Kb), Megabit (Mb), Gigabit (Gb), Terabit (Tb) Algoritmo Un elaboratore realizza la fase di elaborazione dell’informazione con esecuzione di istruzioni Le istruzioni indicano come i dati in input devono essere elaborati Sequenza di istruzioni: algoritmo Es. Somma tra numeri Linguaggi di programmazione Sistemi automatici di elaborazione Descrizione di algoritmi: strumenti formali dell’informazione Tra questi linguaggi di programmazione Sistemi per il trattamento dell’informazione Sistemi manuali: carta e penna Sistemi (semi)automatici rigidi: eseguono singole elaborazioni, continue indicazioni: calcolatrice Sistemi automatici flessibili: rappresentano dati e istruzioni in una memoria interna Sintassi semplice, istruzioni elementari Assenza di ambiguità Alcuni linguaggi: Basic, Cobol, C, C++, Java, … Descrizione di un algoritmo con un linguaggio di programmazione: programma Programmatore: chi scrive programmi Sistemi automatici di elaborazione Sistemi automatici di elaborazione Modelli per svolgere calcoli in modo automatico: Modelli creati nell’antichità: es. abaco Nel XVII secolo: modelli automatici per calcolo automatico Nell’800 vennero compiuti diversi passi importanti Progettazione del primo calcolatore con unità di memoria e unità di calcolo (C. Babbage) Scrittura dei primi programmi (A. Lovelace) G. Boole inventò l’algebra booleana Regolo calcolatore Pascalina Sistemi automatici di elaborazione Sistemi automatici di elaborazione Nel ‘900 vennero realizzati i primi modelli funzionanti A. Turing (1936): modello teorico noto come macchina di Turing A partire dal 1943 progettati diversi modelli di calcolatore elettronico universale a valvole termoioniche Colossus ENIAC (Electronic Numerical Integrator and Computer) EDVAC (Electronic Discrete Variable Computer): macchina di Von Neumann K. Zuse (tra il 1936-41): Z1 Sistemi automatici di elaborazione Anni ‘50: introduzione di transistor Anni ‘60: produzione dei primi microprocessori, basati su circuiti integrati Anni ‘70: Apple creò il personal computer Anni ‘80: Apple creò il primo personal computer con interfaccia grafica Macchina di Turing Alan Turing (1912-1954), matematico inglese, ideò la macchina di Turing Dispositivo per l’elaborazione automatica dell’informazione Modello teorico di elaborazione automatica Il funzionamento imita un uomo che svolge calcoli Macchina di Turing Macchina di Turing La macchina di Turing è costituita da Un alfabeto con il simbolo speciale blank ( þ) Un nastro diviso in celle: ogni cella può contenere un simbolo dell’alfabeto Una testina: può muoversi lungo il nastro, leggere/scrivere nella cella corrente Insiemi di stati, tra cui uno stato iniziale e uno stato finale, associati alla testina La macchina con alfabeto A = { 0,1, þ} Stato della testina: a Macchina di Turing Il funzionamento della macchina di Turing è guidato da un insieme di regole; in base a stato della testina simbolo letto la regola indica: il movimento della testina il simbolo da scrivere lo stato della testina Cella1 Cella2 0 1 0 1 Testina 0 0 0 1 þ þ Stato = a Macchina di Turing E’ possibile costruire una macchina universale (macchina di Turing universale): una macchina che imita il comportamento di qualunque macchina di Turing Tesi di Church - Turing: l’insieme dei problemi risolvibili tramite metodi meccanici equivale all’insieme dei problemi risolvibili dalla macchina di Turing Calcolatore in grado di simulare il comportamento di una macchina di Turing universale: Turing Equivalente