Guida degli insegnamenti

Syllabus

Partially translatedTradotto parzialmente
[W002202] - PYTHON FUNDAMENTALS FOR DATA SCIENCE AND RELATIONAL DATABASESPYTHON FUNDAMENTALS FOR DATA SCIENCE AND RELATIONAL DATABASES
Emanuele STORTI  (Crediti: 6  Ore di lezioneTeaching hours: 44)
Claudia DIAMANTINI  (Crediti: 6  Ore di lezioneTeaching hours: 44)
Lingua di erogazione: ITALIANOLessons taught in: ITALIAN
Laurea Magistrale - [EM11] DATA SCIENCE PER L'ECONOMIA E LE IMPRESE Master Degree (2 years) - [EM11] DATA SCIENCE FOR ECONOMICS AND BUSINESS
Dipartimento: [040002] Dipartimento Scienze Economiche e SocialiDepartment: [040002] Dipartimento Scienze Economiche e Sociali
Anno di corsoDegree programme year : 1 - Primo Semestre
Anno offertaAcademic year: 2023-2024
Anno regolamentoAnno regolamento: 2023-2024
Obbligatorio
Crediti: 12
Ore di lezioneTeaching hours: 88
TipologiaType: C - Affine/Integrativa
Settore disciplinareAcademic discipline: ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

LINGUA INSEGNAMENTO LANGUAGE

ITALIANO

Italian


MODALITÀ DI SVOLGIMENTO DEL CORSO DEVELOPMENT OF THE COURSE

Il programma didattico del corso comprende una parte teorica, che verrà svolta mediante lezioni frontali, ed una parte applicativa, che verrà svolta mediante esercitazioni in aula e laboratori.

The program of the course includes a theoretical part, which will be carried out through classroom lessons, and a practical part, which will be carried out through classroom exercises and workshops.


RISULTATI DI APPRENDIMENTO ATTESI LEARNING OUTCOMES
Conoscenze e comprensione.

L'insegnamento mira a fornire le basi concettuali dell'informatica, della programmazione strutturata e dei database relazionali:
1) Architettura di alto livello e funzionamento di un calcolatore elettronico, concetti di base della codifica delle informazioni e principali costrutti logici dei linguaggi di programmazione imperativa. Verrà studiato il linguaggio di programmazione Python: espressioni, istruzioni di controllo, funzioni, strutture dati primitive e derivate, gestione dei file.

2) Concetti, metodi e linguaggi per la gestione di dati in ambienti centralizzati: verranno introdotti il modello relazionale ed i sistemi di gestione dei dati basati su tale modello, si analizzeranno le metodologie per la progettazione di basi di dati relazionali.


Capacità di applicare conoscenze e comprensione.

Gli studenti e le studentesse dovranno sviluppare la capacità di:
1) Risolvere problemi ed implementare algoritmi di media complessità utilizzando il linguaggio Python
2) Analizzare la correttezza di un programma Python ed essere in grado compilare, eseguire ed effetture il debug di programmi Python
3) progettare, creare, popolare, ed interrogare basi di dati relazionali
4) acquisire dimestichezza con la terminologia di dominio


Competenze trasversali.

Le competenze acquisite in questo corso mirano a fornire a studenti e studentesse gli strumenti necessari per pianificare i passi da svolgere, e quindi l'algoritmo, per la risoluzione di una classe di problemi e per realizzarlo nel linguaggio di programmazione Python. Ciò contribuisce a sviluppare la capacità di “problem solving” di studenti e studentesse. Le attività di laboratorio permettono di sviluppare la capacità di lavorare in gruppo e di confrontarsi con scenari applicativi stimolanti.
Applicazioni pratiche, confronti e discussioni, che avranno luogo durante il corso, consentiranno a studenti e studentesse di migliorare la loro autonomia, e le loro competenze sotto il profilo della comunicazione, dell'apprendimento e dell'approccio critico.


Knowledge and Understanding.

The course aims to provide the conceptual foundations of computer science, structured programming and relational databases:
1) High-level architecture and functioning of an electronic computer, basic concepts of information encoding and
the main logical constructs of imperative programming languages. The Python programming language: expressions, control statements, functions, primitive and derived data structures, file management

