Linguaggi e Metodologie di Programmazione
Modulo: Programmazione Dichiarativa e Funzionale
Benvenuto nella pagina del secondo modulo di Linguaggi e Metodologie di Programmazione, dedicato alla Programmazione Dichiarativa e Funzionale. Questa pagina contiene tutto il materiale didattico aggiornato. Per qualsiasi altra comunicazione (date esami, prenotazioni, informazioni su assenze docenti etc..), vi rimandiamo invece alla pagina non ancora attivata presente sul sito della didattica di Tor Vergata
Esercizi Collaborativi
Per imparare, occorre anche fare! Consegnate gli esercizi seguenti a me (fabiomassimo.zanzotto) e al tutor condividendo una cartella su gooogledrive.
- Progetto in Java: Creatore Automatico di Cruciverba (Codice su BitBucket): consegnare Giovedi 10/3/2015
- Progetto in Java: Ricercare Informazione in Grafi Sintattici (Codice su BitBucket): consegnare Martedi 15/3/2015
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.
Materiale didattico di accompagno al corso
Introduzione al Paradigma Dichiarativo
Esecuzione dei programmi Prolog. Liste ed operatori aritmetici
Definire operatori. Strutture dati
Controllare lo spazio di ricerca
Controllare Tipi Dati. Decomporre fatti. Controllare il database
Recuperare tutte le risposte. Gestione di input-output
Ordinamento e operazioni su dati strutturati
Similarità tra alberi e programmazione dinamica
Cenni di Natural Language Processing in Prolog
Cenni di Machine Learning in Prolog
Introduzione al Python e alla programmazione funzionale (in progress)