Skip to content

Free University of Bozen-Bolzano

Programming and Visualisation for Data Science

Semester 1 · 27500 · Master in Data Analytics for Economics and Management · 12CP · EN


Module 1 provides a comprehensive introduction to Python programming, starting with the setup of the development environment and core programming constructs. Students will explore Python’s data structures and programming primitives, progressing to object-oriented programming and the development of structured, reusable code using functions, classes, and libraries. Emphasis is placed on best practices in software development, including code documentation, testing, version control, and distribution. The module concludes with advanced Python programming techniques, preparing students to build robust and maintainable applications.

Module 2 guides students through the complete data science pipeline, from raw data acquisition to advanced analytics and visualization. Students will gain hands-on experience in data ingestion, exploration, cleaning, and feature engineering, building a strong foundation for effective data modeling. The course covers key machine learning techniques—including clustering, classification, and regression—alongside model tuning, validation, and testing. Emphasis is placed on producing insightful and reproducible visualizations using specialized Python libraries, enabling students to communicate data-driven findings with clarity and impact.

Lecturers: Antonio Liotta

Teaching Hours: M1: 40 hours M2: - 24 hours of in-person lectures - 12 hours of video lectures (counted as 24 hours to account for re-watching)
Lab Hours: 40 (20 + 20)
Mandatory Attendance: Not compulsory. Non attending students have to agree with the lecturer on the modalities of independent study at the beginning of the course.

Course Topics
Module 1 is designed to provide specific professional skills for advanced programming in Python. The students will learn how to develop a Python program, starting from designing it, and going through coding, testing and validation. They will master Python in its full object-oriented features, learning how to develop complex programs that are well structured, and make use of techniques for code re-use, pipelining, maintenance, and deployment. Module 2 is designed to acquire professional skills and knowledge useful when dealing with large-scale datasets. In particular, the students will master data collection, exploration, transformation, curation, analysis, and visualization, choosing the most appropriate technique for the data at hand. They will make insights from the data, supported by a rigorous data science pipeline, which starts with raw data, produces machine learning models, and ends with advanced visualizations. This module, addresses common pitfalls that can mislead the analysis and makes extensive use of specialized Python libraries, acquiring the best practices of reproducible, data-driven analysis and research.

