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