CODE 90546 ACADEMIC YEAR 2017/2018 CREDITS 6 cfu anno 2 INFORMATICA 9014 (LM-18) - SCIENTIFIC DISCIPLINARY SECTOR INF/01 LANGUAGE English TEACHING LOCATION SEMESTER 1° Semester TEACHING MATERIALS AULAWEB OVERVIEW Students will be provided with a deeper and more critical knowledge of programming languages, through the learning of theoretical foundations and the comparison of different paradigms. AIMS AND CONTENT TEACHING METHODS Traditional SYLLABUS/CONTENT (tentative) Foundations: small-step semantics, type systems, soundness Functional paradigm: lambda calculus, call-by-value and call-by-name, simply-typed lambda-calculus, polymorphism, Hindley-Milner inference. Functional programming in Haskell, lazy evaluation, type classes. Effects: extensions of lambda-calculus with imperative features and exceptions, Haskell monads Object-oriented paradigm: subtyping, Featherweight Java Logic paradigm: Prolog syntax, model-theoretic semantics, SLD resolution. TEACHERS AND EXAM BOARD ELENA ZUCCA Ricevimento: On request. In addition, on aulaweb there will be a discussion forum for questions and answer of general interest for all students. Exam Board ELENA ZUCCA (President) DAVIDE ANCONA FRANCESCO DAGNINO LUCA FRANCESCHINI GIOVANNI LAGORIO LESSONS Class schedule PRINCIPLES AND PARADIGMS OF PROGRAMMING LANGUAGES EXAMS EXAM DESCRIPTION The exam will consist of an oral test and possibly the development of a small project. Exam schedule Data appello Orario Luogo Degree type Note 16/02/2018 09:00 GENOVA Esame su appuntamento 27/07/2018 09:00 GENOVA Esame su appuntamento 21/09/2018 09:00 GENOVA Esame su appuntamento 28/02/2019 09:00 GENOVA Esame su appuntamento