Skip to content

Free University of Bozen-Bolzano

Toggle the language menu. Current language: EN

Algorithms and Data Management for Artificial Intelligence

Semester 1 · 73079 · Master in Computing for Data Science · 12CP · EN


• Relational model, database design and SQL
• Business intelligence, from data to information
• Data integration, multidimensional model, OLAP
• Data Warehousing and ETL
• NoSQL database systems
• MapReduce and Apache Spark
• Introduction to Algorithm complexity and basic Graph notions
• Algorithms on Graphs
• Net-Flow Algorithms
• Algorithms for numerical optimization: Linear Programming
• Fundamentals of computational complexity
• Heuristic and approximation strategies for solving hard problems

Lecturers: Alessandro Artale, Anton Dignös

Teaching Hours: 80
Lab Hours: 40
Mandatory Attendance: Attendance is not compulsory but recommended. Non-attending students must contact the lecturer at the start of the course to agree on the modalities of the independent study. Exam modalities for non-attending students are the same as for attending students.

Course Topics
The course aims to: Teach students both scientific foundations and practical aspects of business intelligence and data warehousing, and advanced data management technologies that go beyond traditional (relational) database management systems. The students will learn the basic concepts of such systems and how to use them to solve concrete problems. Moreover, students will be trained to evaluate the advantages and disadvantages of such technologies in different application contexts. Provide students with the fundamental skills needed to develop algorithms using data structures, analyze their correctness and efficiency, and to understand the computational techniques used when looking for an optimal solution. The students will be able to: • design programs that use computer resources efficiently; • being aware of optimization techniques; • realize that there are problems that are computationally impractical or even impossible to solve by a computer; • look for approximate solutions in case the problem is hard computationally. Students will learn how to devise efficient algorithms for different kinds of problems. Students will be trained to apply different algorithmic strategies when problems to solve can be encoded by means of Graphs. When a problem asks for an optimal solution, the student will be able to use Net-Flow or Linear Programming techniques to solve them. Concerning the notions of computability and complexity, the students will acquire a formal tool to recognize when a problem is inherently complex, independently of any algorithm developed to solve the problem. Since many natural problems in computer science are hard, the development of methods to deal with intractable problems has become a crucial issue in the study of algorithms. Thus, the course presents various solutions to tackle inherently complex problems by either designing an exact algorithm or try to approximate the problem itself.

Teaching format
Frontal lectures, project work / exercises during the lab.

Educational objectives
The course belongs to the type "caratterizzanti – discipline informatiche". The course aims to: teach students both scientific foundations and practical aspects of business intelligence and data warehousing, and advanced data management technologies that go beyond traditional (relational) database management systems; provide students with the fundamental skills needed to develop algorithms using data structures, analyze their correctness and efficiency, and to understand the computational techniques used when looking for an optimal solution. Knowledge and understanding: • D1.1 - Knowledge of the key concepts and technologies of data science disciplines • D1.2 - Understanding of the skills, tools and techniques required for an effective use of data science • D1.4 - Sound basic knowledge of storing, querying and managing large amounts of data and the associated languages, tools and systems • D1.11 - Knowledge of the main algorithms for data analysis, and of elements of the complexity theory Applying knowledge and understanding: • D2.1 - Practical application and evaluation of tools and techniques in the field of data science • D2.2 - Ability to address and solve a problem using scientific methods • D2.4 - Ability to develop programmes and use tools for the analysis and management of data and related infrastructures Making judgments • D3.2 - Ability to autonomously select the documentation (in the form of books, web, magazines, etc.) needed to keep up to date in a given sector. Communication skills • D4.1 - Ability to use English at an advanced level with particular reference to disciplinary terminology. • D4.3 - Ability to structure and draft scientific and technical documentation Learning skills • D5.1 - Ability to autonomously extend the knowledge acquired during the study course. • D5.3 - Ability to deal with problems in a systematic and creative way and to appropriate problem solving techniques

