Salta al contenuto principale della pagina
##
PROGRAMMING 2

## OVERVIEW

## AIMS AND CONTENT

### LEARNING OUTCOMES

### AIMS AND LEARNING OUTCOMES

### PREREQUISITES

### TEACHING METHODS

### SYLLABUS/CONTENT

### RECOMMENDED READING/BIBLIOGRAPHY

## TEACHERS AND EXAM BOARD

### Exam Board

## LESSONS

### TEACHING METHODS

### LESSONS START

### Class schedule

## EXAMS

### EXAM DESCRIPTION

### ASSESSMENT METHODS

### Exam schedule

CODE | 48382 |
---|---|

ACADEMIC YEAR | 2019/2020 |

CREDITS |
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 |

SCIENTIFIC DISCIPLINARY SECTOR | INF/01 |

LANGUAGE | Italian |

TEACHING LOCATION | GENOVA (Mathematical Statistics and Data Management) |

SEMESTER | 1° Semester |

TEACHING MATERIALS | AULAWEB |

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.

Introduction to: data types; algorithms, data structures and complexity evaluation; object-oriented programming; Java language; Python language; programming exercises in the two languages.

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

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.

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).

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.

**Office hours:** On request. In addition, on aulaweb there will be a discussion forum for questions and answer of general interest for all students.

ELENA ZUCCA (President)

PAOLA MAGILLO (President)

DAVIDE ANCONA

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).

The class will start according to the academic calendar.

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.

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.

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 |