Corsi di Laurea Corsi di Laurea Magistrale Corsi di Laurea Magistrale
a Ciclo Unico
Scuola di Scienze
INFORMATICA
Insegnamento
LINGUAGGI DI PROGRAMMAZIONE
SC03105369, A.A. 2015/16

Informazioni valide per gli studenti immatricolati nell'A.A. 2015/16

Principali informazioni sull'insegnamento
Corso di studio Corso di laurea magistrale in
INFORMATICA
SC1176, ordinamento 2014/15, A.A. 2015/16
N0
porta questa
pagina con te
Crediti formativi 10.0
Tipo di valutazione Voto
Denominazione inglese PROGRAMMING LANGUAGES
Sito della struttura didattica http://informatica.scienze.unipd.it/2015/laurea_magistrale
Dipartimento di riferimento Dipartimento di Matematica
Obbligo di frequenza No
Lingua di erogazione ITALIANO
Sede PADOVA
Corso singolo È possibile iscriversi all'insegnamento come corso singolo
Corso a libera scelta È possibile utilizzare l'insegnamento come corso a libera scelta

Docenti
Responsabile GILBERTO FILE' INF/01

Dettaglio crediti formativi
Tipologia Ambito Disciplinare Settore Scientifico-Disciplinare Crediti
CARATTERIZZANTE Discipline Informatiche INF/01 10.0

Organizzazione dell'insegnamento
Periodo di erogazione Primo semestre
Anno di corso I Anno
Modalità di erogazione frontale

Tipo ore Crediti Ore di
didattica
assistita
Ore Studio
Individuale
ESERCITAZIONE 3.0 24 51.0
LEZIONE 7.0 54 121.0

Calendario
Inizio attività didattiche 01/10/2015
Fine attività didattiche 28/01/2016
Visualizza il calendario delle lezioni Lezioni 2019/20 Ord.2014

Commissioni d'esame
Nessuna commissione d'esame definita

Syllabus
Prerequisiti: Una buona conoscenza dei linguaggi Java e C++.
Conoscenze e abilita' da acquisire: Conoscere un linguaggio funzionale (ML, Haskell). Apprezzare le differenze tra linguaggi funzionali ed imperativi. Apprezzare l'importanza dei tipi. Capire la gestione dei dati durante l'esecuzione di un programma (funzionale ed imperativo) e le sue implicazioni rispetto alla compilazione del linguaggio. Conoscere i temi principali che hanno segnato l'evoluzione dei linguaggi di programmazione dal 1950 a Java. La capacità di costruire un compilatore ed un interprete.
Modalita' di esame: L'esame consiste di una prova scritta ed una orale. Nella prova scritta ci sono domande pratiche e domande teoriche. L'orale è una discussione sul progetto.
Criteri di valutazione: La valutazione è una misura dell'assimilazione del materiale del corso da parte dello studente. Gli esercizi scritti pratici mostrano la capacità dello studente di applicare le nozioni apprese a problemi sempre diversi. Le domande teoriche mostrano la profondità e l'ampiezza dell'apprendimento dello studente. Per ultimo, l'esame orale mostra la comprensione da parte dello studente del progetto che mette in gioco diversi concetti rilevanti insegnati nel corso.
Contenuti: I principali argomenti del corso sono i seguenti:
1) Il linguaggio funzionale Haskell: sintassi, esercizi, ricorsione, inferenza dei tipi, esecuzione eager e lazy;
2) l'inferenza di tipo in Haskell;
3) gestione run-time dei dati: blocchi, funzioni, ricorsione, scoping statico e dinamico, eccezioni;
4) breve storia dei linguaggi orientati agli oggetti: Simula, Smalltalk, C++ e Java;
5) punti critici del C++;
6) Java a confronto con C++;
7)confronto tra la realizzazione del polimorfismo parametrico in Haskell, C++ e Java;
8) il progetto consiste nella realizzazione di un compilatore per un semplice linguaggio funzionale: analisi lessicale, sintattica, generazione di codice intermedio, compilazione e interpretazione della traduzione finale.
Attivita' di apprendimento previste e metodologie di insegnamento: Il corso consiste fondamentalmente di lezioni tradizionali in aula. Per l'apprendimento è rilevante che ogni settimana una lezione di 2 ore sia organizzata come segue: nella prima ora gli studenti cercano di risolvere alcuni esercizi proposti dal docente sul materiale svolto nella settimana precedente. Nella seconda ora gli esercizi sono corretti alla lavagna con una forte interazione tra studenti e docente. Infine il progetto viene presentato agli studenti durante lo svolgimento del corso (in 5 parti) attraverso una documento ed alcune lezioni dedicate all'argomento. Inoltre il corso usa Moodle, che consente un'interazione libera tra docente e studenti.
Eventuali indicazioni sui materiali di studio: Le slide usate a lezione sono tutte a disposizione degli studenti sul sito elearning del corso. Alcuni articoli, menzionati durante il corso, vengono resi disponibili sull'elearning. Lo stesso vale per gli esercizi svolti ogni settimana nella lezione speciale descritta in precedenza e per il documento del progetto. Anche esami passati vengono resi disponibili sul sito di elearning.
Oltre a questo il corso segue un testo di riferimento.
Testi di riferimento:
  • John Mitchell, Concepts in Programming Languages. --: Cambridge University Press, 2003. Cerca nel catalogo