CODE 48382 ACADEMIC YEAR 2020/2021 CREDITS 7 cfu anno 2 STATISTICA MATEM. E TRATTAM. INFORMATICO DEI DATI 8766 (L-35) - GENOVA 7 cfu anno 3 MATEMATICA 8760 (L-35) - GENOVA 7 cfu anno 1 MATEMATICA 9011 (LM-40) - GENOVA 7 cfu anno 2 MATEMATICA 9011 (LM-40) - GENOVA SCIENTIFIC DISCIPLINARY SECTOR INF/01 LANGUAGE Italian TEACHING LOCATION GENOVA SEMESTER 1° Semester TEACHING MATERIALS AULAWEB OVERVIEW We introduce: data type (values + operations), implementation, techniques for evaluating the complexity of an implementation; basic concepts of object oriented programming; Java and Python languages with practical exercises. AIMS AND CONTENT LEARNING OUTCOMES Introduction to: data types; algorithms, data structures and complexity evaluation; object-oriented programming; Java language; Python language; programming exercises in the two languages. AIMS AND LEARNING OUTCOMES We introduce the concept of data type (consisting of stored values and operations acting on them); we introduce data structures which describe how to organize stored data in memory and algorithms which describe the processed used to perform the operations; we introduce examples of data types (stack, queue, dictionary) and classic algorithms. In parallel, we introduce object oriented programming and, as examples, the Java and Python languages. In this way, the student will see the application in aboratory of what proposed in the lessons. After attending, the student will be able to implement a data type by choosing suitable data structures and algorithms, based a complexity analysis of the various possible implementations. Moreover, he/she will know object-oriented programming and how to program in the Java and Python languages. PREREQUISITES Knowledge of the basic concepts of an imperative programming language: instruction, variable, cycle, function, argument, result, typing of variables. Knowledge of the basic concepts of mathematics and logics: operation, argument, result, domain, codomain, logical operators. TEACHING METHODS Coordinated lessons in classroom and in laboratory (with exercises). About 2/3 of the teaching time will be in laboratory. In the COVID-19 emergency, both lessons and laboratories will take place on the internet platform Teams. Support will be given to the students for installing on their personal computers the Java and Python languages (which can be freely downloaded for various operating systems). There will be assignments (in Java and in Python) that will be part of the exam (see exam and assessment methods). SYLLABUS/CONTENT Abstract data type. From operations to algorithms; from types to data structures. Introduction to space and time complexity. Data types: stack, queue, dictionary. Some algorithms for classic problems. Object-oriented programming paradigm and Java language. Classes and objects, equality and copy of objects, constructors, clientship, inheritance, overriding, exceptions. The Python language. Interactive environment, dynamic typing, container types (list, tuple, dictionary) and operations, functions, classes, inheritance, exceptions. Practical exercises in the two languages. 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. Exam Board PAOLA MAGILLO (President) DAVIDE ANCONA ELENA ZUCCA (President Substitute) LESSONS LESSONS START The class will start according to the academic calendar. Class schedule The timetable for this course is available here: Portale EasyAcademy EXAMS EXAM DESCRIPTION The exam consists of: assignments to be developed during the teaching period, and an oral part. The assignments remain valid for the entire academic year. ASSESSMENT METHODS During the year, some assignments will be given, which consist in implementing data structures and algorithms explained in the lessons. The assignments require to deliver the produced code and written documentation. The correctness and the quality of both code and documentation will be evaluated. 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 delivered assigments. The student will be required to show understanding ofthe concepts and ability to use the techniques seen in the lessons. Exam schedule Data appello Orario Luogo Degree type Note 07/01/2021 09:00 GENOVA Laboratorio 01/02/2021 09:00 GENOVA Laboratorio