CODE 80410 ACADEMIC YEAR 2016/2017 CREDITS 6 cfu anno 2 INFORMATICA 9014 (LM-18) - SCIENTIFIC DISCIPLINARY SECTOR INF/01 LANGUAGE Italiano (Inglese a richiesta) TEACHING LOCATION SEMESTER 1° Semester TEACHING MATERIALS AULAWEB OVERVIEW Generic and meta-programming in Java, C# e C++. AIMS AND CONTENT LEARNING OUTCOMES Design and implementation through different computational paradigms. Principles and techniques for designing and implementing generic and highly reusable software libraries in mainstream object-oriented languages. TEACHING METHODS Standard SYLLABUS/CONTENT Java generic classes and methods, generic types and wildcards, type erasure and reflection, lambda expressions, functional interfaces, and streams. Generic design patterns. C# generic classes and methods, reflections. Comparison with Java generics. Introduction to C++ and to the Standard Template Library. RECOMMENDED READING/BIBLIOGRAPHY Java Generics and Collections, Maurice Naftalin and Philip Wadler, O’Reilly, 2009 C# Language Specification Version 4.0 Vandevoorde, Josuttis: C++ Templates: The Complete Guide TEACHERS AND EXAM BOARD DAVIDE ANCONA Ricevimento: Appointment by email Exam Board DAVIDE ANCONA (President) ANDREA CORRADI GIOVANNI LAGORIO ELENA ZUCCA LESSONS Class schedule PROGRAMMING PARADIGMS EXAMS EXAM DESCRIPTION Oral test and software project ASSESSMENT METHODS Basic theoretical aspects: oral test. Ability in the design and implementation of generic libraries: software project. FURTHER INFORMATION Prerequisites: object-oriented paradigm, programming skills in Java or C#