Skip to content

Free University of Bozen-Bolzano

Artificial Intelligence

Semester 2 · 76266 · Bachelor in Computer Science · 12CP · EN · IT


– Searching for Solutions
– Reasoning with Constraints
– Agents based on Propositional Logic
– Planning with Certainty
– Multiagent Systems and Games
– Large Language Models as Agents

– Data understanding and preprocessing
– Classification: Decision Trees, Rule-based classification, KNN, Naïve Bayes, Support Vector Machines, Perceptron
– Ensemble learning, boosting, bagging (Random Forests)
– Evaluation of Machine Learning algorithms
– Regression analysis
– K-Means Clustering

Lecturers: Raffaella Bernardi, Ivan Donadello

Teaching Hours: 60
Lab Hours: 60
Mandatory Attendance: Attendance is not compulsory; non-attending students may contact the lecturer at the start of the course to get support on the modalities of the independent study.

Course Topics
Foundations of Artificial Intelligence introduces students to the design of intelligent computational agents and explores the emergence of Artificial Intelligence as an integrated science. The course centers on the concept of an intelligent agent operating within an environment, beginning with simple agents in static settings and progressively increasing in complexity to address more challenging scenarios. Throughout the course, students examine the multifaceted nature of building intelligent systems, gradually and modularly uncovering what makes this task complex. Key ideas are illustrated using concrete examples such as a delivery robot and a diagnostic assistant, blending scientific principles with engineering applications. The ultimate goal is for students to conceptualize a hierarchically designed agent capable of acting intelligently in a stochastic, partially observable environment—an agent that reasons about individuals and their relationships, has complex preferences, learns from its actions, considers the presence of other agents, and operates effectively within computational constraints. Machine Learning in Practice focuses on fundamental Machine Learning techniques, combining theoretical instruction with practical application. The course covers basic supervised and unsupervised learning methods, with lectures devoted to conceptual understanding and labs aimed at hands-on implementation using real-world datasets. Students begin by learning to represent data and manage various feature types, then progress to building predictive models through supervised learning and discovering data groupings through unsupervised learning. Emphasis is placed on evaluating model quality and addressing challenges related to generalization. A significant portion of the course involves implementing algorithms using Python libraries such as Scikit-learn and SciPy, enabling students to tackle a variety of machine learning tasks across diverse application domains.

Teaching format
This is a project and lab-based module. It consists of frontal lectures, exercises in lab, case study analysis and the development of a project.

Educational objectives
Knowledge and Understanding - D1.13 Know the principles of artificial intelligence and potentials and limits of intelligent systems in various application domains. Applying knowledge and understanding - D2.15 Be able to adopt programming techniques of artificial intelligence to solve problems of computer science. Ability to make judgments - D3.1 Be able to collect and interpret useful data and to judge information systems and their applicability. - D3.2 Be able to work autonomously according to the own level of knowledge and understanding. Communication skills - D4.1 Be able to use one of the three languages English, Italian and German, and be able to use technical terms and communication appropriately. Learning skills - D5.1 Have developed learning capabilities to pursue further studies with a high degree of autonomy. - D5.3 Be able to follow the fast technological evolution and to learn cutting edge IT technologies and innovative aspects of last generation information systems.

Additional educational objectives and learning outcomes
NA

Assessment
Final exam: The exam covers content from both Foundations of Artificial Intelligence and Machine Learning in Practice, with each contributing 50% to the final grade. The Foundations of Artificial Intelligence part consists of a written exam that includes verification questions, knowledge transfer tasks, and problem-solving exercises. It evaluates the student’s ability to apply concepts and demonstrate a solid understanding of the fundamental principles of intelligent systems. The Machine Learning in Practice part includes a written exam, worth 40% of the module grade, with verification and problem-solving questions, and a set of assignments, worth 60%, which involve implementing machine learning algorithms on real datasets, conducting experiments, and presenting the results.

Evaluation criteria
The exam is evaluated based on the correctness and clarity of answers, the ability to summarize and critically evaluate content, the capacity to establish relationships between topics, the quality of argumentation, and problem-solving skills. To pass the exam, students must achieve a minimum score of 18 out of 30 in each module. Each module contributes equally to the final grade, with Foundations of Artificial Intelligence accounting for 50% and Machine Learning in Practice for the remaining 50%. A positive evaluation in one module remains valid for all three regular exam sessions within the academic year.

Required readings
  • David L. Poole and Alan K. Mackworth. Artificial Intelligence. Cambridge University Press, Cambridge, 3rd revised ed. edition edition, July 2023. ISBN 978-1-009-25819-7. 
  • Pang-Ning Tan, Michael Steinbach, and Vipin Kumar. Introduction to Data Mining. Pearson, NY NY, 2nd edition edition, January 2018. ISBN 978-0-13-312890-1. 


Supplementary readings
  • Stuart Russell and Peter Norvig. Artificial Intelligence: A Modern Approach. Pearson, Hoboken, 4th edition edition, April 2020. ISBN 978-0-13-461099-3. 
  • Aurélien Géron. Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems. O'Reilly Media, Beijing China ; Sebastopol, CA, 2nd edition edition, October 2019. ISBN 978-1-4920-3264-9. 


Further information
- Python (https://www.python.org) - Scikit-learn (https://scikit-learn.org/stable/) - SciPy (https://scipy.org)


Download as pdf

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

4

Modules

Semester 2 · 76266A · Bachelor in Computer Science · 6CP · EN

Module A — Foundation of Artificial Intelligence

- Artificial Intelligence and Agents
- Searching for Solutions
- Reasoning with Constraints
- Propositions and inference
- Planning with Certainty
- Multiagent Systems and Games

Lecturers: Raffaella Bernardi

Teaching Hours: 40
Lab Hours: 20

Course Topics
This course introduces the core principles of Artificial Intelligence, focusing on how intelligent agents represent problems, reason about their environment, and make decisions. Topics include search-based problem solving, reasoning with constraints, propositional logic and inference, and planning in deterministic settings. The course also examines multiagent systems and game-theoretic reasoning, highlighting the challenges of decision-making in environments with multiple interacting agents. The emphasis is on foundational models and algorithms that underlie modern AI systems.

Teaching format
Frontal lectures, exercises in lab, assignments, case study analysis.

Required readings

David Poole and Alan Mackworth. Artificial Intelligence: Foundations of Computational Agents. Cambridge University Press, 2023, 3rd edition 2017. The book is fully available online.



Supplementary readings

Stuart Jonathan Russell and Peter Norvig. Artificial Intelligence: A Modern Approach. Prentice Hall, 4th edition 2020.

Plus material provided by the lecturer in class.



Semester 2 · 76266B · Bachelor in Computer Science · 6CP · IT

Module B — Machine Learning in Practice

- Data understanding and preprocessing
- Classification: Decision Trees, Rule-based classification, KNN, Naïve Bayes, Support Vector Machines, Perceptron
- Ensemble learning, boosting, bagging (Random Forests)
- Evaluation of Machine Learning algorithms
- Regression analysis
- K-Means Clustering

Lecturers: Ivan Donadello

Teaching Hours: 30
Lab Hours: 30

Request info