PROGRAMMING LANGUAGES AND OBJECT-ORIENTED PROGRAMMING

PROGRAMMING LANGUAGES AND OBJECT-ORIENTED PROGRAMMING

_
iten
Code
61799
ACADEMIC YEAR
2016/2017
CREDITS
12 credits during the 2nd year of 8759 Computer Science (L-31) GENOVA
SCIENTIFIC DISCIPLINARY SECTOR
INF/01
LANGUAGE
Italiano
TEACHING LOCATION
GENOVA (Computer Science)
semester
Annual
Teaching materials

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

Ricevimento: Appointment by email  

Ricevimento: On request.

Exam Board

DAVIDE ANCONA (President)

ELENA ZUCCA

PAOLA MAGILLO

GIOVANNI LAGORIO

LUCA FRANCESCHINI

LESSONS

Teaching methods

Standard

LESSONS START

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

ORARI

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

Vedi anche:

PROGRAMMING LANGUAGES AND OBJECT-ORIENTED PROGRAMMING

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.