Teaching format
The course adopts a blended, student-centered approach that emphasizes problem-based learning and active engagement. Selected lecture content is made available online in advance, enabling students to explore key concepts independently and at their own pace. This preparatory work allows in-person sessions to focus on applying knowledge through problem-solving, collaborative activities, and guided discussions—fostering critical thinking and deeper understanding. The teaching format combines frontal lectures, hands-on lab assignments, and project work, ensuring that students develop both theoretical knowledge and practical skills in python programming, and in data analysis, modelling, and visualization. The course is aligned with the principles of the EDUNEXT initiative (https://edunext.eu), promoted by Italian universities, which supports the integration of digital resources and active learning strategies in higher education.

Educational objectives
Knowledge and understanding: The student acquires programming knowledge especially aimed at data analysis and statistical methodologies for the implementation of models as well as the analysis of large datasets. In particular, computer knowledge is oriented towards machine learning methods, knowledge of modern data management and storage techniques, also from heterogeneous sources in terms of type and structure, including spatio-temporal data and high-dimensional data also in a cloud environment, and the implementation of algorithms for massive data. This knowledge is then complemented by the indispensable knowledge of textual data and network analysis and aspects related to the security and privacy of such data. Applying knowledge and understanding: Ability to apply and implement, through the development of algorithms, techniques for the analysis of large datasets and for spatial and temporal data, under conditions of uncertainty, in order to guarantee the usefulness, quality and effectiveness of the analysis. Capacity to use IT technologies, techniques and methodologies for acquiring, managing, integrating, analysing and visualising large datasets, in order to ensure scalability with respect to the volume and speed of data acquisition. These skills concern in particular database management systems and large datasets and related visualisation techniques, models and languages for expressing data semantics, learning techniques, decision-making models, organisation of information systems, web search techniques, data flow management techniques. Making judgements: Master graduates will have the ability to apply the acquired knowledge to interpret data in order to make directional and operational decisions in a business context. Master's graduates will have the ability to apply the acquired knowledge to support processes related to production, management and risk promotion activities and investment choices through the organisation, analysis and interpretation of complex databases. Communication skills: Master's graduates will be able to communicate effectively in oral and written form the specialised contents of the individual disciplines, using different registers, depending on the recipients and the communicative and didactic purposes, and to evaluate the formative effects of their communication. Learning skills: "MSc graduates should be familiar with the tools of scientific research. They will also be able to make autonomous use of information technologies to carry out bibliographic research and investigations both for their own training and for further education. In addition, through the curricular teaching and the activities related to the preparation of the final thesis, they will be able to acquire the ability - to identify thematic links and to establish relationships between methods of analysis and application contexts; - to frame a new problem in a systematic manner and to implement appropriate analysis solutions; - to formulate general statistical-econometric models from the phenomena studied.

Assessment
The exam modalities are the same for both the attending and the non-attending students. Project work (70% of the final grade) and oral exam (30% of the final grade). All project works must have been submitted, at the very latest, 15 days ahead of the oral exam. In case of a positive mark, the projects will count for all 3 regular exam sessions.

Evaluation criteria
70% project work, 30% oral exam. • Relevant for project work: clarity of presentation, ability to gain useful and novel insights from data, creativity, critical thinking, ability to adhere to reproducible research best practices • Ability to use Python to write, evaluate and deploy advanced, object-oriented computer programs • Ability to use Python to employ (understand, recall and use) data analytics methods in practical settings, from data collection and curation, to data analysis, modelling and visualization.

Required readings

Data Visualization. A practical introduction. Haley. Available online

A layered grammar of graphics. Wickham. Available online

Python Data Science Handbook, by Jake VanderPlas. O'Reilly Media (1st Edition, 2016).

Subject Librarian: David Gebhardi, David.Gebhardi@unibz.it



Supplementary readings

Fundamentals of Data Visualization. Wilke. Available online

Visualization Analysis and Design. Munzer. Amazon

Data Visualization: Charts, Maps, and Interactive Graphics. Grant. Amazon

Doing Data Science. Cathy O'Neil, Rachel Schutt. O’Reilly, 2013, https://www.oreilly.com/library/view/doing-data-science/9781449363871/

Python for Data Analysis. By Wes McKinney. O’Reilly, 2nd Edition, 2017, https://www.oreilly.com/library/view/python-for-data/9781491957653/




Download as pdf

Sustainable Development Goals
This teaching activity contributes to the achievement of the following Sustainable Development Goals.

4 9

Modules

Semester 1 · 27500A · Master in Data Analytics for Economics and Management · 6CP · EN

Module A — M1 - Introduction to programming for data science

This module provides a comprehensive introduction to Python programming, starting with the setup of the development environment and core programming constructs. Students will explore Python’s data structures and programming primitives, progressing to object-oriented programming and the development of structured, reusable code using functions, classes, and libraries. Emphasis is placed on best practices in software development, including code documentation, testing, version control, and distribution. The module concludes with advanced Python programming techniques, preparing students to build robust and maintainable applications.

Teaching Hours: 40
Lab Hours: 20

Course Topics
This course provides students with advanced professional skills for developing robust and maintainable Python applications. It covers the full development lifecycle—from program design to implementation, testing, and validation. Students will master Python’s object-oriented programming features and learn how to build well-structured, reusable, and modular code using functions, classes, and libraries. The course also introduces essential tools and techniques for code documentation, testing, version control, and distribution, preparing students for collaborative and production-level development environments.

Teaching format
The course adopts a blended, student-centered approach that emphasizes problem-based learning and active engagement. Selected lecture content is made available online in advance, enabling students to explore key concepts independently and at their own pace. This preparatory work allows in-person sessions to focus on applying knowledge through problem-solving, collaborative activities, and guided discussions—fostering critical thinking and deeper understanding. The teaching format combines frontal lectures, hands-on lab assignments, and project work, ensuring that students develop both theoretical knowledge and practical programming skills. The course is aligned with the principles of the EDUNEXT initiative (https://edunext.eu), promoted by Italian universities, which supports the integration of digital resources and active learning strategies in higher education.

Required readings

Python for Data Analysis. By Wes McKinney. O’Reilly, 3nd Edition, 2022, https://www.oreilly.com/library/view/python-for-data/9781098104023/



Supplementary readings

Jupyter Notebook Documentation. https://jupyter-notebook.readthedocs.io/en/stable/



Semester 1 · 27500B · Master in Data Analytics for Economics and Management · 6CP · EN

Module B — M2 - Data visualization and exploration

This module guides students through the complete data science pipeline, from raw data acquisition to advanced analytics and visualization. Students will gain hands-on experience in data ingestion, exploration, cleaning, and feature engineering, building a strong foundation for effective data modeling. The course covers key machine learning techniques—including clustering, classification, and regression—alongside model tuning, validation, and testing. Emphasis is placed on producing insightful and reproducible visualizations using specialized Python libraries, enabling students to communicate data-driven findings with clarity and impact.

Lecturers: Antonio Liotta

Teaching Hours: - 24 hours of in-person lectures - 12 hours of video lectures (counted as 24 hours to account for re-watching)
Lab Hours: 20

Request info