CODE 61799 ACADEMIC YEAR 2016/2017 CREDITS 12 cfu anno 2 INFORMATICA 8759 (L-31) - 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 DAVIDE ANCONA Ricevimento: Appointment by email ELENA ZUCCA Ricevimento: On request. 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. Class schedule 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. 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