Navigazione di Sezione:
OBIETTIVI FORMATIVI: Il corso intende fornire allo studente una panoramica dettagliata dei linguaggi di programmazione che implementano paradigmi diversi dal solo modello procedurale visto nei corsi precedenti.
CONOSCENZA E CAPACITÀ DI COMPRENSIONE: Conoscenza di modelli non procedurali alla programmazione.
CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: Ricerca di soluzioni basate su modelli di programmazione non esplicitamente procerurale.
AUTONOMIA DI GIUDIZIO: Comprensione di quale sia l'approccio di programmazione migliore dato l'ambito di applicazione.
ABILITÀ COMUNICATIVE: Lo studente avrà la capacità di descrive i modelli non procedurali.
CAPACITÀ DI APPRENDIMENTO: Richesta una rivoluzione nella modalità di pensare a chi è abituato a pensare proceduralmente.
PROGRAMMA
Paradigma Dichiarativo: In questa parte del corso, si vuole introdurre lo studente alla programmazione dichiarativa basata sulla logica. Dopo una prima analisi delle differenze dei paradigmi di programmazione procedurali e dichiarativi, viene introdotto il Prolog come un linguaggio dichiarativo. Il linguaggio verrà descritto dal punto di vista sintattico e verranno introdotti i principali tipi di dati e gli operatori. Verranno descritte delle applicazioni nell'ambito dell'intelligenza artificiale e dell'elaborazione del linguaggio naturale. Verrà infine introdotta il legame con la logica dei predicati e con la logica del prim'ordine.
Paradigma Funzionale: In questa parte del corso, lo studente verrà introdotto ai principi di programmazione funzionale. Il linguaggio utilizzato è il Python che è un linguaggio ibrido che contiene alcuni di questi principi.
MODALITA' D'ESAME
L'esame consta di una prova al calcolatore nella quale si chiede di realizzare dei programmi che soddisfino i requisiti / risolvano i problemi descritti nel testo fornito agli studenti. Successivamente, lo studente discute con i professori la prova effettuata e infine affronta una prova orale sugli aspetti più teorici del corso.
TESTI
Paradigma Dichiarativo: I. Bratko, Prolog Programming for Artificial Intelligence, Addison Wesley