CODICE 61799 ANNO ACCADEMICO 2016/2017 CFU 12 cfu anno 2 INFORMATICA 8759 (L-31) - SETTORE SCIENTIFICO DISCIPLINARE INF/01 LINGUA Italiano SEDE PERIODO Annuale MATERIALE DIDATTICO AULAWEB 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. MODALITA' 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 DAVIDE ANCONA Ricevimento: Su appuntamento, via email ELENA ZUCCA Ricevimento: Su appuntamento. Inoltre su Aulaweb è disponibile un forum per domande e risposte di interesse generale. Commissione d'esame DAVIDE ANCONA (Presidente) LUCA FRANCESCHINI GIOVANNI LAGORIO PAOLA MAGILLO ELENA ZUCCA LEZIONI Orari delle lezioni LINGUAGGI E PROGRAMMAZIONE ORIENTATA AGLI OGGETTI ESAMI MODALITA' D'ESAME Esame scritto e orale più progetto finale MODALITA' 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. Calendario appelli Data appello Orario Luogo Tipologia Note 05/06/2017 14:30 GENOVA Scritto 21/06/2017 09:00 GENOVA Scritto 12/07/2017 09:00 GENOVA Scritto 11/09/2017 14:30 GENOVA Scritto ALTRE INFORMAZIONI Prerequisiti: nozioni fondamentali di programmazione imperativa e di algoritmi e strutture dati.