Corso di laurea in Informatica
A.A. 1999/2000
Prof. Andrea Masini
DESCRIZIONE:
Scopo del corso è fornire le basi della programmazione.
La programmazione è introdotta usando il linguaggio funzionale
tipato CAML (appartenente alla classe dei linguaggi di tipo ML).
Non è presupposta alcuna conoscenza pregressa di informatica.
MODALITÀ DI SVOLGIMENTO DELL' ESAME:
Scritto e orale .
PROGRAMMA
1. Nozioni di base di matematica e logica (3 settimane):
a) insiemistica (approccio elementare alla teoria degli insiemi);
b) relazioni e funzioni;
c) i numeri naturali e il principio di induzione, teorema di ricorsione;
d) numeri cardinali;
e) cenni di logica dei predicati (strutture matematiche, nozione di
semantica e sintassi, formule logiche e loro semantica, formalizzazioni
di proprietà di strutture, validità).
2. Introduzione alla programmazione (8 settimane):
a) basi della programmazione funzionale: (espressioni e valori, semantica,
tipi, funzioni, definizioni);
b) tipi elementari: (numeri interi e reali, booleani, stringhe, ennuple,
pattern, il concetto di inferenza di tipo);
c) le liste: (funzioni non ricorsive su liste);
d) ricorsione e induzione: (richiamo del teorema di ricorsione, definizione
di funzioni ricorsive su strut-ture induttive (liste), gli alberi);
e) nozioni elementari di verifica di correttezza di programmi: (induzione
ben fondata e funzioni ricorsive, tecniche di verifica per programmi ricorsivi).
MATERIALE DIDATTICO:
Il corso è coperto (completamente) da due dispense (disponibili
c/o copisteria della facoltà di SMFN):
i. Programmazione: un antipasto logico-matematico (redatte da A. Masini);
ii. Note di programmazione funzionale (dispense del corso di Programmazione
1 del corso di laurea e diploma in informatica di Pisa, redatte da G. Manco).
Per saperne di piu':
i. logica matematica:
-A.Asperti e A.Ciabattoni: Logica a Informatica, McGraw-Hill, 1997.
(è un testo di introduzione alla logica per studenti del primo biennio
del corso di laurea e/o diploma in informatica).
i. programmazione funzionale:
-G.Cousineau e M.Mauny: The Functional Approach to Programming, Cambridge
University Press, 1998, (è un testo avanzato di programmazione funzionale
con il linguaggio CAML.).
-http://caml.inria.fr/: è la pagina ufficiale del linguaggio
CAML. Tramite questa pagina è possibile re-perire documentazione
e materiale didattico sul linguaggio CAML.