B3095 - Big Data, Data Mining and Data Analytics Workshop Classes - Cesena Campus

Academic Year 2026/2027

  • Docente: Valeria Bo
  • Credits: 6
  • Language: Italian
  • Moduli: Valeria Bo (Modulo 1A) Sofia Tortolini (Modulo 1B) Stefano Castagnoli (Modulo 2)
  • Teaching Mode: In-person learning (entirely or partially) (Modulo 1A); In-person learning (entirely or partially) (Modulo 1B); In-person learning (entirely or partially) (Modulo 2)
  • Campus: Cesena
  • Corso: First cycle degree programme (L) in Computer Systems Technologies (cod. 6007)

Learning outcomes

By the end of the course, the student will have acquired advanced skills and practical capabilities related to relational and non-relational databases, as well as the ability to build applications centered around DBMS usage. They will understand the application domains in which to use Big Data technologies and the associated challenges; understand the hardware and software architectures proposed for managing them; know storage techniques and use the programming languages and paradigms adopted in these types of systems; and understand design methodologies for various types of applications in the Big Data domain. They will possess hands-on skills in using different technologies; know key data mining and text mining techniques; understand project management and development methodologies; and develop practical skills in generating, analyzing, and interpreting results through hands-on exercises using commercial and/or open-source tools.

Course contents

The course introduces the fundamentals of Big Data and data analysis. It starts with the basics of data manipulation and exploration, including statistics and visualization. Next, it covers classical machine learning to build predictive models on tabular data.

The second part explores modern architectures such as the lakehouse and advanced techniques. Unstructured data (text, images) is addressed using embeddings and vector search, leading up to building semantic search (RAG) systems. The course concludes with a hands-on project that integrates the acquired skills.

Readings/Bibliography

Course materials provided by the teacher.

Teaching methods

In-person lectures and computer lab sessions. The foundational theoretical concepts are presented during the in-person lectures. Numerous practical exercises are conducted in the classroom in preparation for the guided lab exercises that students will subsequently complete under the supervision of the instructor.

Given the type of activities and teaching methods adopted, attending this learning activity requires all students to complete Modules 1 and 2 of the safety training for study and research areas in advance:

[https://corsi.unibo.it/laurea/IngegneriaScienzeInformatiche/formazione-obbligatoria-su-sicurezza-e-salute] in e-learning

Assessment methods

Exam Guide: Project and Oral Exam

The purpose of the exam is to assess the skills acquired in data analysis using Python, combining code implementation, logical rigor, and synthesis skills.

The exam consists of two mandatory parts:

  1. A data analysis project (individual)

  2. An oral exam comprising the project discussion and a practical test on any topic from the course modules

1. The Data Analysis Project

It involves conducting an end-to-end data analysis in Python on a dataset of choice (e.g., from Kaggle, open data repositories, or personal data).

Minimum Code Requirements (in the Jupyter Notebook .ipynb )

The analysis must strictly include the following 4 phases:

  1. Data Ingestion / Loading: Loading the dataset (e.g., .csv, .parquet format).

  2. Data Cleaning: Cleaning the data (handling missing values, duplicates, outliers, and properly formatting data types).

  3. Exploratory Data Analysis (EDA): Generating clear, properly annotated charts (using libraries such as Matplotlib, Seaborn, Plotly, etc.) to illustrate key trends.

  4. Statistical or ML Model: Applying at least one model covered in class (e.g., regression, classification, clustering) using Scikit-learn or Statsmodels.

⚠️ Privacy Note: If using corporate or real-world data, you must ensure it is not sensitive or covered by Non-Disclosure Agreements (NDAs). The project's GitHub repository may be public.

 

Submission Requirements

Submission requires creating a GitHub repository containing:

  • The dataset used (or instructions on how to download it in the README if the file size is too large – see section below).

  • The Jupyter Notebook (.ipynb ) with the complete code and explanatory comments.

  • A presentation README explaining the following steps:

    • Summary of the project and its objectives;

    • Instructions on how to download the project and/or the dataset;

    • The virtual environment configuration file (requirements.txt or uv file).

 

Deadlines and Submission

The link to the GitHub repository must be sent via email to:
valeria.bo@unibo.it [mailto:valeria.bo@unibo.it]

at least 7 days in advance of the exam date.

Example: If the exam session is scheduled for Tuesday, February 23, submission must be completed by Monday, February 15 at 11:59 PM.

 

2. The Oral Exam (30 minutes)

The oral exam is divided into two parts:

  1. Project Discussion: Presentation of the analysis based on the code, with in-depth questions regarding methodological choices and results obtained.

  2. Programming Exercises (Open-Book): Guided resolution of short Python programming tasks.

    • No memorization: Memorizing library syntax or commands is not required. Consulting official documentation or searching online during the test is permitted.

    • Evaluation focus: Assessment will focus on logical reasoning and the ability to structure a solution to the given problem.

 

Evaluation Criteria

The project will be assessed based on the following criteria:

  • Execution: The notebook must be fully functional from start to finish. It is the students' responsibility to ensure that every cell runs properly and does NOT return errors. Warnings are acceptable.

  • Originality: Topic choice and clarity in defining the analysis objectives.

  • Code Quality: Clean, correct, efficient, and well-commented Python code.

  • Visualizations: Clear, accurate, and easily interpretable plots.

  • Conclusions: Ability to interpret results and formulate relevant insights on the project.

 

Accessibility

Students with specific learning disorders (SLD/DSA) or those requiring accessibility accommodations must follow this procedure to request adjustments during exam sessions:

  • Send an email request to the course instructor: valeria.bo@unibo.it [mailto:valeria.bo@unibo.it]

  • The request must be sent at least 10 days prior to the exam date.

  • It is mandatory to CC the "Services for Students with Disabilities" at disabilita@unibo.it [mailto:disabilita@unibo.it] .

  • Clearly list in the email body the specific accommodations already approved and granted by the Service.

Teaching tools

Lectures: Projection of slide decks available on the web, along with practical demonstrations of the concepts, algorithms, techniques, and tools discussed during class.

Practical demonstrations utilize Python and SQL scripts and code files provided in advance on the course web page. This allows students to follow the demonstrations more effectively and replicate them on their own laptops during the lecture, directly checking step-by-step operations and immediately bringing any questions to the instructor-fostering maximum interaction between students and instructor during class.

Lab Activities: The instructor guides students in progressively mastering the tools and problem-solving strategies across all course topics.

Office hours

See the website of Valeria Bo

See the website of Sofia Tortolini

See the website of Stefano Castagnoli