PROGRAMMAZIONE 1

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.