ADDITIONAL USEFUL KNOWLEDGE
0 file
The aim of the teaching unit is to provide foundational knowledge of acquiring additional useful knowledge on elements of enterprise culture, skill activities, basics of program management, as well as on personal…
Scheda dell'insegnamento
Obiettivi formativi
The aim of the teaching unit is to provide foundational knowledge of acquiring additional useful knowledge on elements of enterprise culture, skill activities, basics of program management, as well as on personal interests related to the Master degree topics through research seminar attendance
Programma
The course gives the students the opportunity of complementing their plan of study with further knowledge and activities, relevant for the overall outcome of the course of study, depending on their personal interests.
Modalità d'esame
Students have to attend (parts of) classes and research seminars or carry out activities, preliminarily selected by the committee, taking into account the student plan of study and interests.
Depending on the specific activity, written or oral communications (in the form of short videos) have also to be produced.
Class certificates are required to assess the student participation to the selected seminars and activities. Written and oral communications help in better assessing the level of understanding of specific topics.
Testi di riferimento
Specific material will be provided on Aulaweb.
Codice insegnamento 90549
ADVANCED DATA MANAGEMENT
INF/01 · 0 file
The teaching unit aims for students to acquire the theoretical, methodological, and technological fundamentals of data management for advanced data processing architectures, with a specific reference to large-scale…
Scheda dell'insegnamento
Obiettivi formativi
The teaching unit aims for students to acquire the theoretical, methodological, and technological fundamentals of data management for advanced data processing architectures, with a specific reference to large-scale distributed environments, like key elements of NoSQL systems, basic issues in parallel and distributed query processing, and data management for AI-driven applications.
Programma
When the size of structured and unstructured data exceeds the capacity of conventional database management systems, advanced tools and methods are required for capturing, storing and managing data. Such huge amounts of data are usually stored in large-scale distributed environments, processed using specific advanced data processing environments, specific tools for their management are usually required, and represent the basis for the development of AI-driven applications.
Modalità d'esame
Written examination (a different number of questions will be proposed depending on the number of the CFU); project development (only for 9 CFU); oral examination
During the semester, we will propose some assignments, to be developed on one of the presented systems.
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/11964/studenti-disabilita-dsa
Details on how to prepare for the examination and the required degree of knowledge for each topic will be provided during the lessons.
The written exam consists of a set of open and closed questions and exercises on basic topics of the course: the goal of open and closed questions is to verify the understanding of the main issues addressed during the lessons, the aim of exercises is to check the ability to select the right system for a given scenario and solve simple problems related to data modeling and querying in large-scale data management systems.
The project (only for 9 CFU) consists in the design and the implementation of a data store for one of the systems presented in the course; the presentation of the performed activity help us in checking the ability of using at least one system for large-scale data management for solving non trivial problems and the ability of communicating t(in a written way) he result of the activity in a clear and complete way.
The oral exam consists of the discussion of the written exams, the assignment, and the project (onlu for 9 CFU), in order to assess whether the student has reached an appropriate level of knowledge and the ability of communicating (in an oral way) the result of the activities in a clear and complete way.
For students that do not successfully complete the assignments, the oral exam will also include theoretical questions and / or practices of the course topics to better understand the understanding of the main issues addressed during the lessons.
Testi di riferimento
Serge Abiteboul, Ioana Manolescu, Philippe Rigaux, Marie-Christine Rousset, Pierre Senellart. Web Data Management. Cambridge University Press, 2011.
P.J. Sadalage, M.Fowler. Nosql Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Addison Wesley, 2013
Jeff Carpenter, Eben Hewitt, Cassandra: The Definitive Guide, O'Reilly Media, 2016
Ian Robinson, Jim Webber & Emil Eifrem. Graph Databases, New Opportunities for Connected Data, 2nd Edition, O’Reilly, 2015
Additional material and references provided by the instructors.
Codice insegnamento 61884
ADVANCED SECURE SOFTWARE ENGINEERING
INF/01 · 0 file
AI-AUGMENTED SOFTWARE ENGINEERING
INFO-01/A · 0 file
The teaching unit aims to provide an overview of the use of artificial intelligence, in particular large language models (LLMs) and agentic systems, in the context of software engineering. During the course, students…
Scheda dell'insegnamento
Obiettivi formativi
The teaching unit aims to provide an overview of the use of artificial intelligence, in particular large language models (LLMs) and agentic systems, in the context of software engineering. During the course, students learn and put into practice techniques for interacting with such models and for evaluating the results, developing prototypes to support activities of requirements analysis, design, implementation, testing, and debugging of software. Particular attention is devoted to the construction of workflows and tools based on LLMs, also through the integration of local models and external services, and to the practical experimentation of their capabilities in the context of software engineering.
Programma
This teaching unit explores the role of Large Language Models, AI assistants, and agentic AI systems in modern Software Engineering. The teaching unit focuses on how AI-based tools can augment software development activities across the software engineering lifecycle, including requirements analysis, coding, testing, debugging, documentation, experimentation, and evaluation.
Students will gain both theoretical and practical knowledge on how to use local and remote LLMs, prompt engineering techniques, Retrieval-Augmented Generation, AI-based development workflows, and software engineering agents. The teaching unit also introduces applications of LLMs and agents to DevOps and DevSecOps, with attention to opportunities, limitations, risks, and security challenges of AI-augmented software development.
Modalità d'esame
The exam will consist in a written part (traditional open/closed questions, and exercises) plus the discussion of the assignments/laboratories/project. The final grade will be assigned by combining the evaluations of (1) the written exam, and (2) the assignments/laboratories/project completed during the teaching unit.
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/11964/studenti-disabilita-dsa
The acquisition of the skills foreseen by this teaching unit will be assessed via the written exam. Evaluation parameters include: the quality of exposure, the correct use of the specialist vocabulary, the ability to critically reason on the possible technical solutions to adopt and the capability to employ them in real contexts.
Testi di riferimento
Each lesson topic will be accompanied by specific references, including scientific papers, technical documentation, benchmark descriptions, tool documentation, and selected material on AI-Augmented Software Engineering, Large Language Models, Retrieval-Augmented Generation, software engineering agents, AI-Augmented DevOps, and security challenges in LLM-based applications.
Codice insegnamento 121620
ARTIFICIAL INTELLIGENCE AND THE LAW
IUS/01 · 0 file
The purpose of the teaching unit is to introduce the legal implications of new technologies, with particular reference to artificial intelligence, robotics, and bioengineering, addressing how technological evolution…
Scheda dell'insegnamento
Obiettivi formativi
The purpose of the teaching unit is to introduce the legal implications of new technologies, with particular reference to artificial intelligence, robotics, and bioengineering, addressing how technological evolution raises the problem of identifying the legal discipline applicable to new phenomena and the need to reassess existing law to govern innovation while respecting the fundamental principles of the legal system and not hindering the development of new economic sectors. The teaching unit further aims to provide students with a general understanding of the basic legal knowledge necessary to address the challenges posed by new technologies, including the protection of individuals’ rights both from a preventive perspective (compliance) and a remedial perspective (liability and compensation), taking into account national and supranational regulations, jurisprudence, and recent doctrinal contributions.
Programma
The course is focused on the legal profiles of new technologies, expecially on the legal implications of the use of artificial intelligence by professionals, companies and public. Technological innovation has opened up scenarios on civil liability and product liability, on the protection of confidentiality, on information security, making it necessary to be aware of the European regulations. The topic includes the study of private law, in the light of recent EU regulatory framework, and provides the skills to build AI systems compliant with the rules.
Modalità d'esame
The exam will be conducted orally. For attending students, specific assessment methods may be agreed upon with the instructor, such as participation in workshops and the submission of a final report. An intermediate test is scheduled during the course. Students who do not pass the intermediate test or do not take it will be able to take the full oral exam on the dates set in the official calendar.
Students with certification of Specific Learning Disabilities (SLD), disabilities, or other special educational needs are required to contact the instructor at the beginning of the course to agree on teaching and assessment methods that, while respecting the learning objectives, take into account individual learning styles and provide appropriate compensatory tools. Please note that requests for compensatory/dispensatory measures for exams must be sent to the course instructor, the School’s representative, and the “Settore servizi per l'inclusione degli studenti con disabilità e con DSA” office ([[email protected]](mailto:[email protected])) at least 10 working days before the exam, in accordance with the guidelines available at the following link: [https://unige.it/disabilita-dsa](https://unige.it/disabilita-dsa).
The oral exam will allow for the assessment of the acquisition of knowledge regarding legislative regulation, the ability to apply legal rules to concrete situations, and the use of technical language. The practical cases and the intermediate test are intended to assess the knowledge acquired at the end of each module.
Testi di riferimento
The teaching materials will be distributed during the course and made available to students on Aulaweb. We recommend reading the regulatory texts that will be explained in the class.
Codice insegnamento 114550
AUGMENTED REALITY
INF/01 · 0 file
BINARY ANALYSIS AND SECURE CODING
INF/01 · 0 file
Learning how to write secure code, analyze the behavior and assess security properties of source and binary programs, pinpointing and fix their vulnerabilities or apply corrective counter-measures.
Scheda dell'insegnamento
Obiettivi formativi
Learning how to write secure code, analyze the behavior and assess security properties of source and binary programs, pinpointing and fix their vulnerabilities or apply corrective counter-measures.
Programma
The course aims at making developers aware that (poorly written) programs can be exploited for malicious purposes, making them act in unintended ways. This goal is achieved by showing how binary programs can be analysed and exploited. Moreover, the course describes how to design & write secure software, i.e., resistant to attack by malicious or mischievous people or programs. Analysis procedures in adversarial contexts, such as malware analysis, will be also discussed.
Modalità d'esame
Hands-on session and oral discussion.
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/10852/studenti-disabilita-dsa
The examination will assess the ability of analysing programs for security vulnerabilites, developing simple exploits and applying corrective fixes. Moreover, the knowledge of concepts presented in lectures, and the ability to analyse and articulate them clearly.
9-CFU students may be assigned malware/malware-like samples to analyze.
Testi di riferimento
Support material and recommended bibliography will be available on AulaWeb.
Codice insegnamento 101811
CAPSTONE PROJECT
INF/01 · 0 file
Acquiring experience of a realistic team development effort that follows a given methodology and harnesses different technologies for the implementation of a specific product.
Scheda dell'insegnamento
Obiettivi formativi
Acquiring experience of a realistic team development effort that follows a given methodology and harnesses different technologies for the implementation of a specific product.
Programma
This course aims to enable students to apply the technologies and concepts acquired in other courses through the development of a realistic software project, following a specific software development process model.
Therefore, participation is recommended only for students who have already completed at least the exams of the compulsory courses of the first year.
Active participation in the project will foster the development of critical thinking, autonomy in continuous learning, problem-solving skills, and the acquisition of essential transversal skills such as teamwork, effective communication, and time management.
Modalità d'esame
The final evaluation will substantially consider the activities carried out during the semester, including the results of some quizzes, participation in project development, teamwork, and individual technical contributions.
A brief oral examination will conclude the assessment process at the end of the course.
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/10852/studenti-disabilita-dsa
The verification of learning outcomes will occur through the following methods:
The evaluation of knowledge will take place through quizzes dedicated to individual program topics, organized before students are required to apply them in laboratory activities, to help students become aware of any shortcomings.
The evaluation of transversal skills (e.g., problem-solving, autonomy, collaboration) and comprehension of the development process will be conducted through continuous observation by the instructor during project work.
Final Project Evaluation: The overall quality of the software product and adherence to the adopted development process will indicate the team's technical and methodological capabilities.
Final Oral Examination: The oral examination will complement the ongoing evaluation, allowing for a deeper assessment of both acquired competencies not fully evident during project development and the measure of individual contributions to the team effort.
Testi di riferimento
The recommended bibliography, consisting mainly of freely accessible online resources, will be indicated and discussed during lectures and made available on the course's AulaWeb page.
Codice insegnamento 101810
COMPUTATIONAL NEUROENGINEERING
ING-INF/06 · 0 file
COMPUTATIONAL VISION
INF/01 · 0 file
DATA VISUALIZATION
INFO-01/A · 0 file
The teaching unit is intended to introduce learning basic principles from vision and human perception. Learning principles, methods, and techniques for effective visual analysis of data, including techniques for…
Scheda dell'insegnamento
Obiettivi formativi
The teaching unit is intended to introduce learning basic principles from vision and human perception. Learning principles, methods, and techniques for effective visual analysis of data, including techniques for visualizing spatial, non-spatial, and temporal data
By the end of the course, students will be able to:
Demonstrate an understanding of the cognitive and perceptual principles that underlie effective visual communication.
Identify and apply appropriate visualization techniques based on data type and analytical goals.
Design, implement, and critique visualizations for spatial, non-spatial, and temporal datasets.
Use visualization tools to support data exploration, pattern recognition, and communication.
Evaluate the effectiveness of visual representations in terms of readability, interpretability, and audience engagement.
Programma
This course provides an introduction to information visualization. Students will learn the principles to design a visualization applicaiton, and they will experience advanced programming tools to develop such applications in practice. The course consists of both theoretical lectures in class and practical experiences both in class and through autonomous work of students.
Modalità d'esame
Attendance Quiz during class - Class attendance
Homework [20%] About four assigned along the course - small effort, strict deadlines
Project [50%] Assigned during the course - big work, completed by the end of the course
Oral [30%] After submitting the project Depth of oral exam proportional to attendance.
The score of homework will guide the selection of the topics during the oral exam
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/10852/studenti-disabilita-dsa
Assessment is based on two components:
Project: Students will develop a data visualization project that demonstrates their ability to apply the principles, methods, and tools covered in the course. Particular attention will be given to the quality of data analysis, the statistical soundness of the insights, and the effectiveness of the visual representation. Projects will be evaluated on analytical rigor, clarity of communication, technical execution, and design quality.
Oral Discussion: An individual oral examination will assess the student’s understanding of theoretical concepts, their ability to justify analytical and design choices made in the project, and their critical reflection on the entire visualization process, including data preparation and interpretation.
Both components must be passed to successfully complete the course.
Testi di riferimento
Scott Murray. Interactive Data Visualization for the Web. O’Reilly, 2013
Jonathan Schwabish. Better Data Visualizations. Columbia University Press, 2021
Koponen, Juuso, and Jonatan Hildén. Data visualization handbook. Aalto korkeakoulusäätiö, 2019.
Tamara Munzner.VisualizationAnalysis and Design.AK PetersVisualization Series. CRC Press, 2014
Amelia Wattemberger. Fullstack D3 and Data Visualization: Build beautiful data visualizations with D3
Codice insegnamento 90529
DATA WAREHOUSING
INF/01 · 0 file
DATA-CENTRIC STUDIO
INFO-01/A · 0 file
The teaching unit aims for students to gain a practical perspective on data processing pipelines, from data acquisition to data analysis, based on edge computing and NoSQL systems; gaining hands-on experience through a…
Scheda dell'insegnamento
Obiettivi formativi
The teaching unit aims for students to gain a practical perspective on data processing pipelines, from data acquisition to data analysis, based on edge computing and NoSQL systems; gaining hands-on experience through a realistic data-centric project
Programma
The teaching unit encourages students to apply Internet of Things and Advanced Data Management methods, algorithms, and technologies, as well as distributed computing techniques, in a data-centric autonomously developed project.
Modalità d'esame
Project development; oral examination.
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/11964/studenti-disabilita-dsa
Through an autonomous project, we will check the students ability to combine and apply what they are learning in the Internet of Things and Advanced Data Management courses on a concrete data-centric project.
Testi di riferimento
Material and references provided by the instructors.
Codice insegnamento 121605
DECENTRALIZED SYSTEMS
INF/01 · 0 file
Learning the techniques and problems related to systems based on permissioned and permissionless blockchains, and decentralized systems in general, examining with particular attention the aspects related to security.
Scheda dell'insegnamento
Obiettivi formativi
Learning the techniques and problems related to systems based on permissioned and permissionless blockchains, and decentralized systems in general, examining with particular attention the aspects related to security.
Programma
This course will explore the fundamentals of blockchains, their cryptographic principles, smart contracts, and some frameworks introduced to help developers building decentralized applications in the Web3 ecosystem.
Modalità d'esame
The exam consists of the following parts: (i) a written test and (ii) an oral presentation during which students will discuss their assignments.
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/10852/studenti-disabilita-dsa
The written test, which serves as the admission to the assignments discussion, consists of questions related to the topics covered in class and it allows the evaluation of the student's theoretical knowledge acquired during the course. For the oral part, students will be evaluated based on the quality of the produced code and the completeness of the reports. The written test and the assignments discussion take place in the same session.
Testi di riferimento
The recommended bibliography, consisting mainly of freely accessible online resources, will be indicated and discussed during lectures and made available on the AulaWeb page of the course.
Codice insegnamento 108872
DEEP LEARNING
INFO-01/A · 0 file
The teaching unit aims for students to acquire knowledge and understanding of learning how to use deep learning algorithms, including classical approaches and very recent methodologies and paradigms, by grasping the…
Scheda dell'insegnamento
Obiettivi formativi
The teaching unit aims for students to acquire knowledge and understanding of learning how to use deep learning algorithms, including classical approaches and very recent methodologies and paradigms, by grasping the underlying modeling, and computational issues; learning how to build and evaluate complex architectures by exploting different learning paradigms
Programma
The course will provide an overview of principles behind neural networks and deep architectures,covering classical and recent approaches
Modalità d'esame
The exam will consist in an oral exam,
The exam will evaluate the overall understanding of the topics of the course, the capability to generalize the concepts to unseen problems and analyse the obtained results. Clarity of exposition, completeness of the concepts, quality of the proposed solutions and critical thinking will be taken into account.
Testi di riferimento
The material will provided by the instructors on the Aulaweb page of the course.
Codice insegnamento 101804
DIGITAL FORENSICS
INF/01 · 0 file
DIGITAL SIGNAL & IMAGE PROCESSING
INF/01 · 0 file
DIGITAL SIGNAL PROCESSING
INFO-01/A · 0 file
The purpose of the teaching unit is to explore learning the basic tools for the analysis of 1D signals in both the time/space and frequency domains.
Scheda dell'insegnamento
Obiettivi formativi
The purpose of the teaching unit is to explore learning the basic tools for the analysis of 1D signals in both the time/space and frequency domains.
Programma
The Digital Signal and Image Processing course introduces the fundamental principles of digital signal analysis and processing, providing the theoretical and practical tools required for the representation, analysis, and processing of one-dimensional signals in the time, spatial, and frequency domains.
An initial part of the course is devoted to reviewing and strengthening key concepts from mathematical analysis, linear algebra, and probability, which are essential for understanding the models and methodologies used in signal processing.
Lectures are complemented by guided laboratory sessions aimed at the practical application of the concepts presented in class and at developing familiarity with software tools for signal analysis and processing.
Modalità d'esame
The examination consists of the development of a project on a topic selected from a list proposed by the instructor and an oral examination. During the oral examination, students will discuss both the theoretical topics covered in the course and the project and assignments completed throughout the semester.
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/11964/studenti-disabilita-dsa
Students are expected to demonstrate a solid understanding of the fundamental concepts of digital signal processing and the ability to apply the mathematical and computational tools presented during the course.
Assessment is based on the project and the oral examination. Evaluation will take into account the understanding of the theoretical concepts, the ability to apply the methodologies studied, the quality of the work produced, and the ability to critically discuss the obtained results.
Testi di riferimento
Lecture notes, readings, and slides provided by the instructors through the AulaWeb platform.
Codice insegnamento 90520
DISTRIBUTED COMPUTING
INFO-01/A · 0 file
The teaching unit aims to introduce the fundamental design principles for distributed systems, in particular with respect to reliability, availability, and fault tolerance. A few chosen architectures are analyzed more in…
Scheda dell'insegnamento
Obiettivi formativi
The teaching unit aims to introduce the fundamental design principles for distributed systems, in particular with respect to reliability, availability, and fault tolerance. A few chosen architectures are analyzed more in depth.
Programma
This course introduces some of the main design issues for distributed systems (i.e., systems made of networked computers that communicate and coordinate by passing messages to each other).
Topics like performance, availability and security are discussed, and students make hands-on experience on simulated and real systems.
Modalità d'esame
Test taken in the laboratory as a quiz on Aulaweb, and oral examination, with discussion of the test and assignments.
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/11964/studenti-disabilita-dsa
The Aulaweb quiz will evaluate the understanding of topics addressed during the lectures.
For each assignment, the technical skills and maturity acquired by the students will be assessed during the oral examination.
The exam will allow the teachers to complete their evaluation with questions on the course program.
Testi di riferimento
Scientific papers covering the topics of the syllabus will be suggested during the course. The course material will be presented on Aulaweb.
Codice insegnamento 101809
FINAL DISSERTATION
0 file
Being able to carry out autonomously a conspicuous project which could be of theoretical, computational, or experimental flavour. Being able to clearly describe the project and the obtained results in a written document.
Scheda dell'insegnamento
Obiettivi formativi
Being able to carry out autonomously a conspicuous project which could be of theoretical, computational, or experimental flavour. Being able to clearly describe the project and the obtained results in a written document.
Programma
The Final Dissertation consists in the discussion in English language of an activity carried out by the student under the guidance of one or more supervisors and the control of an examiner. The student should rely on the knowledge and the skills acquired during the course of study in providing a suitable solution to an assigned issue.
Modalità d'esame
Oral examination
Most learning outcomes are assessed through scheduled meetings.
The ability to make accessible the obtained results is assessed through scheduled meetings, the reading of the documentation and the final oral examination.
Testi di riferimento
Specific to each assigned project.
Codice insegnamento 90537
FORMAL METHODS
INFO-01/A · 0 file
The teaching unit offers an introduction to formal, logically grounded, techniques to ensure the correctness of software systems. It intends to provide participants with the ability to (a) master basic concepts and…
Scheda dell'insegnamento
Obiettivi formativi
The teaching unit offers an introduction to formal, logically grounded, techniques to ensure the correctness of software systems. It intends to provide participants with the ability to (a) master basic concepts and results about type theories, understanding their connection with logic via the proofs-as-programs correspondence, (b) master basic concepts and results about model checking, understanding the notion of model, specification and model-checking algorithm, (c) use advanced type systems to write correct-by-construction programs, (d) use (linear and branching time) temporal logics to specify and verify software systems, (e) critically evaluate when to apply formal methods and how they complement other techniques.
Programma
The teaching unit provides an introduction to the principles and usage of formal methods to ensure the correctness of software systems.
Modalità d'esame
The exam consists of a written test followed by an oral test.
The written test verifies the student's ability to put into practice the concepts seen in class. The oral test verifies the understanding of the concepts and the ability to illustrate them in an appropriate way.
Testi di riferimento
- material provided by the instructors - J.Y. Girard, Y. Lafont, P. Taylor. Proofs and Types. Cambridge University Press, 1989. - M.H.B. Sorensen, P. Urzyczyn. Lectures on the Curry-Howard Isomorphism. Elsevier, 2006. - J.-P. Katoen, C. Baier. Principles of Model-Checking. The MIT Press. 2008.
Codice insegnamento 121619
FUNCTIONAL AND SECURITY TESTING TECHNIQUES
INF/01 · 0 file
GEOMETRIC MODELING
INFO-01/A · 0 file
Learning theoretical foundations, techniques and methodologies for the representation and manipulation of solid objects, 2D and 3D scalar surfaces and fields, and related computational techniques. Learning…
Scheda dell'insegnamento
Obiettivi formativi
Learning theoretical foundations, techniques and methodologies for the representation and manipulation of solid objects, 2D and 3D scalar surfaces and fields, and related computational techniques. Learning computational techniques for resolving geometric problems (computational geometry and geometry processing). Reference applications: computer graphics, scientific visualization, CAD systems, geographic information systems, virtual reality.
Programma
This course introduces the principles of modeling geometric objects from a mathematical and computational perspective. After introducing the basic schemes for solid modeling, and the necessary concepts in differential geometry, the course focuses on geometric meshes and related data structures and algorithms. The course includes homework and/or a final project developed either in Python or in C++ using a library for geometry processing.
Modalità d'esame
The exam will consist of an evaluation of the homework/project plus an oral.
Homework tests consist of simple exercises to be done individually by each student, to familiarize with the geometric library.
The final project consists of a more elaborated problem to be addressed in a group of two/three students, within the same programming framework.
Homework and project can be proposed alternatively or together, depending on the class's global level of programming skills.
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/11964/studenti-disabilita-dsa
Homework/project will be evaluated for the correctness of the solution, efficiency, and correct use of the library.
The oral exam will include questions that can span the whole syllabus. Students are not required to remember by heart all mathematical details but should know the logical steps of all methods and be able to explain all details while consulting the slides.
Testi di riferimento
Notes and slides made available on Aulaweb. Notes contain references to reference books and articles for further reading.
Some recommended books (available in the library):
M. Mantyla, An Introduction to Solid Modeling, Computer Science Press, 1988
M.K. Agoston, Computer Graphics and Geometric Modeling, Springer Verlag, 2005
M. Botsch, L. Kobbelt, M. Pauly, P. Alliez, B. Lévy, 2010, Polygon Mesh Processing, A.K. Peters, ISBN 978-1-56881-426-1
Codice insegnamento 80412
HIGH PERFORMANCE COMPUTING
INF/01 · 0 file
The teaching unit is intended to introduce learning the main aspects of modern, heterogeneous high-performance computing systems (pipeline/superscalar processors,shared-memory/message-passing multiprocessor systems,…
Scheda dell'insegnamento
Obiettivi formativi
The teaching unit is intended to introduce learning the main aspects of modern, heterogeneous high-performance computing systems (pipeline/superscalar processors,shared-memory/message-passing multiprocessor systems, vector processors, GPUs) and basic programming skills for high-performance computing (cache optimization, vectorization, use of OpenMP, MPI, CUDA)
Programma
Parallel programming was once a niche field reserved only for government labs, research universities, and certain forward-looking industries, but today it is a requirement for most applications.
Up to 2006, CPU designers in fact have achieved performance gains improving clock speed, execution optimization and cache size. But now the performance improvement in new chips is fueled by hyperthreading, multicore and cache size. Hyperthreading and multicore CPUs have nearly no positive impact on most current software because it has been designed in a sequential fashion.
Therefore, the performance lunch isn’t free any more. Now is the time to analyse applications to identyfy the CPU-sensitive operations that could benefit from parallel computing.
The aim of this course is to provide an introduction on the architecture of parallel processing systems along with programming paradigms (openMP, MPI and CUDA) essential for exploitng them.
Modalità d'esame
The exam consists of a written test on the key theoretical topics presented in the course, plus the discussion of a project made individually or in a small group (2-3 students).
For 6 credits, the project will consist of the parallelization of a sequential algorithm using openMP and CUDA.
For 9 credits, the project will consist of the parallelization of a sequential algorithm using openMP, MPI+openMP and CUDA.
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/10852/studenti-disabilita-dsa
The written exam will focus on the effective acquisition of theoretical concepts presented in the first part of the course. It will be composed of a quiz with open and closed questions. It represents 40% of the final mark.
The project will be evaluated not only on the basis of the achievable performance of the parallel code, but also on how the code analysis, the adopted parallelization strategies, and the achieved performance have been presented and discussed.
This means, for example, that the parallel concepts are properly used, results are presented in a suitable and meaningful way, and overheads and issues have been correctly identified and discussed. It represents 60% of the final mark.
Testi di riferimento
Slides, tutorials, and code samples provided during the course.
Codice insegnamento 90535
INTERNET OF THINGS
INFO-01/A · 0 file
The teaching unit aims to provide students with a general understanding of learning methods, protocols, architectures, and platforms for the development of distributed and mobile applications for the Internet of…
Scheda dell'insegnamento
Obiettivi formativi
The teaching unit aims to provide students with a general understanding of learning methods, protocols, architectures, and platforms for the development of distributed and mobile applications for the Internet of Things, including machine to machine protocols, distributed algorithms for fault tolerance and replication, service oriented architectures platforms, embedded operating systems, real time and streaming data, geolocation, and collaborative framework
Programma
Internet of Things (IoT) concerns systems where physical devices are connected to the Internet. IoT is central to Computer Science, considering also that global IoT device connections are expected to continue to grow for many years to come. This course is focused on the tasks of designing and implementing IoT systems, covering all their main layers (edge, transport and computing): sensors, actuators, and device programming; IoT protocols; event-driven programming and cloud computing.
Modalità d'esame
Individual programming and virtual lab assignments.
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/11964/studenti-disabilita-dsa
The individual programming assignments aim to evaluate the ability of application of the basic concepts of event-driven programming and learning of the most useful IoT protocols. The evaluation is based on the correctness, efficiency and readability of the code.
The virtual lab assignments have the aim to verify the ability
- to make independent decisions about sensors/actuators and device programming - to use an IoT platform - to integrate new functionalities into an IoT system, starting from informal requirements
The evaluation is based on the correctness, reliability, and scalability of the adopted solutions.
Testi di riferimento
Published on the course web site of the Unige Aulaweb portal.
Codice insegnamento 90524
IT PROJECT MANAGEMENT
INF/01 · 0 file
ITALIAN AS A FOREIGN LANGUAGE - COMP SCI
3 CFU · LIFI-01/A · 0 file
L’insegnamento si propone di fornire ulteriori conoscenze della lingua e della cultura italiana, contribuendo al miglioramento delle competenze iniziali.
Scheda dell'insegnamento
Obiettivi formativi
L’insegnamento si propone di fornire ulteriori conoscenze della lingua e della cultura italiana, contribuendo al miglioramento delle competenze iniziali.
Programma
Il corso, della durata di 16 ore lettive, si propone di sviluppare la competenza comunicativa in lingua italiana privilegiando in particolare le abilità linguistiche ricettive (comprensione scritta e orale) e la competenza metalinguistica.
Modalità d'esame
Esame scritto e orale.
Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/11964/studenti-disabilita-dsa
Esame scritto e orale.
Testi di riferimento
Durante il corso si userà questo manuale:
Fumagalli, L., Rota, D. & Bozzone Costa, R., C. Ghezzi & M. Piantoni (2024), Italiano da zero, Loescher Editore
Si farà riferimento a questo libro di grammatica:
Morano, L. (2024), Alfa Beta Gramma, Nina edizioni
Codice insegnamento 114456
MACHINE LEARNING
INFO-01/A · 0 file
The teaching unit aims for students to acquire knowledge and understanding of learning classical supervised and unsupervised machine learning algorithms, by grasping the underlying computational and modeling issues;…
Scheda dell'insegnamento
Obiettivi formativi
The teaching unit aims for students to acquire knowledge and understanding of learning classical supervised and unsupervised machine learning algorithms, by grasping the underlying computational and modeling issues; learning how to set up a machine learning experiment to effectively learn from data
Programma
The goal of this course is to provide an overview of classical Machine Learning algorithms, discussing modelling and computational aspects.
Modalità d'esame
The exam will be in written form and consist of theoretical questions and more practical exercises. The students will have the possibility of opting for a reduced version of the written exam by submitting two mid-term assignments (consisting of a practical lab activity in Python).
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/11964/studenti-disabilita-dsa
The exam will evaluate the overall understanding of Machine Learning basics, the capability to generalize the concepts to unseen problems and analyse the obtained results. Clarity of exposition, completeness of the concepts, quality of the proposed solutions and critical thinking will be taken into account.
Testi di riferimento
The material will provided by the instructors (slides and papers) and shared on the Aulaweb page of the course.
Codice insegnamento 90498
MACHINE LEARNING AND DEEP LEARNING
ING-INF/05 · 0 file
MINI-COURSES
INFO-01/A · 0 file
The aim of this teaching unit is to provide flexible learning opportunities that allow participants to deepen or broaden their knowledge in specific areas of Computer Science. Participants may select among short teaching…
Scheda dell'insegnamento
Obiettivi formativi
The aim of this teaching unit is to provide flexible learning opportunities that allow participants to deepen or broaden their knowledge in specific areas of Computer Science. Participants may select among short teaching units, seminars, guided projects, workshops, or other academic activities. These activities may be proposed by the degree programme or suggested by participants. All activities must be consistent with the educational objectives of the programme and are subject to approval by the programme board. The teaching unit promotes autonomous learning, interdisciplinary exploration, and engagement with emerging topics and practical applications
Programma
Each course has its own teaching modalities, and may include theory classes, hands on activities, projects. Details will be provided on Aulaweb
Students who hold valid certificates relating to Specific Learning Difficulties (SLD), disabilities or other educational needs are invited to contact the lecturer and the school’s disability liaison officer at the start of the course to agree on any teaching arrangements which, whilst respecting the course objectives, take into account individual learning styles.
The contact details for the university’s disability liaison officer are available at the following link: https://unige.it/commissioni/comitatoperlinclusionedeglistudenticondisabilita.
Modalità d'esame
Each course has its own exam modality. Details will be provided on Aulaweb
Each course has its own assessment modality. Details will be provided on Aulaweb
Testi di riferimento
Lecture notes, slides, and supplementary material made available by the instructor through the AulaWeb platform.
Codice insegnamento 121622
NATURAL LANGUAGE PROCESSING
INF/01 · 0 file
Learning how to process and represent natural language, and becoming familiar with the most relevant approaches and software tools to understand and generate natural language.
Scheda dell'insegnamento
Obiettivi formativi
Learning how to process and represent natural language, and becoming familiar with the most relevant approaches and software tools to understand and generate natural language.
Programma
The Natural Language Processing course provides an introduction to the most challenging issues in processing natural languages, driven by the three layers of syntax, semantics, pragmatics; the most recent applications of natural language processing tools are discussed, including Large Language Models and the design and development of ontologies and of chatbots.
Modalità d'esame
The exam will consist in a written part (traditional open questions, exercises) plus an individual project (requiring about 7 to 10 days to be completed) whose outcomes must be presented in oral form.
The teachers can complement the parts above with an oral exam.
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/10852/studenti-disabilita-dsa
The acquisition of the skills foreseen by this course will be assessed via the written exam + the project which have been carefully designed to allow the teachers to verify whether a student is actually able to design and implement a tool solving some (simplified) NLP problem and to understand, present and discuss in a critical way the most challenging issues raised by its development.
Testi di riferimento
The slides and the further teaching material provided during the course are enough for following it.
Codice insegnamento 90541
NETWORK ANALYSIS
INFO-01/A · 0 file
The aim of the teaching unit is to provide the foundational knowledge of algorithms and techniques for large scale network analysis, including centrality metrics, algorithms for community detection, graph properties…
Scheda dell'insegnamento
Obiettivi formativi
The aim of the teaching unit is to provide the foundational knowledge of algorithms and techniques for large scale network analysis, including centrality metrics, algorithms for community detection, graph properties for random, small-world, and scale free graphs, metrics for robustness and resiliency, epidemic spreading and social contagion.
Programma
Networks are everywhere and they can be represented as graphs. This course will unravel the hidden patterns and dynamics of networks in various domains such as social networks, internet and the web, biological systems, and more. Students will learn the theoretical foundations of network analysis and experience hands-on activities to put into practice what introduced during classes.
Modalità d'esame
The exam consists of the following parts: (i) a written test and (ii) an oral presentation during which students will discuss their assignments.
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/11964/studenti-disabilita-dsa
The written test, which serves as the admission to the assignments discussion, consists of questions related to the topics covered in class and it allows the evaluation of the student's theoretical knowledge acquired during the course. For the oral part, students will be evaluated based on the quality of the produced code and the completeness of the reports. The written test and the assignments discussion take place in the same session.
Testi di riferimento
F. Menczer, S. Fortunato, C. A. Davis: A First Course in Network Science, Cambridge University Press, 2020
D. Easley and J. Kleinberg: Networks, Crowds, and Markets: Reasoning About a Highly Connected World (http://www.cs.cornell.edu/home/kleinber/networks-book/)
A. Barabasi: Network Science (http://barabasilab.neu.edu/networksciencebook/)
Scientific papers will be suggested during the course
Codice insegnamento 90530
PREDICTIVE ANALYTICS PROJECT
INF/01 · 0 file
PRINCIPLES AND PARADIGMS OF PROGRAMMING LANGUAGES
INF/01 · 0 file
SEQUENTIAL PREDICTION AND REINFORCEMENT LEARNING
INF/01 · 0 file
Learning how to use sequential and reinforcement learning algorithms by grasping the underlying computational and modeling issues.
Scheda dell'insegnamento
Obiettivi formativi
Learning how to use sequential and reinforcement learning algorithms by grasping the underlying computational and modeling issues.
Programma
The goal of this course is to provide an overview of Machine Learning algorithms dealing with sequential/dynamic data and agents that can interact with the environment within the reinforcement learning framework.
Modalità d'esame
The exam will be a project and a discussion of the material presented in the course.
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/10852/studenti-disabilita-dsa
The exam will evaluate the overall understanding of course material, the capability to generalize the concepts to unseen problems and analyze the obtained results. Clarity of exposition, completeness of the concepts, quality of the proposed solutions and critical thinking will be taken into account.
Testi di riferimento
The material provided by the instructors (notes, papers, books), see the course Aulaweb page additional references.
Codice insegnamento 114470
SOFTWARE ENGINEERING FOR DATA ANALYTICS
INF/01 · 0 file
SOFTWARE QUALITY AND AUTOMATED TESTING
INFO-01/A · 0 file
The teaching unit aims to provide students with a solid understanding of the fundamentals of software quality and test automation, and to familiarize them with manual and automated tools used to support testing…
Scheda dell'insegnamento
Obiettivi formativi
The teaching unit aims to provide students with a solid understanding of the fundamentals of software quality and test automation, and to familiarize them with manual and automated tools used to support testing practices. Students will be able to: (a) understand the fundamental principles of software quality and their role in modern software engineering; (b) design and apply systematic testing strategies; (c) develop and maintain automated test suites using standard tools and frameworks; (d) apply practices supporting continuous integration; (e) evaluate software systems with respect to quality attributes such as performance, reliability, security, modularity, and usability.
Programma
The teaching unit introduces the fundamentals of software quality and testing practices, with particular attention to test automation, integration into modern software development processes, and security aspects. Students will acquire both theoretical knowledge and practical skills in manual and automated testing techniques, using state-of-the-art tools and frameworks. Software quality is a central element in ensuring reliability, performance, and end-user satisfaction.
Modalità d'esame
The objective of the verification procedure is to quantify, for each student, the level of achievement of the educational objectives. The verification procedure consists of evaluating certain guided laboratories and a written test.
EXAMINATION
The exam consists of the following activities:
· Laboratory activities
· Written test
The course includes laboratory activities to be carried out. For some of these activities, the submission of the work done will be required and evaluated. For others, students' participation will simply be monitored. Alternative activities to be submitted via AulaWeb will be proposed for those (e.g., working students) who are unable to attend laboratory activities.
The written test will consist of multiple-choice questions. The questions will be both theoretical and practical and will focus on the topics/tools covered in class. During the lessons, some examples of possible questions and exercises for each topic will be discussed so that the type of test is clear at the end of the course.
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/11964/studenti-disabilita-dsa
The laboratory activities aim to assess the understanding of the proposed tools and techniques. The written test has the dual objective of verifying the knowledge of the fundamental aspects of the discipline and assessing the students' participation in the guided laboratories.
Testi di riferimento
Web Application Security: Exploitation and Countermeasures for Modern Web Applications by Andrew Hoffman
Web Security Academy - https://portswigger.net/web-security/learning-path
Hands-On Selenium WebDriver with Java by Boni Garcia
Codice insegnamento 121621
SOFTWARE SYSTEMS DESIGN AND MODELLING
INFO-01/A · 0 file
The teaching unit is intended to introduce learning through practical experience the basic conceptual tools for the design and modelling of software systems, and acquiring communication skills and lifelong learning…
Scheda dell'insegnamento
Obiettivi formativi
The teaching unit is intended to introduce learning through practical experience the basic conceptual tools for the design and modelling of software systems, and acquiring communication skills and lifelong learning capabilities
Programma
This course aims to introduce and analyze current techniques for the design and modeling of large-scale software systems. The course will guide students in their application, with a focus on selecting the most appropriate specializations for specific software projects. Autonomous learning of advanced topics will also be encouraged, in line with the principles of lifelong learning.
Modalità d'esame
The exam will consist of three parts:
a project, consisting of the development of the design of a software system
an oral presentation of a recent technical innovation related to the software development
an oral examination and project discussion
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/11964/studenti-disabilita-dsa
The quality of the project delivered will allow the teachers to evaluate the student understanding of the design method and their knowledge of the conceptual tools involved. The oral presentation of innovative technologies will allow the teachers to assess the students' communication skills and their capabilities of self-learning, together with the depth of their technological understanding. The final oral will start with the project discussion to understand the individual contributions to the project and generate related technical questions to better evaluate students' knowledge.
Testi di riferimento
Core Textbook:
Cervantes, H., & Kazman, R. (2016). Designing Software Architectures: A Practical Approach. Addison-Wesley.
Additional Bibliography: Further bibliography and online resources will be indicated and discussed during lectures and made available on the course's AulaWeb page.
Codice insegnamento 101807
SOFTWARE TECHNOLOGIES FOR HUMAN COMPUTER INTERACTION
INFO-01/A · 0 file
The purpose of the teaching unit is for participants to acquire knowledge and understand the concepts of Human-Computer Interaction (HCI) that enable the design of effective systems for user needs, both in terms of…
Scheda dell'insegnamento
Obiettivi formativi
The purpose of the teaching unit is for participants to acquire knowledge and understand the concepts of Human-Computer Interaction (HCI) that enable the design of effective systems for user needs, both in terms of ease of interaction and the naturalness of system usage as a whole. Attendance and active participation in the proposed learning activities, together with individual study, will enable the student to learn the theoretical tools for designing advanced interaction systems, use the theoretical and practical tools for their implementation, and develop the ability to apply the acquired concepts in the context of virtual and augmented reality.
Programma
The course introduces the concepts of Human-Computer Interaction that allow designing effective systems for users' needs both from the point of view of the simplicity of interaction and the naturalness of the use (fundamental aspects in the biomedical field). Programming and computer vision techniques are presented for the realization of advanced interaction systems. Furthermore, interaction evaluation is introduced: design of experimental sessions and data analysis.
Modalità d'esame
Final assignment (optional)
Oral exam on the topics of the course
Details on how to prepare for the exam and the degree of depth of each topic will be given during the lessons. Through the monographic project, the students must demonstrate that they are able to develop simple systems of interaction in virtual and augmented reality environments. The oral exam will verify the actual knowledge of the theoretical topics learned during the semester.
Testi di riferimento
Notes and slides available on AulaWeb.
Specific indications on reference bibliography will be provided by the professors at the beginning of the lectures
Codice insegnamento 84391
SYMBOLIC AND DISTRIBUTED ARTIFICIAL INTELLIGENCE
INF/01 · 0 file
Learning the foundations of symbolic (or "classical") Artificial Intelligence, and the concepts of agent and multiagent system as representatives of the Distributed Artificial Intelligence paradigm. Learn how to design…
Scheda dell'insegnamento
Obiettivi formativi
Learning the foundations of symbolic (or "classical") Artificial Intelligence, and the concepts of agent and multiagent system as representatives of the Distributed Artificial Intelligence paradigm. Learn how to design intelligent autonomous agents and how to deal with the main implementation issues.
Programma
Multiagent systems (MASs) have emerged as one of the most important areas of research and development in information technology and represent one of the most significant contributions of Distributed Artificial Intelligence. A MAS is composed of multiple interacting software components (agents) capable of cooperating to solve problems that are beyond the abilities of any individual member.
This course will introduce the students to the notion of an agent, and will lead them to understanding what an agent is, how they can be constructed, how agents can be made to cooperate effectively.
The adoption of symbolic languages and approaches to model and implement agents will allow students to be exposed to the most significant characteristics of Symbolic Artificial Intelligence in a concrete and constructive way.
Modalità d'esame
The exam will consist in a written part (traditional open questions, exercises), a laboratory part on Prolog (development of exercises) plus an individual project (requiring about 7 to 10 days to be completed) whose outcomes must be presented in oral form.
The teachers can complement the parts above with an oral exam.
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/10852/studenti-disabilita-dsa
The acquisition of the skills foreseen by this course are assessed via the written exam + laboratory + the project which have been carefully designed to allow the teacher to verify whether a student is actually able to: -- understand the notion of an agent, how agents are distinct from other software paradigms (e.g., objects), and understand the characteristics of applications that lend themselves to an agent-oriented solution (written part) -- understand the key issues associated with constructing agents capable of intelligent autonomous action, and the main approaches taken to developing such agents (written part, individual project) -- understand the key issues and approaches to high-level communication in multiagent systems (written part); -- obtain a good command on programming languages for implementing cognitive agents, based on symbolic, declarative approaches (written part, laboratory, individual project) -- understand the main application areas of agent-based solutions (written part, individual project).
Testi di riferimento
The scientific papers at the state of the art, the slides and the further teaching material provided during the course are enough for following it.
Codice insegnamento 90545
TOPICS IN COMPUTER SCIENCE
INF/01 · 0 file
TRUSTWORTHY ARTIFICIAL INTELLIGENCE
ING-INF/05 · 0 file
The aim of this teaching unit is to provide students with fundamental and advanced concepts on the security of machine learning and trustworthy artificial intelligence.
Scheda dell'insegnamento
Obiettivi formativi
The aim of this teaching unit is to provide students with fundamental and advanced concepts on the security of machine learning and trustworthy artificial intelligence.
Programma
Today machine-learning algorithms and AI-based systems are used for many real-world applications, including image recognition, spam filtering, malware detection, biometric recognition. In these applications, the learning algorithm may have to face intelligent and adaptive attackers who can carefully manipulate data to purposely subvert both the learning and the operational phases. Part 1 of the course aims to introduce the fundamentals of the security of machine learning and the related field of adversarial machine learning. Part 2 introduces the international regulations behind the so called “trustworthy AI. The course uses application examples including object recognition in images, biometric recognition, spam filtering, and malware detection.
Modalità d'esame
Intermediate in class assignments or home assignment+oral exam.
Intermediate in class assignments (closed-book solutions of numerical/coding exercises and open-ended/closed questions), or home assignment+oral exam. Grading policy = open/closed questions (15/30) + numerical/coding exercises (15/30)
Students with certification of Specific Learning Disabilities (SLD), disabilities, or other special educational needs must contact the instructor at the beginning of the course to agree on teaching and examination methods that, while respecting the course objectives, take into account individual learning styles and provide appropriate compensatory tools. It is reminded that the request for compensatory/dispensatory measures for exams must be sent to the course instructor, the School representative, and the “Settore servizi per l'inclusione degli studenti con disabilità e con DSA” office ([email protected]) at least 10 working days before the test, as per the guidelines available at the link: https://unige.it/disabilita-dsa
Testi di riferimento
A. Joseph, B. Nelson, B. Rubinstein, D. Tygar, Adversarial machine learning, Cambridge University Press, 2018
B., Battista, F. Roli. Wild patterns: Ten years after the rise of adversarial machine learning. Pattern Recognition 84 (2018): 317-331.
Biggio, B., Corona, I., Maiorca, D., Nelson, B., Srndic, N., Laskov, P., Giacinto, G., Roli, F. Evasion attacks against machine learning at test time. ECML-PKDD, 2013.
Biggio, B., Fumera, G., Roli, F. Security evaluation of pattern classifiers under attack. IEEE Trans. Knowl. Data Eng., 26 (4):984–996, 2014.
All slides used during the lessons and other teaching materials will be available on Aulaweb. In general, the notes taken during the lessons and the material on Aulaweb are sufficient for preparing for the exam.
Codice insegnamento 108606
VIRTUAL, AUGMENTED AND EXTENDED REALITY
INFO-01/A · 0 file
The teaching unit aims to provide students with a general understanding of learning the theoretical and methodological fundamentals of Virtual, Augmented and Extended Reality, from the concepts of 3D Computational Vision…
Scheda dell'insegnamento
Obiettivi formativi
The teaching unit aims to provide students with a general understanding of learning the theoretical and methodological fundamentals of Virtual, Augmented and Extended Reality, from the concepts of 3D Computational Vision to model the real-world world, to the synthesis of the virtual environments, and their fusion
Programma
This course presents the basics of Augmented, Virtual and Extended Reality, considering both the Computer Vision aspects necessary to build knowledge of real environments and the technical elements necessary to develop AR/VR/XR applications. The main software framework for the development of AR/VR/XR applications will be presented, always referring to the theoretical aspects and background
Modalità d'esame
Project (teamwork).
Oral exam.
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/11964/studenti-disabilita-dsa
The project will be evaluated for the correctness and efficiency of the solution, also considering the perceptual aspects and the 3d/visual coherence.
The oral exam will concern the theoretical/algorithmic aspects covered in the course.
Testi di riferimento
Material and references provided by the instructors
Codice insegnamento 108871
VIRTUALIZATION AND CLOUD COMPUTING
ING-INF/05 · 0 file
The purpose of the teaching unit is to introduce Software Platforms as a fundamental module in the software development path, addressing how the development of complex software systems requires not only proficiency in…
Scheda dell'insegnamento
Obiettivi formativi
The purpose of the teaching unit is to introduce Software Platforms as a fundamental module in the software development path, addressing how the development of complex software systems requires not only proficiency in programming but also knowledge of advanced models, paradigms, and tools, and covering the models, paradigms, and tools that support Web Applications, Web Services, and Microservices, as well as the evolution toward serverless computing.
Programma
The course provides the foundations of the main virtualization technologies at the state of the art. In detail, the course focuses on several types of virtualization, like Storage-level, OS-level, Application-level, and Enterprise-level virtualization.
The course is mostly practical, with the aim to teach the student how to deal with current virtualization technologies to build actual virtualized architectures.
Modalità d'esame
Final project with discussion.
Critical discussion and demo of the project, in order to assess the level of understanding and knowledge of the student.
Testi di riferimento
The teacher will provide slides, scientific and technical papers throughout the course.
Codice insegnamento 86800