Salta al contenuto principale della pagina

INFORMATIONS SYSTEMS

CODE 97163
ACADEMIC YEAR 2021/2022
CREDITS
  • 9 cfu during the 2nd year of 10716 INGEGNERIA GESTIONALE (L-9) - GENOVA
  • SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05
    LANGUAGE Italian (English on demand)
    TEACHING LOCATION
  • GENOVA
  • SEMESTER 2° Semester
    TEACHING MATERIALS AULAWEB

    OVERVIEW

    The course introduces to advanced programming in Python, including object-oriented programming, efficient use of data structures and algorithms, creation and use of exceptions and libraries for file manipulation; the course introduces also to database management by providing elements on design and implementation of relational databases.

     

    AIMS AND CONTENT

    LEARNING OUTCOMES

    The aim of the course is to introduce the student to the main concepts related to the management of large quantities of data on computers (database) and their use in applications developed to enable input, handling and management of such data. The course will provide knowledge about the main databases in use (relational and associative model) and on the related technical and practical features. The knowledge of object oriented programming in Python will be given as an instrument to interact with database and develop applications that can persist data beyond the standard predefined data structures in Python. During the course the student will leanr how to implement simple databases and interact with them through Python scripts. As for capabilities, the student will learn how to choose the best model for a specific task, and choose the best implementation of data structures to interact with a specific database.

    AIMS AND LEARNING OUTCOMES

    The aim of the course for the Python programming language part, is to introduce the student to the following topics:

    • object-oriented design and programming;
    • using pre-defined and user-defined data structures efficiently;
    • using libraries for file manipulation;
    • creazione e utilizzo di eccezioni per la gestione degli errori;
    • introduction to the libraries numpy, matplotlib and pandas to analyze and present data.

    Regarding databases, the aim of the course is to introduce the student to the following topics:

    • introduction to databases
    • relational databases
    • SQL language to create and query relational databases
    • progettazione di basi di dati con diagrammi entità-relazione

    The main learning outcome will be the ability to combine programming skills in Python with database engineering skills in order to build applications that, starting from row data, can process them, insert them into a database to enable efficient querying and presentation of  data.

    PREREQUISITES

    The course requires basic knowledge of the Python programming language (types, expressions, conditional statements, iteration statements, function definition, predefined data structures). Even if the course starts with a quick review of these concepts, a good grasp on them is preferrable to follow the course.

     

    TEACHING METHODS

    The course is taught with standard classes and labs. Most classes will be hands-on, where the main concepts will be explained through examples and extensive interaction will take place. Some classe will be mainly based on slides. During labs students will have a chance to solve some exercises with teacher guidance. Classe and labs might be delivered online.

    SYLLABUS/CONTENT

    The course focuses on the following topics:

    • Variables, expressions, string types
    • Control structures
    • Lists: features and performances
    • Tuples and ranges: features and performances
    • Sets: features and performances
    • Dictionaries: features and performances
    • Console IO and file handling
    • Regular expressions, modules and packages
    • datatime module, mathematical and numerical modules
    • Collections and heapq module
    • Class definition and implementation
    • Inheritance and polymorfism
    • Iterators and generators
    • Errors and exceptions
    • Structured testing
    • Introduction to databases
    • Relational model
    • Using SQL as Data Definition Language
    • Design of databases
    • Entity-relationship diagrams
    • Logic design
    • Using SQL as Data Manipulation Language
    • Normalization

     

    RECOMMENDED READING/BIBLIOGRAPHY

    Tony Gaddis - Introduzione a Python - Pearson (Informatica)

    Paolo Atzeni, Stefano Ceri, Piero Fraternali - Basi di Dati - McGraw Hill

    TEACHERS AND EXAM BOARD

    Exam Board

    ARMANDO TACCHELLA (President)

    MASSIMO NARIZZANO

    DAVIDE ANGUITA (President Substitute)

    LESSONS

    Class schedule

    All class schedules are posted on the EasyAcademy portal.

    EXAMS

    EXAM DESCRIPTION

    Hands-on test (possibly online) and interview about the test (possibly online as well).

    ASSESSMENT METHODS

    Solving exercises that require loading raw data to a database; data are contained in text files; the databse shoudl be queried and results presented according to specifications.

    Exam schedule

    Date Time Location Type Notes
    20/01/2022 09:00 GENOVA Scritto
    15/02/2022 09:00 GENOVA Scritto
    08/06/2022 09:00 GENOVA Scritto
    30/06/2022 09:00 GENOVA Scritto
    25/07/2022 09:00 GENOVA Scritto
    16/09/2022 09:00 GENOVA Scritto