2) Concepts, methods and languages for the management of data in centralized environments. The relational model and data base management systems based on this model will be introduced, as well as the methodologies for the design of relational databases.


Capacity to apply Knowledge and Understanding.

The student will have to develop the ability to:
1) Solve problems and implement medium complexity algorithms using the Python language
2) Analyze the correctness of a Python program and be able to compile, run and debug Python programs
3) Design, create, populate, and query relational databases
4) Become familiar with domain terminology


Transversal Skills.

The skills acquired in this course aim to provide the student with the necessary tools to plan the steps to be carried out, and therefore the algorithm, for solving a class of problems and to implement it in the Python programming language. This helps to develop the student's problem solving ability. The laboratory activities allow to develop the ability to work in a group and to deal with challenging application scenarios.
Practical applications, comparisons and discussions, which will take place during the course, will allow students to improve their autonomy, and their skills in terms of communication, learning and critical approach.



PROGRAMMA PROGRAM

PYTHON FUNDAMENTALS:
- Cenni di architettura dei calcolatori
- Rappresentazione e codifica dell'informazione
- Introduzione alla programmazione strutturata: algoritmo, variabili, linguaggi
- Il linguaggio Python
- Tipi di dato
- Istruzioni: strutture condizionali, cicli
- Funzioni
- Librerie
- Liste, dizionari, tuple ed insiemi
- Gestione dei file
- Testing e debugging

RELATIONAL DATABASES:
- Introduzione alle basi di dati e sistemi di gestione di basi di dati: gestione dei dati in un sistema informatico, motivazioni per l’introduzione di sistemi per la gestione dei dati, schemi e istanze, livelli di astrazione, astrazione e indipendenza. Linguaggi per la gestione di basi di dati. Utenti di una base di dati.

- Modello relazionale: definizione di relazione, relazioni e tabelle, gestione di valori nulli, vincoli di integrità.

- Progettazione di basi di dati: metodologia generale. Progettazione concettuale e modello Entity/Relationship. Progettazione logica.

- Linguaggio SQL, il DBMS MySQL

PYTHON FUNDAMENTALS:
- Elements of computer architecture
- Representation and encoding of information
- Introduction to structured programming: algorithm, variables, languages
- The Python language
- Data types
- Instructions: conditional structures, loops
- Functions
- Libraries
- Lists, dictionaries, tuples, sets
- File and I/O
- Testing and debugging

RELATIONAL DATABASES:
- Introduction to databases and database management systems: data management in a computer system, reasons for introducing data base management systems, schemes and instances, levels of abstraction and independence. Languages for database management. Users of a database.

- Relational model: definition of relation, relations and tables, management of null values, integrity constraints.

- Database design: general methodology. Conceptual design and Entity/Relationship model. Logical design.

- SQL language, the MySQL DBMS


MODALITÀ DI SVOLGIMENTO DELL'ESAME DEVELOPMENT OF THE EXAMINATION
Modalità di valutazione dell'apprendimento.

La valutazione del livello di apprendimento degli studenti consiste in due prove:
- una prova scritta, consistente in domande ed esercizi relativi alla prima parte del corso;
- una prova orale, consistente in domande di approfondimento sugli argomenti trattati nel corso.
La prova scritta è propedeutica alla prova orale, per accedere alla quale è necessario ottenere almeno la sufficienza nella prova scritta.

