Anno di corso: 1

Crediti: 8
Crediti: 8
Crediti: 8
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale

Anno di corso: 2

Anno di corso: 3

LINGUAGGI DI PROGRAMMAZIONE

Scheda dell'insegnamento

Anno accademico di regolamento: 
2015/2016
Anno di corso: 
2
Anno accademico di erogazione: 
2016/2017
Tipo di attività: 
Obbligatorio
Crediti: 
8
Ciclo: 
Primo Semestre
Ore di attivita' didattica: 
74
Prerequisiti: 

Concetti di base di programmazione ricorsiva, logica matematica e di architetture hardware e software.

Moduli

Metodi di valutazione

Modalita' di verifica dell'apprendimento: 

Tipo esame: Scritto e orale
Tipo valutazione: Voto finale.

Valutazione: 
Voto Finale

Obiettivi formativi

Gli studenti verranno esposti a vari stili di programmazione e agli strumenti usati per i principali linguaggi presentati nell'insieme dei moduli del corso. Gli studenti saranno in grado di sviluppare progetti di piccole e medie dimensioni in C, (Common) Lisp e Prolog utilizzando gli ambienti di programmazione tipici dei tre linguaggi presentati.

Contenuti

L’insegnamento ha l’obiettivo di mostrare il panorama dei paradigmi di programmazione secondo la tradizionale suddivisione tra paradigma imperativo, paradigma logico (dichiarativo) e paradigma funzionale.

Programma esteso

1 I paradigmi di programmazione: imperativo, logico (dichiarativo) e funzionale. Richiami delle nozioni di “run-time” e di esecuzione di un programma su un’architettura idealizzata a pila (stack). Nozioni base degli ambienti di programmazione per i diversi sistemi presentati.

2 "Il paradigma di programmazione funzionale.
Introduzione al linguaggio di programmazione LISP (Common Lisp).
"

3 "Il paradigma di programmazione logico.
Introduzione al linguaggio di programmazione Prolog."

4 "Il paradigma di programmazione imperativo.
Introduzione al linguaggio di programmazione C."

5 Utilizzo dei vari paradigmi in situazioni e contesti diversi.

Bibliografia consigliata

Leon Sterling and Ehud Shapiro, The Art of Prolog Advanced Programming Techniques - 2nd Edition; Abelson, Sussman e Sussman, Structure and Interpretation of Computer Programs (SICP); Peter Seibel, Practical Common Lisp (PCL); Brian W. Kernigham & Dennis M. Ritchie, C Programming Language (2nd Edition), Prentice Hall, 1988; Robert Sedgewick, Algorithms in C, Parts 1-5 (Bundle): Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms (3rd Edition), Addison Wesley, 2001

Metodi didattici

Il corso si svolgerà mediante lezioni frontali in presenza e con l’ausilio di sistemi di e-learning per la distribuzione del materiale didattico e di esercizi e progetti.