CODE 48382 ACADEMIC YEAR 2017/2018 CREDITS 7 cfu anno 2 MATEMATICA 9011 (LM-40) - 7 cfu anno 2 STATISTICA MATEM. E TRATTAM. INFORMATICO DEI DATI 8766 (L-35) - 7 cfu anno 3 MATEMATICA 8760 (L-35) - SCIENTIFIC DISCIPLINARY SECTOR INF/01 LANGUAGE Italian TEACHING LOCATION SEMESTER 1° Semester TEACHING MATERIALS AULAWEB OVERVIEW We introduce the data type, which is the theoretical counterpart of a software module, and consists of values with their operations. We introduce data structures and algorithms to implement a data type (the implementation is not unique). We teach how to evaluate the space and time complexity of an implementation. We introduce object oriented (OO) programming and the Java language. We use Java to implement some classical data types (stack, queue, dictionary) and algorithms for the sorting problem. AIMS AND CONTENT LEARNING OUTCOMES Introduction to: data types; algorithms, data structures and complexity evaluation; object oriented programming with the java language as an example; implementation of data types in java. AIMS AND LEARNING OUTCOMES Ability to implement a data type by choosing suitable data structures and algorithms, based a complexity analysis of the various possible implementations. Knowledge of classical data types (stack, queue, dictionary) and their implementations. Knowledge of classical sorting algorithms and their properties. Knowledge of object-oriented programming and of the Java language. 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 Abstract data type. From operations to algorithms; from types to data structures. Space and time complexity. Data types: stack, queue, dictionary, and various implementations for them. Sorting algorithms. Object-oriented programming paradigm and Java language. Classes and objects, equality and copy of objects, constructors, clientship, inheritance, overriding, exceptions. Implementation of data types in Java. RECOMMENDED READING/BIBLIOGRAPHY Course notes. On-line manual and tutorials for Java. Book: M.T.Goodrich, R.Tamassia, Data structures and algorithms in Java, John Wiley & Sons. 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 PAOLA MAGILLO (President) ELENA ZUCCA (President) DAVIDE ANCONA LESSONS LESSONS START The class will start according to the academic calendar. 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 write, or to modify, Java code to implement variants of algorithms and data structures presented during the year. The oral exam will ask questions about the teaching program, and may involve writing examples in code or pseudocode. It may involve a discussion of the laboratory part. At the end of the lessons, we will provide a sample exam with solutions. Exam schedule Data appello Orario Luogo Degree type Note 11/01/2018 15:00 GENOVA Laboratorio 01/02/2018 15:00 GENOVA Laboratorio 05/06/2018 15:00 GENOVA Laboratorio 23/07/2018 15:00 GENOVA Laboratorio 17/09/2018 15:00 GENOVA Laboratorio FURTHER INFORMATION Required notions: Programmazione 1