Per gli di studenti con disabilità/invalidità o disturbo specifico di apprendimento (DSA),
che abbiano fatto debita richiesta di supporto per affrontare lo specifico esame di profitto
all’Info Point Disabilità/DSA dell’Ateneo. Le modalità di esame saranno adattate alla
luce di quanto previsto dalle linee guida di Ateneo
(https://www.univpm.it/Entra/Accoglienza_diversamente_abili )


Criteri di valutazione dell'apprendimento.

Per superare con esito positivo la valutazione dell'apprendimento, lo studente o la studentessa deve dimostrare, attraverso le prove, di aver ben compreso i concetti esposti nel corso, possedendo quindi una conoscenza di base delle tecnologie trattate nel corso, nonché di avere sviluppato una adeguata familiarità con il linguaggio di programmazione Python.
Lo studente o la studentessa deve anche dimostrare di aver ben compreso i concetti esposti nel corso sulle tecnologie, modelli e linguaggi per la gestione di dati, espressi con linguaggio tecnico corretto. La valutazione massima è attribuita agli studenti e alle studentesse che dimostrano una conoscenza approfondita ed esaustiva dei contenuti dell’insegnamento, con ottime capacità di analisi, rigore metodologico e appropriatezza del vocabolario tecnico.


Criteri di misurazione dell'apprendimento.

Ad ognuna delle prove prima indicate è assegnato un punteggio compreso tra zero e trenta. Il voto complessivo, in trentesimi, è dato dalla media dei voti ottenuti nelle due prove, con arrotondamento all'intero per eccesso.


Criteri di attribuzione del voto finale.

Perché l'esito complessivo della valutazione sia positivo, lo studente o la studentesse deve conseguire almeno la sufficienza, pari a diciotto punti, in ognuna delle prove prima descritte.
La valutazione massima è raggiunta dimostrando una conoscenza approfondita dei contenuti del corso nell'ambito delle prove.
La lode è riservata agli studenti e alle studentesse che, avendo svolto tutte le prove in modo corretto e completo, abbiano dimostrato una particolare padronanza degli argomenti del corso.


Learning Evaluation Methods.

The assessment consists of two parts:
- a written test, consisting of questions and exercises o topics covered in the first part of the course;
- an oral exam, consisting of questions and exercises on the topic covered in the course.
The written test is in preparation for the oral examination, for which the student must have passed the written test.

For students with disabilities or Specific Learning Disorders (SLD) who have contacted the University Disability/SLD Info Point to request support for the specific curricular exam, please note that the way the exam is taken can be adapted in accordance with the University Guidelines (https://www.univpm.it/Entra/Accoglienza_diversamente_abili).


Learning Evaluation Criteria.

To successfully pass the learning assessment, the student must demonstrate, through tests, that he / she has well understood the concepts presented in the course, thus possessing a basic knowledge of the technologies covered in the course, as well as having developed an adequate familiarity with the Python programming language.
The student must also demonstrate a good understanding of the concepts presented in the course on technologies, models and languages for data management, expressed in proper technical language. The maximum score is achieved by demonstrating a thorough and exhaustive understanding of the course topics, with excellent analytical skills, methodological exactness and appropriateness of the technical vocabulary.


Learning Measurement Criteria.

For each of the tests specified before, a score between zero and thirty is assigned. The overall grade is the average of the marks obtained in the two tests.


Final Mark Allocation Criteria.

In order for the overall result of the assessment to be positive, the student must obtain at least 18 points out of 30 in each of the tests described above.
The "lode" is given to the students who, having correctly performed all the tests, have demonstrated a particular mastery of the course topics.



TESTI CONSIGLIATI RECOMMENDED READING

- Paul J. Deitel, Harvey M. Deitel. “Introduzione a Python. Per
l'informatica e la data science”, Pearson (2021)
- C. Horstman, R. D. Necaise. "Python. Introduzione alla programmazione", Apogeo education, Maggioli editore. ISBN: 978-88-916-6397-9

- P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, “Basi di dati” 5° ed., McGraw-Hill, Italia

- Altro materiale reso disponibile sul sito del corso raggiungibile al link https://learn.univpm.it

- Paul J. Deitel, Harvey M. Deitel. “Introduzione a Python. Per
l'informatica e la data science”, Pearson (2021)
- C. Horstman, R. D. Necaise. "Python. Introduzione alla programmazione", Apogeo education, Maggioli editore. ISBN: 978-88-916-6397-9

- P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, “Basi di dati” 5° ed., McGraw-Hill, Italia

- Further material available on the course website at https://learn.univpm.it.


Scheda insegnamento erogato nell’A.A. 2023-2024
Le informazioni contenute nella presente scheda assumono carattere definitivo solo a partire dall'A.A. di effettiva erogazione dell'insegnamento.
Academic year 2023-2024

 


Università Politecnica delle Marche
P.zza Roma 22, 60121 Ancona
Tel (+39) 071.220.1, Fax (+39) 071.220.2324
P.I. 00382520427