Salta al contenuto principale della pagina

## PROGRAMMING 2

CODE 48382 2019/2020 7 credits during the 2nd year of 8766 Mathematical Statistics and Data Management (L-35) GENOVA 7 credits during the 3nd year of 8760 Mathematics (L-35) GENOVA 7 credits during the 2nd year of 9011 Mathematics (LM-40) GENOVA 7 credits during the 1st year of 9011 Mathematics (LM-40) GENOVA INF/01 Italian GENOVA (Mathematical Statistics and Data Management) 1° Semester AULAWEB

## OVERVIEW

We introduce:
data types (values + operations), 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 laboratory of what proposed in the lessons.

After attending, the student will be aboe 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). Each week has three lessons of two hour each, normally one in in classroom and two in laboratory. There will be two assignments (in Java and in Python, respectively) 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.

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

### Exam Board

ELENA ZUCCA (President)

PAOLA MAGILLO (President)

DAVIDE ANCONA

## LESSONS

### TEACHING METHODS

Coordinated lessons in classroom and in laboratory (with exercises). Each week has three lessons of two hour each, normally one in in classroom and two in laboratory. There will be two assignments (in Java and in Python, respectively) that will be part of the exam (see exam and assessment methods).

### LESSONS START

The class will start according to the academic calendar.

PROGRAMMING 2

## EXAMS

### EXAM DESCRIPTION

The exam consists of: two assignemnts (to be developed in groups of two students) which are due by the end of the teaching period, and an oral part. The assignments remain valid for the entire academic year.

### ASSESSMENT METHODS

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 of the concepts and ability to use the techniques seen in the lessons.

### Exam schedule

Date Time Location Type Notes
09/01/2020 09:00 GENOVA Laboratorio
03/02/2020 09:00 GENOVA Laboratorio
03/06/2020 09:00 GENOVA Laboratorio
01/07/2020 09:00 GENOVA Laboratorio
11/09/2020 09:00 GENOVA Laboratorio