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.