Fondamenti logici ed epistemologici della teoria degli

Corso di Laurea in Scienze della Comunicazione
Informatica Avanzata II
A A 2007
A.A.
2007-2008
2008
Fondamenti logici ed epistemologici
della teoria degli algoritmi
P f Federico
Prof.
F d i Laudisa
L di - Dott.
D tt Edoardo
Ed
d Datteri
D tt i
Parte 0
Introduzione
Tema del corso
A qquali limiti sono soggetti
gg
i calcolatori,, e
quali sono le loro potenzialità?
Calcolatori e modelli di calcolo
`
`
`
A quali limiti sono soggetti i
calcolatori, e quali sono le loro
potenzialità?
à?
Questa domanda riguarda tutto ciò
che possiamo considerare
calcolatore, indipendentemente dalle
“
“caratteristiche
tt i ti h dell’hardware”
d ll’h d
”
Serve una caratterizzazione precisa
d i principi
dei
i i i generalili di
funzionamento dei calcolatori
Cos’è
Cos
è un calcolatore?
`
El
Elementi
per una risposta intuitiva:
`
`
`
`
I calcolatori eseguono procedure composte da un numero
finito di passi.
passi
A ogni passo, la scelta del passo successivo non è arbitraria ma
pre determinata.
pre-determinata
In genere, tali procedure permettono di ottenere un certo
risultato a p
partire da un insieme di dati iniziali.
Chiamiamo algoritmo lo schema, o il programma, che
determina l’ordine e le relazioni tra i p
passi della
procedura.
Esempio di algoritmo
`
`
Supponiamo che L sia un elenco finito di termini ordinato
alfabeticamente. Quale procedura possiamo adoperare
pper capire
p se una certa pparola a sia o meno in L?
Primo algoritmo
`
Leggi
gg il primo
p
elemento w di L. Se w è a,, termina la pprocedura
con esito positivo. Se w non è a, ed è l’ultimo elemento della
lista, termina la procedura con esito negativo. Se w non è a, e w
non è l’l’ultimo
li
elemento
l
di LL, torna all’inizio
ll’i i i scegliendo
li d il
secondo elemento di L. E così via.
Esempio di algoritmo
`
`
Supponiamo che L sia un elenco finito di termini ordinato
alfabeticamente. Quale procedura possiamo adoperare
pper capire
p se una certa pparola a sia o meno in L?
Secondo algoritmo
`
Se L è composto
p
da un solo termine diverso da a,, esci dalla
procedura con esito negativo. Altrimenti, leggi il termine
centrale w di L. Se w è a, esci dalla procedura con esito
positivo.
i i Al
Altrimenti
i
i confronta
f
w con a. Il termine
i a segue o
precede w rispetto all’ordinamento alfabetico? Se lo segue,
ripeti i passi precedenti selezionando però la seconda metà di
L; se lo precede, fai lo stesso selezionando la prima metà di L. E
così via.
Domande
`
`
Riformulazione
Rif
l i
della
d ll d
domanda
d iiniziale:
i i l qualili risultati
i lt ti
possiamo e non possiamo ottenere mediante
algoritmi?
l it i?
Per affrontare questa domanda dovremo basarci su
caratterizzazioni precise, non intuitive, delle nozioni di
algoritmo e di sistema (macchina) che esegue
algoritmi
Obiettivo ed effetti collaterali
L’obiettivo
ob ett vo di questo corso
co so è quello
que o di discutere
scute e alcuni
a cu
risultati fondamentali relativi ai limiti e delle potenzialità
dei calcolatori, ottenuti mediante lo studio di modelli
astratti di algoritmo e macchina calcolatrice
“Effetti collaterali”:
` Vedremo come il riferimento a modelli formali, e la
caratterizzazione p
precisa di certe nozioni teoriche,
permettano di rispondere a domande di grande
importanza su un’intera classe di oggetti “di uso comune”
` Imparareremo alcuni elementi di programmazione
orientata al web
`
Applicazione
`
`
`
Esempio
se p o di linguaggio
guagg o di programmazione:
p og a
a o e: il PHP
Mediante il linguaggio PHP è possibile realizzare le più
avanzate applicazioni web, tra cui i motori di ricerca, la
gestione automatica dei contenuti, i servizi per il
commercio elettronico.
Impareremo:
`
`
`
ap
programmare
g
semplici
p pagine
p g PHP come esempio
p di
linguaggio per la programmazione
a programmare semplici pagine internet “di base” mediante
HTML e CSS
alcune nozioni fondamentali sulla struttura e sul funzionamento
d ll rete
della
t IInternet
t
t
Informatica e Scienze della Comunicazione
Linguaggi
` Linguaggi formali (per la definizione e lo studio delle
proprietà
i tà d
deii modelli
d lli di calcolo)
l l )
` Linguaggi di programmazione
` Cenni relativi alle grammatiche formali
Studio di strumenti comunicativi
` Proprietà dei calcolatori
` Applicazioni
pp
web
Modelli di macchina calcolatrice
automi finiti…
…automi a pila…
macchine a
memoria limitata
macchine a
memoria illimitata
…macchine di Turing
g
Attraverso i modelli di calcolo
`
`
Stu
Studieremo
o le capacità
capac tà e i limiti
t di questi
qu st modelli
o
di
macchina calcolatrice
Quando arriveremo a studiare le macchine di Turing,
`
`
`
potremo formulare una definizione soddisfacente e precisa di
“algoritmo”
cercheremo di capire perché i nostri computer possono essere
considerati macchine di Turing
dimostreremo il fatto che ci sono dei risultati che non possono
essere ottenuti mediante macchine di Turing, quindi (in base al
punto precedente) mediante alcun calcolatore.
calcolatore
Struttura del corso
`
Prima parte: introduzione applicativa
`
`
`
`
La struttura della rete Internet
Un linguaggio per Internet: creazione di pagine “di base” (laboratorio)
Introduzione ai linguaggi di programmazione
Seconda parte: i modelli di calcolo
`
Automi finiti
Intermezzo: approfondimenti logico-filosofici
` Seconda parte (continua)
`
`
`
Automi a pila
Macchine di Turingg
Terza parte: conclusione applicativa
`
Introduzione e laboratorio PHP
Orari
Corso:
` Mercoledì ore 14:30 – 16:30 U28B
` Giovedì ore 14:30 – 16:30 U6-3
` Venerdì ore 12:30 – 14:30 U6-3
Laboratori
` Venerdì 16,, 12:30 – 14:30
Laboratorio 1631, Edificio U16 (Via Thomas Mann)
` Chi non possiede i dati per l’accesso è pregato di
ottenerli visitando la pagina
http://servizi.didattica.unimib.it/ e scegliendo "Voglio
attivare ll'account"
account nel menu a sinistra
sinistra.