International Teaching | SOFTWARE ENGINEERING FOR ARTIFICIAL INTELLIGENCE
International Teaching SOFTWARE ENGINEERING FOR ARTIFICIAL INTELLIGENCE
Back
Lessons Timetable
cod. 0522500139
SOFTWARE ENGINEERING FOR ARTIFICIAL INTELLIGENCE
0522500139 | |
COMPUTER SCIENCE | |
EQF7 | |
COMPUTER SCIENCE | |
2024/2025 |
YEAR OF DIDACTIC SYSTEM 2016 | |
SPRING SEMESTER |
SSD | CFU | HOURS | ACTIVITY | |
---|---|---|---|---|
INF/01 | 6 | 48 | LAB |
Objectives | |
---|---|
General Objective The course aims to provide students with a solid understanding of the fundamental principles of Software Engineering applied to Artificial Intelligence (AI). Students will acquire theoretical and practical knowledge of engineering approaches that enable the development of AI algorithm-based systems and will be able to apply this knowledge to solve complex problems. Knowledge and understanding capabilities Students will acquire knowledge of methodologies and techniques for the analysis, design, and verification of Artificial Intelligence (AI) systems, particularly systems that require the use of learning techniques within the context of complex and critical software systems. In particular: -Functional and non-functional requirements of AI-based systems, with reference to the extraction and analysis of such requirements. -Principles of data engineering, with reference to the extraction, validation, and preprocessing of large amounts of data, such as big data. -Training and configuration of AI algorithms, with reference to advanced algorithms such as ensemble learning, active learning, reinforcement learning, deep learning, quantum machine learning, and large language models. -Fundamentals of software analytics for AI algorithms, with particular reference to validation/verification, security/privacy, ethics and fairness, environmental and economic sustainability, and explainability of AI algorithms. -Versioning of AI models. -Deployment and monitoring of AI models, with particular reference to the MLOps model. -Management and documentation of AI systems. Ability to apply knowledge and understanding The student will be able to define and utilize engineering tools for the development of AI algorithm-based systems. Specifically, they will be able to: -Extract functional and non-functional requirements for AI-based systems. -Define methodologies for the deployment, versioning, and monitoring of AI-based systems, with a focus on MLOps approaches. -Apply practices for data extraction, validation, and preprocessing. -Define training and configuration pipelines for AI-based systems, capable of working with advanced AI algorithms. -Validate and verify AI-based systems, ensuring adequate levels of quality in terms of ethics and fairness, environmental and economic sustainability, and explainability. Autonomy of judgment The student will be able to: -Critically evaluate the different phases and practices in the development of AI systems and propose any improvements or adaptations; -Make informed decisions on the selection and application of best practices and tools in the context of AI system design and development. - Communication capabilities The student will be able to: -Communicate, through the presentation and discussion of theoretical concepts and practical applications of Software Engineering for AI, the results of research or personal elaborations regarding the development of AI-based systems. -Discuss and justify design choices and obtained results, both orally and in writing. Learning abilities The student will be able to: -Utilize bibliographic tools to adapt to the rapid developments in the field of AI, addressing emerging challenges with a critical and creative spirit. -Conduct research activities, understand, and interpret complex texts related to the development of AI-based systems. |
Prerequisites | |
---|---|
The student must have prior knowledge of concepts related to: -Software engineering - with particular reference to the management of software system evolution; -Artificial intelligence - in this case, basic knowledge is sufficient |
Contents | |
---|---|
The course will provide basic knowledge on the following topics: -Functional and non-functional requirements of AI-based systems, with reference to the extraction and analysis of such requirements (2 hours); -Principles of data engineering, with reference to the extraction, validation, and preprocessing of large amounts of data, such as big data (6 hours); -Training and configuration of AI algorithms, with reference to advanced algorithms such as ensemble learning, active learning, reinforcement learning, deep learning, quantum machine learning, and large language models (16 hours); -Fundamentals of software analytics for AI algorithms, with particular reference to validation/verification, security/privacy, ethics and fairness, environmental and economic sustainability, and explainability of AI algorithms (18 hours); -Deployment, versioning, and monitoring of Artificial Intelligence models, with particular reference to the MLOps model (4 hours); -Management and documentation of Artificial Intelligence systems (2 hours). |
Teaching Methods | |
---|---|
The course consists of 48 hours of lectures and laboratory sessions (6 CFU) aimed at providing theoretical/methodological knowledge transfer and the necessary tools for project activities. Students will be assigned a project (either individually or in a group of up to 4 students) on the topics covered in the course, through which they can deepen the practical aspects discussed during the lectures. The workload required for the project is approximately 48 hours. |
Verification of learning | |
---|---|
The achievement of the course objectives is certified through passing an exam with evaluation on a thirty-point scale. The exam includes the completion of (1) an individual or group project and the submission of its documentation and (2) an oral examination. -The submission of the project documentation is a prerequisite for the oral examination. -The oral examination consists of a discussion with questions on the key aspects of the completed project and on the theoretical and methodological contents outlined in the course program. Its purpose is to assess the level of knowledge attained by the student regarding the theoretical and methodological contents of the course program and their application to the project, the contribution made to the project, the completeness, correctness, and synthesis of the project documentation, as well as to verify the student's ability to present using appropriate terminology, organize the presentation autonomously, and justify the project choices appropriately. |
Texts | |
---|---|
The recommended books are the following: -A. Burkov, “Machine Learning Engineering”, Paperback. -G. Hulten, "Building Intelligent Systems". -H. Hapke, C. Nelson, “Building Machine Learning Pipelines”, O’Really. |
More Information | |
---|---|
Attendance at the course is not mandatory but strongly recommended. Students should be prepared to actively engage in the course through interaction with the instructor in the classroom and dedicated time for individual study. Satisfactory preparation, leading to passing the exam, will consist of an average of two hours of individual study for each hour spent in the classroom, as well as an average of one hour dedicated to associated project activities. The course also involves a strong emphasis on learning software tools for the development of artificial intelligence pipelines (such as Jupyter Notebook, ML-Flow, and others). The course material will be available on the departmental e-learning platform. Contact information for the instructor: Fabio Palomba E-mail: fpalomba@unisa.it Web site: https://fpalomba.github.io |
BETA VERSION Data source ESSE3