Salta al contenuto principale della pagina

PROGRAMMING 2

CODE 48382
ACADEMIC YEAR 2020/2021
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 1st year of 9011 Mathematics (LM-40) GENOVA

7 credits during the 2nd 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

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

Exam Board

PAOLA MAGILLO (President)

DAVIDE ANCONA

ELENA ZUCCA (President Substitute)

LESSONS

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

LESSONS START

The class will start according to the academic calendar.

Class schedule

All class schedules are posted on the EasyAcademy portal.

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

Date Time Location Type Notes
07/01/2021 09:00 GENOVA Laboratorio
01/02/2021 09:00 GENOVA Laboratorio