LINGUAGGI E PROGRAMMAZIONE ORIENTATA AGLI OGGETTI

LINGUAGGI E PROGRAMMAZIONE ORIENTATA AGLI OGGETTI

_
iten
Codice
61799
ANNO ACCADEMICO
2016/2017
CFU
12 cfu al 2° anno di 8759 INFORMATICA (L-31) GENOVA
SETTORE SCIENTIFICO DISCIPLINARE
INF/01
LINGUA
Italiano
SEDE
GENOVA (INFORMATICA )
periodo
Annuale
materiale didattico

PRESENTAZIONE

Elementi di un linguaggio di programmazione: sintassi, sematica statica e dinamica.

Programmazione object-oriented: Java.

Programmazione funzionale: OCaml.

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

- Basandosi sulle conoscenze di programmazione imperativa acquisite dallo studente nei corsi precedenti, fornire allo studente le nozioni fondamentali relative ai linguaggi di programmazione ad alto livello e un buon livello di conoscenza di diversi paradigmi di programmazione (in particolare object-oriented e funzionale), dal punto di vista sia concettuale che operativo. - Presentare e far sperimentare lo sviluppo di programmi a partire da specifiche informali nell'ambito della programmazione in piccolo, e mediante l'utilizzo di un ambiente di sviluppo integrato, estendendo quanto visto nel corso di Introduzione alla Programmazione.

Modalità didattiche

Tradizionale

PROGRAMMA/CONTENUTO

Elementi di un linguaggio di programmazione: generalità, diversi paradigmi; sintassi, semantica statica e dinamica, sviluppo di un interprete guidato dalla semantica formale.
Paradigma object oriented (linguaggio Java): oggetti, classi, ereditarietà e binding dinamico, casting, overloading, eccezioni. Caratteristiche avanzate: cenni su classi e metodi generici e classi nested. Esempi d'uso dell'API standard, design pattern iterator e visitor. 
Paradigma funzionale (linguaggio Objective Caml): funzioni di ordine superiore e polimorfe, inferenza di tipi polimorfi, currying, funzioni su liste, tipi user-defined.

TESTI/BIBLIOGRAFIA

-Davide Ancona, Giovanni Lagorio, Elena Zucca. Linguaggi di Programmazione. Città Studi Edizioni.
-Ken Arnold, James Gosling, and David Holmes. The Java Programming Language, Fourth Edition, Prentice Hall.
-Emmanuel Chailloux, Pascal Manoury, and Bruno Pagano. Developing Applications With Objective Caml.
-Josh Bloch. Effective Java (second edition). Prentice Hall.  (approfondimento)
-Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. (approfondimento)

DOCENTI E COMMISSIONI

Ricevimento: Su appuntamento, via email

Ricevimento: Su appuntamento. Inoltre su Aulaweb è disponibile un forum per domande e risposte di interesse generale.

Commissione d'esame

DAVIDE ANCONA (Presidente)

ELENA ZUCCA

PAOLA MAGILLO

GIOVANNI LAGORIO

LUCA FRANCESCHINI

LEZIONI

Modalità didattiche

Tradizionale

ORARI

L'orario di tutti gli insegnamenti è consultabile su EasyAcademy.

Vedi anche:

LINGUAGGI E PROGRAMMAZIONE ORIENTATA AGLI OGGETTI

ESAMI

Modalità d'esame

Esame scritto e orale più progetto finale

Modalità di accertamento

Apprendimeno dei concetti e delle nozioni alla base della teoria: esame scritto e orale.

Programmazione in piccolo object-oriented e funzionale: esame scritto.

Comprensione della specifica formale di un linguaggio di programmazione e tecniche di implementazione object-oriented di un interprete: progetto finale in Java.

ALTRE INFORMAZIONI

Prerequisiti: nozioni fondamentali di programmazione imperativa e di algoritmi e strutture dati.