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

OVERVIEW

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

Object-oriented programming: Java.

Functional programming: OCaml.

AIMS AND CONTENT

LEARNING OUTCOMES

  • the course requires a good knowledge of imperative programming, and provides foundational notions on high-level programming and skills on theory and practice of programming paradigms, with emphasis on the functional and object-oriented ones.
  • students will extend their skills acquired in the introductory courses on programming in the small, and
    learn to develop applications starting from informal requirements and use integrated development environments

     

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: introduction to the use of generic classes and methods, outline on nested classes and lambda-expressions. 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
25/01/2018 09:00 GENOVA Scritto
04/06/2018 09:00 GENOVA Scritto
20/06/2018 09:00 GENOVA Scritto
11/07/2018 09:00 GENOVA Scritto
10/09/2018 14:00 GENOVA Scritto
24/01/2019 09:00 GENOVA Scritto