Skip to main content
CODE 61799
ACADEMIC YEAR 2016/2017
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR INF/01
LANGUAGE Italiano
TEACHING LOCATION
SEMESTER Annual
TEACHING MATERIALS AULAWEB

OVERVIEW

Principles of programming languages: syntax, static and dynamic semantics.

Object-oriented programming: Java.

Functional programming: OCaml.

AIMS AND CONTENT

TEACHING METHODS

Standard

SYLLABUS/CONTENT

Principles of programming languages: overview, programming paradigms; syntax, static and dynamic semantics, development of a semantics-driven interpreter.
Object-oriented paradigm (the Java programming language): objects, classes, inheritance and dynamic binding, casting, overloading, exceptions. Advanced features: outlines of generic classes and methods, and nested classes. Practical uses of the standard API, iterator and visitor design pattern. 
Functional paradigm (the OCaml programming language): higher-order and polymorphic functions, polymorphic type inference, currying, functions on lists, user-defined types.

RECOMMENDED READING/BIBLIOGRAPHY

-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.  (advanced, optional)
-Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. (advanced, optional)

TEACHERS AND EXAM BOARD

Exam Board

DAVIDE ANCONA (President)

LUCA FRANCESCHINI

GIOVANNI LAGORIO

PAOLA MAGILLO

ELENA ZUCCA

LESSONS

LESSONS START

Prerequisites: basic notions of imperative programming, and algorithms and data structures.

EXAMS

EXAM DESCRIPTION

Written and oral test. Java project.

ASSESSMENT METHODS

Mastering of basic theoretical aspects: written and oral test.

Object-oriented and functional programming in the small: written and oral test.

Comprehension of the formal specification of a programming language, and object-oriented implementation techniques for interpreters: Java project.

Exam schedule

Data appello Orario Luogo Degree type 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