CODE 48382 ACADEMIC YEAR 2016/2017 CREDITS 7 cfu anno 2 STATISTICA MATEM. E TRATTAM. INFORMATICO DEI DATI 8766 (L-35) - 7 cfu anno 3 MATEMATICA 8760 (L-35) - 7 cfu anno 2 MATEMATICA 9011 (LM-40) - SCIENTIFIC DISCIPLINARY SECTOR INF/01 LANGUAGE Italiano TEACHING LOCATION SEMESTER 1° Semester TEACHING MATERIALS AULAWEB OVERVIEW We introduce object oriented (OO) programming, which is found today in many programming languages (C++, Python, Perl). We will see it on the Java language as an example. Java is didactically clean, free of charge for various platforms (Windows, Linux, Mac), has a complete and good documentation. An advantage of OO programming is that structuring software into modules (classes) is made easy. We will see the use of the Java library of classes for the construction of user interfaces. AIMS AND CONTENT LEARNING OUTCOMES Introduction to object oriented programming, to implementation of data types, to graphical user interfaces. We will use the Java programming language as an example. LEARNING OUTCOMES (FURTHER INFO) Typical concepts of the object oriented programming paradigm, and their implementation in Java (class, object, inheritance, dynamic binding, memory management, exceptions, etc.). Object oriented philosophy in the implementation of algorithms. Classes as modules which implement a data type (values and operations), with examples. An experience in the development of more complex programs by using (library) classes as building blocks: user interfaces in Java. TEACHING METHODS Coordinated lessons in classroom and in laboratory (with exercises). Each week has three lessons of two hour each. In the typical week, one lesson is in classroom, one lesson in laboratory, and one is either in classroom or in laboratory depending on the flow of teaching material. SYLLABUS/CONTENT Object oriented programming paradigm and Java language. Classes and objects. Instance and class fields and methods. Various notions of object equaliy and copy. Constructors. Clientship. Inheritance, overriding. Dynamic binding. Abstract classes and interfaces. Exceptions and their management. Programs with graphical interface. Making graphical interfaces in Java. RECOMMENDED READING/BIBLIOGRAPHY Course notes. On-line manual and tutorials for Java. TEACHERS AND EXAM BOARD PAOLA MAGILLO 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 PAOLA MAGILLO LESSONS LESSONS START September 26, 2016 Class schedule PROGRAMMING 2 EXAMS EXAM DESCRIPTION The exam consists of a pratical part in laboratory and of an oral part. As a rule, the two parts are in the morning and afternoon of the same day and they are considered as a whole. For details, see "Assessment methods". ASSESSMENT METHODS The laboratory part of the exam will ask to modify a "case study" program presented during the year. At the end of the lessons, some examples of laboratory exams will be given, with their solutions. In the laboratory exam, the student can bring with him/her notes, photocopies, books, and has access to Java on-line documentation. The oral exam will ask questions about the theoretical concepts of object oriented programming and its implementation in Java. Typically, this will also involve examples (with writing of Java code) taken from the material seen in lessons and exercises during the year. Exam schedule Data appello Orario Luogo Degree type Note 01/06/2017 09:00 GENOVA Laboratorio 30/06/2017 09:00 GENOVA Laboratorio 24/07/2017 09:15 GENOVA Laboratorio 04/09/2017 09:00 GENOVA Laboratorio FURTHER INFORMATION Required notions: Programmazione 1