Assessment
Written exams and Project Work. The assessment of the Data Management and Business Intelligence module consists of two parts: - a single written exam at the end that covers the entire module material (60% of the mark); - a project which is done during the semester and requires students to solve a concrete problem by using methods and technologies taught in the course (40% of the mark). The written exam is a multiple-choice test and verifies knowledge and understanding of the advanced data management methods and techniques learned during the module. The project verifies whether the student is able to apply advanced data management techniques to solve concrete problems. The project is assessed through a final presentation, demo and project report. A positive project mark is a pre-requisite to be admitted to the written exam; there are no other pre-requisites. Both parts (the written exam and the project) must be positive to pass the module. The assessment of the Algorithms for Artificial Intelligence module consists in a written exam. In the written exam there will be verification questions, transfer of knowledge questions and exercises. The learning outcome related to knowledge and understanding, applying knowledge and understanding and those related to the student ability to learn, and the acquired learning skills will be assessed by the written exam. The exam modalities for non-attending students are the same as for attending students.

Evaluation criteria
The final grade is the weighted average of the grades of the two modules M1 and M2. Criteria for the evaluation of the project: correctness of the solution, complexity of the project, technologies used in the solution, quality of the report and the presentation. Criteria for the evaluation of the written exams: correctness, clarity of answer, quality of argumentation, problem solving ability.

Required readings

M1 – Data Management and Business Intelligence

 

There is no single textbook that covers the entire course. The course material is collected from various textbooks and research papers including the following ones (available as print and/or online versions through the unibz library):

M. Golfarelli and S. Rizzi. Data Warehouse Design: Modern Principles and Methodologies. McGraw-Hill, 2009.

R. Kimball and M. Ross. The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling. 3rd Edition, O'Reilly, 2013.

T. White. Hadoop: The Definitive Guide. 4th Edition, O'Reilly, 2015.

H. Karau et al. Learning Spark. O'Reilly, 2015.

 

M2 – Algorithms for Artificial Intelligence

 

Algorithm Design. Jon Kleinberg and Éva Tardos. Pearson, 2005.

Linear Programming and Network Flow. Mokhtar S. Bazaraa, John J. Jarvis and HanifD.Sherali. Wiley

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



Supplementary readings

·      Lecture Notes

·      Additional sources will be announced during the course



Further information
Software used: PgAdmin4, PostgreSQL, Hadoop MapReduce framework, Spark.


Download as pdf

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

4

Modules

Semester 1 · 73079A · Master in Computing for Data Science · 6CP · EN

Module A — Data Management and Business Intelligence

• Relational model, database design and SQL
• Business intelligence, from data to information
• Data integration, multidimensional model, OLAP
• Data Warehousing and ETL
• NoSQL database systems
• MapReduce and Apache Spark

Lecturers: Anton Dignös

Teaching Hours: 40
Lab Hours: 20

Course Topics
The course aims to teach students both scientific foundations and practical aspects of business intelligence and data warehousing, and advanced data management technologies that go beyond traditional (relational) database management systems. The students will learn the basic concepts of such systems and how to use them to solve concrete problems. Moreover, students will be trained to evaluate the advantages and disadvantages of such technologies in different application contexts.

Teaching format
Frontal lectures and project work during the exercise hours. In the frontal lectures, the basic concepts are introduced and explained together with some examples. In the labs, the students will do a semester project, where selected techniques have to be applied to solve concrete problems.

Required readings

There is no single textbook that covers the entire course. The course material is collected from various textbooks and research papers including the following ones (available as print and/or online versions through the unibz library):

M. Golfarelli and S. Rizzi. Data Warehouse Design: Modern Principles and Methodologies. McGraw-Hill, 2009.

R. Kimball and M. Ross. The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling. 3rd Edition, O'Reilly, 2013.

T. White. Hadoop: The Definitive Guide. 4th Edition, O'Reilly, 2015.

H. Karau et al. Learning Spark. O'Reilly, 2015.



Supplementary readings

Lecture Notes.

Additional sources will be announced during the course.



Semester 1 · 73079B · Master in Computing for Data Science · 6CP · EN

Module B — Algorithms for Artificial Intelligence

• Introduction to Algorithm complexity and basic Graph notions
• Algorithms on Graphs
• Net-Flow Algorithms
• Algorithms for numerical optimization: Linear Programming
• Fundamentals of computational complexity
• Heuristic and approximation strategies for solving hard problems

Lecturers: Alessandro Artale

Teaching Hours: 40
Lab Hours: 20

Request info