CODE 90546 ACADEMIC YEAR 2022/2023 CREDITS 6 cfu anno 1 COMPUTER SCIENCE 10852 (LM-18) - GENOVA SCIENTIFIC DISCIPLINARY SECTOR INF/01 LANGUAGE English TEACHING LOCATION GENOVA SEMESTER 2° 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 LEARNING OUTCOMES Gaining a deeper and more critical knowledge of programming languages, through the learning of theoretical foundations and the comparison of different paradigms. TEACHING METHODS Traditional SYLLABUS/CONTENT 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 Object-oriented paradigm: subtyping, Featherweight Java Logic paradigm: Prolog syntax, model-theoretic semantics, SLD resolution. Coinduction and coinductive logic programming RECOMMENDED READING/BIBLIOGRAPHY Course notes Benjamin Pierce, Types and Programming Lannguages 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) FRANCESCO DAGNINO DAVIDE ANCONA (Substitute) LESSONS Class schedule L'orario di tutti gli insegnamenti è consultabile all'indirizzo EasyAcademy. EXAMS EXAM DESCRIPTION The exam will consist of an oral test and possibly the development of a small project. Exam schedule Data Ora Luogo Degree type Note 06/06/2023 09:00 GENOVA Esame su appuntamento 06/09/2023 09:00 GENOVA Esame su appuntamento 16/02/2024 09:00 GENOVA Esame su appuntamento