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

Crediti: 8
Crediti: 8
Crediti: 8
Crediti: 8
Crediti: 16
Tipo: A scelta dello studente
Crediti: 4
Tipo: Lingua/Prova Finale
Crediti: 13
Tipo: Altro

LINGUAGGI DI PROGRAMMAZIONE

Scheda dell'insegnamento

Anno accademico di regolamento: 
2017/2018
Anno di corso: 
2
Anno accademico di erogazione: 
2018/2019
Tipo di attività: 
Obbligatorio
Lingua: 
Italiano
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, sviluppo di un progetto di gruppo

Tipo valutazione: Voto finale

Valutazione: 
Voto Finale

Obiettivi formativi

Gli studenti apprenderanno vari paradigmi programmazione, in particolare il paradigma logico e quello funzionale. Apprenderanno inoltre a utilizzare ambienti per programmare nei principali linguaggi presentati. Gli studenti saranno in grado di sviluppare progetti di piccole e medie dimensioni in (Common) Lisp e Prolog utilizzando gli ambienti di programmazione 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 logico. Introduzione al linguaggio di programmazione Prolog."

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

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. Ci saranno inoltre delle lezioni in laboratorio per imparare a programmare nei linguaggi considerati a lezione.