Studying at the University of Verona
Here you can find information on the organisational aspects of the Programme, lecture timetables, learning activities and useful contact details for your time at the University, from enrolment to graduation.
Study Plan
The Study Plan includes all modules, teaching and learning activities that each student will need to undertake during their time at the University.
Please select your Study Plan based on your enrollment year.
1° Year
Modules | Credits | TAF | SSD |
---|
2° Year activated in the A.Y. 2024/2025
Modules | Credits | TAF | SSD |
---|
Modules | Credits | TAF | SSD |
---|
Modules | Credits | TAF | SSD |
---|
Modules | Credits | TAF | SSD |
---|
1 module among the following
2 courses among the following
2 courses among the following (a.a. 2023/24: Statistical methods for business intelligence not activated)
2 courses among the following
Legend | Type of training activity (TTA)
TAF (Type of Educational Activity) All courses and activities are classified into different types of educational activities, indicated by a letter.
Programming and database (2023/2024)
Teaching code
4S009064
Credits
12
Language
English
Scientific Disciplinary Sector (SSD)
INF/01 - INFORMATICS
Courses Single
Authorized
The teaching is organized as follows:
Programming
Database
Credits
6
Period
Semester 2
Academic staff
Elisa Quintarelli
Learning objectives
The course is structured as follows [Programming Module] The purpose of the module is to provide skills and knowledge in programming in Python and R, giving the basic concepts of algorithm with particular reference to the use of the Python language (syntax, data structures, data import / export in Python, data visualization in Python) and its applications in data science [Database form] The course aims to provide the skills necessary for the design of data according to the requirements with reference to different application contexts and within the production process of software systems; for the management and effective and efficient use of data and for the study of a system for the management of relational databases in order to create, manage and query databases.
At the end of the course the student has to show to have acquired the following skills:
- ability to develop Python code to solve concrete examples
- ability to evaluate algorithms in terms of complexity in time and space
- knowledge of the syntax and semantics of the language used
- knowledge of the bases of: database management; architecture and functionality of a database management system; concepts of physical independence, logical independence, persistence, competition, reliability, query and updating of a database; advantages of a database management system compared to an operating system file system
- ability to conceptually design databases, e.g., conceptual models for data design; the Entity-Relationship (E-R) model; elements of the E-R model: entities, attributes, relationships, generalization hierarchies and cardinality constraints; the conceptual scheme of a database
- knowledge of the basics of the logical design of a database: data models for database management systems; the relational model; relationship definitions, integrity constraints and relationship scheme; the logical scheme of a database; rules for the translation of conceptual schemes into relationship schemes
- understanding of the mechanisms of interaction with a database: introduction to languages for the definition, modification and query of a database; relational algebra; optimization of algebra expressions; the SQL language; the selection construct (Select-From-Where), nested queries, sorting and grouping of data in SQL; the concept of sight.
Prerequisites and basic notions
Basic concepts of logic and of the notion of algorithm
Program
The course is structured in two parts:
------------------------
Programming
------------------------
1. Introduction to Software Development
- Procedural programming recap
- Jupyter Notebooks, Python
- Software product requirements analysis
2. Data analysis
- Loading structured and unstructured data
- Data manipulation with Numpy and Pandas
- Data visualization with Matplotlib
3. Scientific computing
- NumPy and overall Python open-source ecosystem
- Introduction to Sklearn
4. Object-oriented programming
- OOP fundamentals
- OOP in open-source products
- Redesign of procedural programming
5. Operationalization
- Operationalization with Notebooks
- Operationalization with Streamlit
------------------------
Database
------------------------
1. Introduction to database management systems (DBMS): architectures and functionalities of a DBMS. Physical and logical data independence. Data models. Concepts of model, schema and instance of a database. Languages for database systems. DBMS vs. file system. Information Systems and Data Science.
2. The relational theory: the model and the algebra.
3. Interacting with a database system: languages for the definition, querying and update of a database. SQL: select-from-where statement, join in SQL, the GROUP BY and ORDER BY clauses, using subqueries. Views.
4. Conceptual database design: conceptual data models. The Entity-Relationship model (ER). Elements of the ER model: entities, attributes, relationships, ISA hierarchies and cardinality constraints. Logical database design: logical data models, the relational data model. Elements of the relational data models: relations and integrity constraints. Mapping between conceptual schemas in ER model and logical schema in the relational model.
5. Decision support systems.
1. Datawarehouse systems
2. Designing Data Warehouse on integrated data (GAV and LAV approaches)
3. OLAP queries
6. Beyond the Relation Model: main differences with NO-SQL Models
Bibliography
Didactic methods
In-person classes and practical sessions
Learning assessment procedures
To pass the Programming exam, the students must:
- complete a Python project that showcases the fundamentals of Data Science taught during the first semester
- pass an oral exam which will test the knowledge of the aforementioned project and general programming skills
- [OPTIONAL] undertake a written midterm test which will grant at most 6 points
The combination of a successful project, oral exam, and midterm will be evaluated with a grade between 18 and 33.
The Database exam consists of a written test (2 hours), possibly supplemented by an oral, containing some open questions about theory concepts, an exercise about conceptual modeling (using the E-R model or DFM schema), and the logical modeling (using the relational model) of a database, and some exercises about the specification of queries in SQL on a given database.
Evaluation criteria
To pass the exam, the students must show that:
- they can write a Python program to analyze datasets and provide relevant data analysis, following the Data Science techniques investigated during the course lessons;
- they have understood the concepts related to the theory of relational databases and data warehouses and their design;
- they are able to describe the concepts in a clear and exhaustive way;
- they are able to apply the acquired knowledge to solve application scenarios described by means of questions and exercises.
The exam will be evaluated with at most 33 points (30 cum Laude).
Criteria for the composition of the final grade
The final mark will be the average of the marks obtained in the Programming and Database parts.
Exam language
Inglese