This feature allows you to view your educational path, if you enrolled in previous years

Curriculum(s) for 2024 - Computer Science (29932)

Single curriculum

1st year

LessonSemesterCFULanguage
Elective course2nd6ITA
New group
New group

2nd year

LessonSemesterCFULanguage
Elective course1st6ITA
AAF1246 | Additional educational activities1st6ITA

Educational objectives

The complementary training activities can be framed in one or more similar or complementary subject areas to the basic or characterizing ones, and may propose interdisciplinary training objectives or in-depth study of contextual cultures.

AAF1034 | FINAL EXAM2nd36ITA

Educational objectives

The final exam consists in the discussion of a master's thesis, consisting of a written document, preferably in English, which presents the results of an original study conducted on an applicative, experimental or research problem.

This will allow the evaluation of the ability to apply the knowledge learned to a specific problem, to make independent decisions and to communicate the methodological and technical aspects of the work done.

New group
New group

Optional groups

The student must acquire 54 CFU from the following exams
LessonYearSemesterCFULanguage
10596281 | Autonomous Networking1st1st6ENG

Educational objectives

General goals: The course will make students aware of the challenges behind the design, implementation and field use of autonomous networking systems. The course will present both the theoretical foundations and practical aspects you need to know to develop such systems.

Specific goals: The combination of many heterogeneous connected devices, including fast moving devices, and advanced communication capabilities that enable real-time interactions is leading to the creation of systems on a scale and/or complexity level that is beyond the ability of humans to fully comprehend and control. Management and operation of these networking systems require an extremely high degree of intelligent automation. Goal of this course is to provide knowledge about the main network-related technologies whose interplay will be responsible for making networking systems autonomous. These technologies, mainly based on reinforcement learning (RL), allow systems react to what is occurring in their environment and respond accordingly.

Knowledge and comprehension: At the end of the course students will have knowledge on the technologies and methodologies to design autonomous networks. Specifically, the course will focus on communication and networking issues of autonomous networks and possible solutions.

Applying knowledge and understanding: The course will provide students the tools to understand when and how learning techniques can be applied to make a system adaptive and autonomous

Critiquing and judgmental skills: Students will acquire the skills to review and analyse the design of autonomous networks.

Communication skills: Students will acquire the skills to analyse and present scientific papers and research directions with proper language.

1041764 | BIG DATA COMPUTING1st1st6ENG

Educational objectives

General goals:
The course is aimed at training students on fundamental algorithmic and programming techniques in big-data computing, tackling a variety of data mining problems on computational models used for managing massive information structures.

Specific goals:
Ability to analyze, model, and solve typical "Big Data" tasks by implementing machine learning pipelines using PySpark over distributed environments.

Knowledge and understanding:
At the end of the course the students will have deep understanding of programming models for distributed data analysis on large clusters of computers, as well as of advanced computational models for processing massive amounts of data (e.g., data streaming, MapReduce-style parallelism, and I/O-efficient algorithms).

Applying knowledge and understanding:
Students will be able to design and analyze algorithms in different big data settings, to write efficient code taking into account architectural features of modern computing platforms (including distributed systems), and to make use of good programming practices and advanced programming frameworks, such as Hadoop.

Critical and judgmental skills:
Students will be able to distinguish the proper settings in which to use different computational paradigms for big data analysis, to evaluate the advantages and disadvantages of each model, and to face challenges arising in the design and implementation of diverse big data applications.

Communication skills:
The students will be able to communicate effectively, summarizing the main ideas in the design of big data systems and algorithms clearly and presenting accurate technical information.

Ability of learning:
The goal for the class is to be broad and to touch upon a variety of techniques, introducing standard practices as well as cutting-edge research topics in this area, making it possible for the students to extend their knowledge independently according to technological changes and evolution.

1041792 | BIOMETRIC SYSTEMS1st1st6ENG

Educational objectives

General goals:
To be able to design and evaluate a biometric or multibiometric system.

Specific goals:
To know the features and basic techniques related to physical biometric identifiers, such as face, fingerprint, iris, etc., and behavioral, such as gait, signature (dynamic), voice, typing mode, etc. Architecture of a biometric system: unimodal systems and multibiometric architectures. To be able to evaluate the performance of a biometric system according to the adopted modality: verification and identification. To be able to evaluate/assure the robustness of a biometric system against spoofing attacks (identity theft).

Knowledge and understanding:
Fundamentals of design of a biometric system and of the techniques to extract/match the specific characteristics for the main biometric traits.

Applying knowledge and understanding:
To be able to design and implement an application for biometric recognition for at least one biometric trait.

Critical and judgmental capabilities:
To be able to assess the performance and robustness of a biometric system to presentation attacks. To be able to transfer techniques and protocols in different contexts.

Communication skills:
To be able to communicate/share the requirements of a biometric system, the most suited modalities for a certain application, and the performance measures of a system.

Capability of autonomous learning:
To be able to autonomously get a deeper insight on the course topics, in relation to either specific/complex techniques and methods, or to biometric traits not covered in the course.

1047617 | COMPUTER NETWORK PERFORMANCE1st1st6ENG

Educational objectives

General goals:
The aim of the course is to study techniques for the performance analysis of existing computer network systems and for the design of high performance computer network systems.

Specific goals:
Discrete and continuous time stochastic processes, queueing networks, monitoring of performance via network tomography, performance analysis of wired and wireless systems.

Knowledge and understanding:
Through this course, students will develop the capability to characterize performance issues in computer networks and to highlight the critical aspects.

Applying knowledge and understanding:
Through this course, students will develop the capability to address network performance problems and propose related solutions by means of analytical tools and performance optimization models.

Critical and judgmental capabilities:
The course will provide students with sufficient tools and methodologies to perform a comparative analysis of different potential solutions to a computer network performance problem.

Communication skills:
Students will be able to motivate the solutions adopted to address a specific network performance problem, and to provide a comparative analysis of the chosen solutions with respect to other potential approaches.

Capability of learning:
Students will develop the capability to autonomously study and search for new solutions and to evaluate new methodologies, technologies and models for the development of high performance computer network systems.

1047622 | CRYPTOGRAPHY1st1st6ENG

Educational objectives

General Objectives:
The goal of the course is to hand down the foundations of cryptography, which is at the heart of security in nowadays digital applications.

Specific Objectives:
The students will learn the methodology of provable security, which allows to prove security of modern cryptosystems in a mathematically sound way.

Knowledge and Understanding:
-) Knowledge of the mathematical foundations of modern cryptography.
-) Knowledge of the main hardness assumptions, on which the security of cryptographic constructions is based.
-) Knowledge of the cryptographic schemes currently used in real life. Understanding of their (practical and theoretical) properties.

Applying knowledge and understanding:
-) How to select the right cryptographic scheme for a given application.
-) How to analyze the security of a given cryptographic scheme.

Critiquing and judgmental skills:
The students will be able to judge whether a given cryptographic scheme is secure or not.

Communication Skills:
How to describe the security of a cryptographic construction in the language of provable security.

Ability of learning:
The students interested in research will learn what are the main open challenges in the area, and will obtain the necessary background for a deeper study of the subjects.

1047624 | DISTRIBUTED SYSTEMS1st1st6ENG

Educational objectives

General goals
The objective of this courseis to cover the fundamentals of distributed systems and their implementation in real large-scale modern systems.

Specific goals
Students will become familiar with analysis, design and monitoring techniques for distributed systems

Knowledge and comprehension
At the end of the course the students will have acquired advanced knowledge on how to monitor a distributed computation, fault tolerance and failure detectors, consistency and consensus on multiple-replicas in data-centres, logical clocks and vector clocks for asynchronous systems,

Applying knowledge and comprehension:
At the end of the course, students will be able to apply the knowledge acquired to the analysis of real systems such as Chord and Amazon.

Critiquing and judgmental skills:
The students will have the know-how to evaluate and analyse the correctness and the efficiency of distributed computations, as well as deeply understand and assess their main characteristics, issues and assets.

Communication skills:
The students will be able to express in a clear and concise but complete way their knowledge regarding the topics of the class.

Learning ability
The topics covered in this course will allow students to exploit the knowledge acquired in order to deeply study and understand current and future distributed solutions, as well as to have the basis to build system design solutions for real systems.

1047627 | FOUNDATIONS OF DATA SCIENCE1st1st6ENG

Educational objectives

General goals:
Acquiring the basics of data science and machine learning.

Specific goals:
To make students aware of the theoretical and practical tools of data science and machine learning, as well as of their intrinsical limitations; to make students able to tackle real problems through the most appropriate tools.

Knowledge and understanding:
The course provides the basic notions, techniques and methodologies employed in data science and machine learning. It gives also the fundamental programming abilities needed to apply the theory to real-world scenarios.

Applying knowledge and understanding:
At the end of the course, students will be able to deal with real-world data science problems, from casting them into a theoretical framework to manipulating the actual data with the right software tools.

Critical and judgmental abilities:
Students will be able to select the techniques to be applied to the case at hand and to evaluate their performance.

Communication skills:
Students will we able to represent and communicate the information extracted from data, through the rational use of graphics and indicators.

Ability of learning:
Students will be able to learn autonomously both the theory and the practice of the field.

1047638 | MODELS OF COMPUTATION1st1st6ENG

Educational objectives

General goals:
The course is aimed at the acquisition of mathematical knowledge related to fundamental aspects of functional and imperative programming languages ​​with particular attention to the execution mechanisms of programs.

Specific goals:

Knowledge and understanding:
At the end of the course students will have full understanding of the proposed mathematical tools.

Ability to apply knowledge and understanding:
Students will be able to deepen the study independently by consulting manuals or scientific publications.

Critical and judgmental skills:
The acquired knowledge will allow students to identify and compare the proposed topics in the use of programming languages, in particular in the workplace.

Ability to communicate what has been learned:
Studenta are stimulated to report and communicate their experiences to colleagues.

Continue the study independently in the course of life:
The course deals with fundamental aspects of programming, ensuring students the possibility of identifying them autonomously in the use of each particular language.

1047642 | SECURITY IN SOFTWARE APPLICATIONS1st1st6ENG

Educational objectives

General Objectives

The basics of security in software programs

Specific Objectives

Methodology and tools to find and remove the most common software vulnerabilities, and to develop software free of security flaws

Knowledge and Comprehension

Learning the most effective techniques to remove vulnerabilities from code and to develop software satisfying specific security policies

Ability to apply Knowledge and Comprehension

The student is able to transfer the knowledge on the methodologies to the selection of the appropriate techniques and tools to remedy to the presence of vulnerabilities.

Authonomy of judgement

The student learns to analyze the problem and to identify the proper methodologies and tools to solve problems of software security

Ability to Communicate

The student is able to communicate successfully and to defend the choices made in the selection of the appropriate methodologies and tools.

Ability to Learn

The student is able to continue the learning process in authonomy to comprehend new methodologies and the applicability of new tools.

10589621 | Advanced Machine Learning1st1st6ENG

Educational objectives

General goals:
The course will present to students advanced and most recent concepts of machine learning and their application in computer vision via deep neural network (DNN) models. It will include theory and practical coding, as well as a final hands-on project. Towards the coding assignments and the final project, the students will work in teams and present their ideas and project outcome to the class.

Specific goals:
The first part of the course includes delving into state-of-the-art DNN models for classification and regression applied to detection (where the objects are in the image), pose estimation (whether people stand, sit or crunch) and re-identification (estimating a unique vector representation for each person). The course further discusses DNNs for multi-task objectives (joint detection, pose estimation, re-identification, segmentation, depth estimation etc). This first part would include DNNs which apply to video sequences, by leveraging memory (e.g. LSTMs) or attention (Transformers).
The second part of the course delves into models, training techniques and data manipulation for generalization, domain adaptation and meta-learning. Further to transfer learning (how pre-trained models may be deployed for other tasks), it discusses multi-modal (with different sensor modalities such as depth or thermal cameras) and self-supervision (e.g. training the DNN model by solving jigsaw puzzles) to auto-annotate large amounts of data. Finally, it presents domain adaptation (e.g. apply daytime-detectors for night vision) and meta-learning, a most recent framework to learn how to learn a task, e.g. online or from little available data.

Knowledge and understanding
At the end of the course students will be familiar with state-of-the-art DNN models for multiple tasks and multi-task objectives, as well as generalization and the effective use of labelled and unlabelled data for learning, self-supervision and meta-learning.

Apply knowledge and understanding:
At the end of the course students will have become familiar with the most recent advances in machine learning across a variety of tasks, their adaptation to novel domains and the continual self-learning of algorithms. They will be able to explain the algorithms and choose the most appropriate techniques for a given problem. They will be able to experiment with existing implementations and design and write programs for new solutions for a given task or problem in the two fields.

Critiquing and judgmental skills
Students will be able to analyse a problem or task and identify the most suitable methodologies and techniques to apply in terms of the effective resolution of the problem (accuracy) and its feasibility, including the efficiency, the required amount of data and annotation. Further to class discussions, critiquing and judgemental skills would be the result of assignments, a course project and a final project report.

Communication skills
Students will acquire the ability to expose their knowledge in a clear and organized way, which will be verified through a final project presentation and its discussion.
Students will be able to express their solutions rigorously and to explain the structure of the code they have written.

Learning ability
The acquired knowledge will enable students to face the study of other problems in machine learning and computer vision. Learning ability would result from the chosen lecture topics, covering broad areas in advanced machine learning, as well as from the final project, for which students would deep dive into a new topic, beyond the thought material.

10600495 | AUTOMATIC VERIFICATION OF INTELLIGENT SYSTEMS1st1st6ITA

Educational objectives

General goals:
The course aims at presenting advanced methods and software tools for modelling, design, verification and validation of intelligent systems.

Specific goals:
The course aims at making students proficient in the comprehension and application of advanced modelling, design, verificaton and validation techniques for intelligent systems.

Knowledge and understanding:
A wide-spectrum introduction to advanced principles of modelling, analisys and design of intelligent systems.

Applying knowledge and understanding:
The successful student will be able to exploit the portfolio of techniques and the different approaches shown in the course for the modelling, design, verificaton and validation of intelligent systems.

Critical and judgmental skills:
Students will be able to take autonomous and rational decisions on the most effective methods and software tools to employ for the modelling, design, verification and validation of intelligent systems.

Communication skills:
Students will be able to interact proficiently with domain experts on a wide set of topics concerning modelling, design, verification and validation of intelligent systems.

Learning ability:
Students will be able to extend their skills in the subjects of this course, by the autonomous reading of relevant scientific literature.

10600490 | Blockchain and distributed ledger technologies1st1st6ITA

Educational objectives

General goals:
Blockchains emerged as a novel, game-changing paradigm for the distributed management of transactional systems. A blockchain is a protocol for the management of distributed ledgers, that is for the decentralised storage of a tamper-proof sequence of transactions (ledger), maintained and verified by the nodes participating in the network. A combination of peer-to-peer networks, consensus-making, cryptography, and market mechanisms is at the core of blockchains, which ensure data integrity and transparency thereby. An increasing number of blockchain platforms provides support for so-called smart contracts, that is, executable code expressing how business is to be conducted among contracting parties (e.g., transfer digital assets after a condition is fulfilled). The design of a secure, verifiable and efficient blockchain-based application requires the capability of properly architecting the behavioural structures amid the involved parties. The course covers in details the principles and technologies underpinning blockchain platforms and the properties they guarantee, on one hand, and is aimed at providing the means for the creation and analysis of blockchain-based solutions and applications, on the other hand.

Specific goals:
The course revolves around four main topics: 1) fundamentals of blockchains and distributed ledger technologies; 2) smart contracts programming; 3) development of a full-stack blockchain-based application; 4) assessment and analysis of a blockchain-based application.

Knowledge and understanding:
Students will learn the basics of blockchain technologies and the interplay of the underlying techniques that lead to the immutability, persistency, security and eventual consistency of the blockchain platforms. Furthermore, they will learn how to encode smart contracts and, thereupon, create full-stack Decentralised Applications (DApps). To properly design DApps and the token systems they rely upon, learners will apply the principles of process behaviour modelling and execution. To that end, an overview of cybersecurity challenges, as well as legal and privacy aspects, will also be provided.

Application of knowledge and understanding:
At the end of the course, students will have gained a better understanding of the fundamental pillars of distributed ledger technologies and blockchains. Also, they will have the ability to design and implement blockchain-based systems. Furthermore, they will produce reports in a manner that provides the most value to the stakeholders of decentralised applications.

Critical and judgmental skills:
Learners will develop the ability to assess the quality of decentralized applications and blockchain-based solutions at large from the perspectives of reliability, behavioural soundness, execution cost, on-chain and off-chain load balance, applicability, cybersecurity, and privacy.

Communication skills:
Students will learn how to document their choices, including through the use of diagramming and reporting tools. They will also have acquired the ability to prepare presentations on scientific subjects.

Learning ability:
The notions acquired during the course will provide students with solid knowledge in order to further investigate the most advanced technical aspects and to keep themselves informed about the continuous developments and updates of blockchain and distributed ledger technologies.

1047616 | COMPUTATIONAL COMPLEXITY1st1st6ENG

Educational objectives

General goals:
This represents a basic course about the Theory of Computational Complexity

Specific goals:
- Theoretical model of resource running time
- Theoretical model of resource memory occupation
- Time and Space complexity classes
- The P = NP problem
- Unfeasible problems when resources are bounded
- Computational Classes L, P, NP, PSPACE, BPP, #P, IP,
- Main Results
- Boolean Circuit and functions

Knowledge and understanding:
The student will acquire:
1. The ability to verify reduction and completeness properties between computational problems.
2. Knowledge of the main theorems in the field of Complexity Theory
3. Capabilities of mathematical reasoning on the computational nature of computational resources like running-time, memory occupation, randomness

Applying knowledge and understanding:
The knowledge acquired is basic and foundational in fields like Software Verification, Game Theory, Analysis of Algorithms

Critical and judgmental skills:
Enabling autonomous thinking in students by deepening their ability of mathematical reasoning through the development of discrete math techniques and functional analysis abilities.

Communication skills:
Developing students' ability to communicate advanced results in the field of Theoretical computer Science

Ability of learning:
Knowledge about Computational Complexity is necessary to evaluate the computational viability of the solution of any computational problem arising in the real world. Its knowledge is hence fundamental and basic in many Computer Science disciplines like Cryptography, Verification, Artificial Intelligence, Game Theory.

1047618 | COMPUTER VISION1st1st6ENG

Educational objectives

General goals:
The course aims at introducing students to a wide-spectrum presentation of Computer Vision.

Specific goals:
The course aims at providing the basic principles, methodologies and algorithms used for the design and application of computer vision systems

Knowledge and understanding:
Introductions of the fundamental principles and different areas of Computer Vision and knowledge on problem solving such as feature extraction, tracking, scene analysis, object recognition, event analysis, emotion analysis.

Applying knowledge and understanding:
The successful student will be able to exploit the portfolio of techniques and the different approaches shown in the course for the design and the successful implementation of vision systems.

Critical and judgmental abilities
Students will learn techniques that have proven to be useful by first-hand experience and a wide range of mathematical methods in the design of vision system.

Communication skills:
Students will be able to interact proficiently with other Computer Vision researchers on a wide set of AI topics.

Learning abilities:
Students will be able to extend their skills in the subjects of this course, by the autonomous reading of the scientific literature on Computer Vision.

1047640 | NETWORK ALGORITHMS1st1st6ENG

Educational objectives

General objectives
Acquire knowledge on the design of complex algorithms to solve graph problems that model problems inherent in networks (wired, wireless and of sensors).

Specific goals
Knowledge and understanding
At the end of the course students will know the basic methodologies for the analysis of problems related to networks and the identification of graph problems that are closer; they will also know the algorithms for solving some of the main problems on graphs.

Apply knowledge and understanding:
At the end of the course students will have become familiar with the analysis of problems related to networks. They will be able to recognize which is the graph problem that is closer and - reworking existing ones - to design new data structures and related algorithms to solve the starting problem.

Critical and judgmental skills
Students will be able to analyze the quality of a network algorithm, both from the effective resolution of the problem and from the time complexity point of views.

Communication skills
Students will acquire the ability to expose their knowledge in a clear and organized way, which will be verified through the oral examination.

Learning ability
Once the cycle of studies is completed, the acquired knowledge will allow students to face real problems in a critical and effective way and to design efficient solutions.

10607006 | FORMAL METHODS FOR AI-BASED SYSTEMS ENGINEERING1st2nd6ENG

Educational objectives

General goals:
The course is aimed to the acquisition of logical and modelling knowledge for systems engineering based on artificial intelligence (AI).

Specific goals:
Students will acquire knowledge on a wide portfolio of formal methods for AI-based systems engineering, in particular approaches to the formal verification and design optimization of complex systems.

Knowledge and understanding:
At the end of the course, students will have full understanding of the presented methods and software tools.

Apply knowledge and understanding:
Students will be able to use the methods and software tools presented in the course, but also to deepen the study independently by consulting other texts on the subject, including the available scientific literature.

Critical and judgmental skills:
The acquired knowledge will allow students to properly tackle the systems engineering tasks they will be involved in during their working carrier.

Communication skills:
Students will be stimulated to expose and communicate their experience to their peers and to the instructors.

Ability to continue the study:
The course will deal with only some of the available methodologies and technologies, but will provide students with awareness of the existence of a wide range of alternative options. This will make students able to critically choose the most suitable methodologies and technologies for their AI-based systems engineering tasks.

1047614 | ADVANCED SOFTWARE ENGINEERING1st2nd6ENG

Educational objectives

General goals:
The course aims at presenting a formal method approach, typically based on model transformations, for the development of medium complexity software systems (typically Enterprise applications).

Specific goals:
The course will form students on:

1. Foundations of metamodeling
2. Fundamental of model transformations
3. Domain specific languages
4. Software architectures

Knowledge and understanding
The student will learn fundamental notions for platform-independent modelling starting from specification of requirements, and how to use transformation tools to get to implementations of (partial) code satisfying the requirements, as well as on software architectures.

Applying knowledge and understanding
The student will be able to use some of the most popular languages and tools in the field of systems modeling and model transformation, and use them to develop applications at various levels of complexity.

Critical and judgmental skills:
Students will develop the analytical skills necessary to evaluate various alternatives in the field of system modeling, in particular regarding domain modeling and assessment of architectural requirements.

Communication skills:
Students will learn to document their choices, also through the use of documentation generation tools, exploiting in particular diagrammatic notations.

Learning ability:
The mastery of the concepts of formal model and model transformation, as well as the familiarity with software development environments that integrate these concepts, will allow students to continue exploring and learning languages and approaches based on these concepts.

1047205 | CLOUD COMPUTING1st2nd6ENG

Educational objectives

General Objectives
Cloud computing has entered the mainstream of information technology, providing highly elastic scalability in delivery of enterprise applications. \
At the end of the course students will have the tools to understand the impact of using Cloud services in a business environment and the technological implications of developing Cloud applications in practice, especially for storing and processing large data sets.

Specific Objectives:
At the end of the course, the students will have the tools to:
- use system and application virtualization technologies
- use IaaS and PaaS technologies
- design virtualized architecture
- deploy cloud applications
- assess cost and performance of cloud-based systems

Knowledge and Understanding
At the end of the course, the students have acquired the knowledge about drivers of cloud computing, virtualization technologies, cloud architectures (autoscaling, load balancing, monitoring, high availability), cloud storage
At the end of the course, the students will be capable to understand the working principle of cloud-based solutions (design and operation) and to understand applied research problems related to cloud based solutions.g
Applyinf Knowledge and Understanding:
At the end of the course the student will be capable to
- explain the principle of cloud computing
- explain the main cloud technologies
- solve problems that require the use of cloud technologies and the design and deployment of virtualized architectures and cloud applications
- assess the performance and costs of cloud-based solutions

Critiquing and judgmental skills:
In the course the student will develop critical thinking skill in the field of cloud computing

Communication Skills:
At the end of the course the student will be capable to communicate the notions learned to practitioner and managers.

Learning abilityAfter the course the students will have the acquired knowledge to read advanced course on cloud computing and big data technologies.

10593236 | Deep Learning and Applied Artificial Intelligence 1st2nd6ENG

Educational objectives

General goals:
Familiarity with advanced machine learning techniques, both supervised and unsupervised; modeling skills of complex problems using deep learning techniques, and their application to diverse applicative settings.

Specific goals:
Topics include: deep neural networks, their training and the interpretation of results; convolutional networks and prominent architectures; theory of deep learning and convergence; programming frameworks for implementing advanced machine learning techniques; autoencoders; adversarial attacks.

Knowledge and understanding:
How neural networks work and their mathematical interpretation as universal approximators. Understanding the limits and potentials of advanced machine learning models.

Applying knowledge and understanding:
Design, implementation, deployment and analysis of deep learning architectures addressing complex problems in several applicative areas.

Critical and judgmental abilities:
To be able to evaluate the performance of different architectures, and to assess their generalization capabilities.

Communication skills:
To be able to communicate clearly how to formulate an advanced machine learning problem as well as its implementation, its applicability in realistic settings, and specific architectural and regularization choices.

Ability to learn:
Understanding alternative and more complex techniques such as generative models based on optimal transportation, scattering transforms and the energetic profile of neural networks. To be able to implement existing techniques efficiently, robustly and reliably.

1047630 | HUMAN COMPUTER INTERACTION ON THE WEB1st2nd6ENG

Educational objectives

General objectives
Information systems course analyses types of info systems and how they can contribute to firm’s business objectives success; the course allows to understand approaches and models to evaluate quality of ICT process , software and ICT services, and It gives basic knowledges to plan, manage, control IT projects.

Specific objectives

• Knowledge and understanding
– functional model and info structure of business processes
– integration needs and control requirements of business computer systems data
– systems and technologies to develop&maintain a successful e-business
– main application areas of info systems in various industries
– ICT organization and ICT quality models
– basic knowledge on context, techniques/methodologies and soft skills for project management in ICT

• Applying Knolewdge and understanding (Capabilities)
– To analyze the multi-faceted requirements elicited from different user categories (stakeholder) of info systems
– To select the proper approach/model to evaluate quality of ICT processes, software product and ICT services
– To develop feasibility study selecting proper application and technological architectures
– To prepare, for a simple ICT project, a development plan according to usual constraints on vtime, cost, quality and to design appropriate organization
– To control an ongoing ICT project, applying basic project management techniques
– To understand and appreciate the lessons learned in previous projects

Critical and judgment skills
Students, through tests and case studies, will acquire capabilities on how select type of information systems, how to use proper quality management model and how plan and manage ICT projects.

Communication skills
Students, grouped in teams, will be involved in activities aimed to make a project communication plan based on given case study that they will show at colleagues explaining the reasons of solutions adopted.

Learning skills
Learning skills will be stimulated through a feasibility study aimed at defining:
[a] functional requirements of proper type of information system,
[b] technical and quality requirements, and
[c] project management plan to implement information system.

1047634 | INTERNET OF THINGS1st2nd6ENG

Educational objectives

General objectives:
The course will provide students with both theoretical and practical background on wireless and Internet of Things systems. The course includes a hands-on lab.

Specific objectives:
The course will provide students with both theoretical and practical background on wireless and Internet of Things systems. The unique challenges of such systems will be introduced, explaining why they require special design choices with respect to wired networks.
The student will be able to reason on what are the right design choices to increase efficiency, reliability, and energy efficiency, creating the background for being able to design future generation sensing and IoT systems.
He/she will also have the possibility to have hands-on experience in programming IoT devices in a lab.

Course summary:
-Introduction to Wireless Systems
- Cellular networks, Ad Hoc Networking, Internet of Things (Architecture, Protocols)
- Sensing systems basics: MAC protocols, routing protocols, localization, and synchronization
-Towards the Internet of Things: features, standards, open challenges, low power IoT radio technologies
-Trends in Internet of Things research. This part will cover ongoing research issues related to future generation IoT systems. It will be based on research papers and may be subject to revision during the class based on students' interests and emerging topics. The following topics are expected to be addressed:
- Integration between IoT and robotic networks.
- Lab: IoT systems programming

Knowledge and understanding:
At the end of the course, the students will have acquired knowledge about the performance trade-offs associated with different system design choices and will be able to read and understand technical documents on wireless and IoT systems.
At the end of the course, the students will be able to analyze standards and technical documents, understanding and implementing them. He/she will have practical hands-on experience in the programming and performance evaluation of such systems.

Application of knowledge and understanding:
The students will be able to provide solutions for new generations of wireless and IoT systems.

Judgment skills:
Students will develop the analytical skills necessary to evaluate various alternatives for the design of wireless and IoT systems selecting the best alternative for a
specific application scenario.

Communication skills:
Students will learn to present, in a synthetic and accurate way, using an adequate technical language, ideas, solutions, and research results on wireless and IoT systems.

Learning ability:
The course will provide students with both theoretical and practical background on wireless and Internet of Things systems, so as to enable them to pursue the exploration of these topics.

1047636 | MATHEMATICAL LOGIC FOR COMPUTER SCIENCE1st2nd6ENG

Educational objectives

General Objectives:
The objective of the course is to introduce students to the fundamental results and methods of Mathematical Logic with a special attention to their applications in Computer Science.

Specific Objectives:
The specific objective of the course is twofold.
In the first place the course is meant to offer a rigorous knoweldge and an ability to apply those methods and results of Mathematical Logic that have numerous applications in many areas of Computer Science. In the second place the aim is to endow the student with a set of fundamental tools in the perspective of doing active research in theoretical Computer Science.

Knowledge and Understanding:
The course aims at endowing the student with a rigorous in-depth knowledge of the course topics through the study of poofs and the production of rigorous arguments in homework assignments. Particular attention is devoted to conceptual motivation, rigorous proofs and applicability of results and methods.

Applying knowledge and understanding:
The methods of Mathematical Logic play a fundamental role in many areas of Computer Science such as Complexity Theory, Database Theory, Artifical Intelligence. The aim of the course is to stimulate in the student the ability to apply the methods and the results in various contexts of Computer Science.

Autonomy of judgement:
Active participation to the course is encouraged. Autonomous judgement is exercised through homework assignments and problem-solving tasks.

Communication skills:
The student has the option to give a class presentation of a result as final exam in the form of an academic scientific talk.

Future learning abilities:
The methods of analysis and formalization acquired during the course can be fruitfully applied in many different contexts. The formalization and problem-solving exercise offered during the course strengthens the learning abilities and the capacity of acquiring new skills.

1038141 | NATURAL LANGUAGE PROCESSING1st2nd6ENG

Educational objectives

General goals:
The fundamentals of Natural Language Processing.

Specific goals:
Natural Language Processing at the morphological, part-of-speech tagging, syntax, semantic and pragmatic levels. Machine translation.

Knowledge and understanding:
Knowledge and understanding of algorithmic and machine learning techniques for Natural Language Processing.

Applying knowledge and understanding:
Ability to apply Natural Language Processing techniques through homeworks and a project.

Critical and judgmental abilities:
Ability to understand and identify effective solutions to Natural Language Processing problems.

Communication skills:
Ability to illustrate the project developed by the student.

Learning ability:
Ability to learn and apply new techniques in NLP based either on those illustrated within the course or on innovative approaches.

10589555 | Practical Network Defense1st2nd6ENG

Educational objectives

General objectives:
The course explains the fundamentals of the methods and tools for the protection of computer networks. Particular attention is paid to the practical applicati n of the concepts learned.

Knowledge and understanding:
List commonly-seen threats arising from the use of particular protocols in networked computer systems. Explain mechanisms commonly used by intruders and designers of malware in order to compromise a computer system's security. Explain the basic mechanisms used for the detection of intrusion attempts in computer systems.

Applying knowledge and understanding:
At the end of the course students will be able to monitor traffic in networks, apply a security policy, perform a network scan and search for vulnerabilities in a computer network. Students will develop the ability to select the appropriate firewall rules to protect a network, select the most appropriate mechanisms to protect a networked computer system and to make the most appropriate design choices to implement a "defense in depth" strategy , using
isolated networks and dedicated tools (VPN, proxy and firewall).

Critiquing and judgmental skills:
Students will develop the analytical skills necessary to evaluate different alternatives during the design process of a computer network, with particular reference to the evaluation of the architectural choices and related risks and to the security objectives that the system wants to pursue.

Communication skills:
Students will learn how to document their choices, also through the use of automated reporting tools. They will also have acquired the ability to prepare presentations related to specific scientific topics.

Learning ability:
The concepts acquired during the course will provide students with a solid knowledge base in order to further deepen the more technical aspects, explore the alternatives not dealt with for time reasons and to autonomously keep themselves informed on the continuous developments and updates of network security and protection.

1047613 | ADVANCED ALGORITHMS1st2nd6ENG

Educational objectives

General goals:
This class will present algorithms and data structures for solving complex problems.

Specific goals:
Applying knowledge and understanding:
Students will acquire the ability of detecting the mathematical properties of problems, and of determining which techniques should be used to solve it.

Critical and judgmental abilities:
Students will be able to determine which approaches can be used to solve a variety of algorithmic problems.

Communication skills:
Students will be able to present algorithmic ideas, and to explain properties of various algorithmic problems.

Ability of learning:
Students will be able to think algorithmically.

10612318 | ADVANCED ARCHITECTURES1st2nd6ITA
1047619 | CONCURRENT SYSTEMS1st2nd6ENG

Educational objectives

General goals:
Understanding the basic concepts of concurrent systems and the methodologies used for solving the problems they yield

Specific goals:
Mutual exclusion, different liveness properties, semaphores, monitors, transactions, mutex-free concurrency, other liveness properties, universal object and consensus. Labelled transitions systems, interleaving semantics, synchronization, simulation and bisimulation, verification techniques, name passing, type systems.

Knowledge and comprehension:
Understanding the basic issues of concurrent systems and their possible solutions, the foundational principles of a concurrent programming language and the possible verification techniques.

Applying knowledge and comprehension:
ability of solving basic problems of simple concurrent systems

Capabilities of critiquing and assessing:
understanding advantages and disadvantages of the different possible solutions of problems in concurrent systems

Communication skills:
developing a technical and formal language, able to explain the proposed solutions and their relative merits

Learning skills:
ability in understanding complex programming scenarios and the relative solutions, even complex

1047623 | DATA AND NETWORK SECURITY1st2nd6ENG

Educational objectives

General objectives
The purpose of the course "Data and Network Security" is to present the most up-to-date issues and solutions in the cybersecurity field which is rapidly evolving.

Specific objectives
A first objective is to introduce the main concepts of computer security which include: Identification and authentication, Viruses, trojans and covered channels, Analysis of the most widespread attacks, Security of the operating system, Security of communications.
A second objective is to describe the main research problems in the field. For example, those falling into areas that include the following: Anonymous communications, Blockchain security, Cloud security, Framing Attacks, Location privacy, Security in automatic learning, Social network security, Software-Defined network security.

Knowledge and understanding
Students will learn about the basics of cybersecurity in operating systems, wired/wireless networks, data management, and the main research issues in these areas.

Application of knowledge and understanding
At the end of the course, students will be able to design the architecture of a secure information system, and be able to follow the future evolution of the cybersecurity field.

Judgment skills
Students will develop the analytical skills necessary to assess different alternatives during the process of designing secure information systems.

Communication capacity
Students will learn how to document their choices, including through the use of automated reporting tools. They will also have acquired the ability to prepare presentations on scientific subjects.

Ability to continue learning in an autonomous way
The notions acquired during the course provide students with the necessary basis for more in-depth studies on the subject and to keep abreast of developments in the cybersecurity field.

1047629 | GRAPH THEORY1st2nd6ENG

Educational objectives

General goals: The student will obtain a broad understanding of the classic results in graph theory as well as an introduction to the primary areas of research in modern graph theory.
Specific goals: Fundamental topics which the student will know after the course include: trees and spanning trees in graphs; connectivity in graphs; Hamiltonian cycles and sufficient conditions for their existence. Menger’s theorem and max flow/min cut in graphs. Matching theory in graphs including Konig, Hall, and Tutte’s theorems. Extremal graph theory and Turan’s theorem and Ramsey theory. Planar graphs and graph coloring.
Knowledge and understanding: The student will obtain mastery of basic techniques in mathematical proofs and a familiarity with more advanced techniques. The student will acquire knowledge of the fundamental results in the area and how they are proven.
Applying knowledge and understanding: The student will learn how to apply mathematical induction in a range of contexts and resolve basic questions in graph theory.
Critical and judgmental skills: The student will acquire the critical judgement skills to understand which proof techniques can be applied in which instances, and determine what are the significant open questions in the area.
Communication skills: The student will develop the ability to present written rigorous mathematical proofs.
Learning ability: Upon completing the course of study, the student will have the necessary tools to read research papers in graph theory and understand the techniques found there. The student will have the tools to begin research projects in graph theory.

1047639 | MULTIMODAL INTERACTION1st2nd6ENG

Educational objectives

General objectives:
To be able to design and evaluate a multimodal system.

Specific objectives:
To know the features and basic techniques related to the different human-computer communication channels: gestures, speech, etc. To know the cooperation modes among the different channels: to be able to design/implement fusion/fission of information on different channels.

Knowledge and comprehension
Theoretical fundamentals of communication over different channels. Fundamentals of design of a multimodal system.

Applying knowledge and comprehension
To be able to design and implement a multimodal application.

Capabilities of critiquing and assessing:
To be able to assess the performance and robustness of a multimodal application.

Communication skills:
To be able to communicate/share the requirements of a multimodal system, the most suited modalities for a certain application, and the performance measures of a system.

Learning capability:
To be able to autonomously get a deeper insight on the course topics, in relation to either specific/complex techniques and methods.

The student must acquire 12 CFU from the following exams
LessonYearSemesterCFULanguage
10596281 | Autonomous Networking1st1st6ENG

Educational objectives

General goals: The course will make students aware of the challenges behind the design, implementation and field use of autonomous networking systems. The course will present both the theoretical foundations and practical aspects you need to know to develop such systems.

Specific goals: The combination of many heterogeneous connected devices, including fast moving devices, and advanced communication capabilities that enable real-time interactions is leading to the creation of systems on a scale and/or complexity level that is beyond the ability of humans to fully comprehend and control. Management and operation of these networking systems require an extremely high degree of intelligent automation. Goal of this course is to provide knowledge about the main network-related technologies whose interplay will be responsible for making networking systems autonomous. These technologies, mainly based on reinforcement learning (RL), allow systems react to what is occurring in their environment and respond accordingly.

Knowledge and comprehension: At the end of the course students will have knowledge on the technologies and methodologies to design autonomous networks. Specifically, the course will focus on communication and networking issues of autonomous networks and possible solutions.

Applying knowledge and understanding: The course will provide students the tools to understand when and how learning techniques can be applied to make a system adaptive and autonomous

Critiquing and judgmental skills: Students will acquire the skills to review and analyse the design of autonomous networks.

Communication skills: Students will acquire the skills to analyse and present scientific papers and research directions with proper language.

1041764 | BIG DATA COMPUTING1st1st6ENG

Educational objectives

General goals:
The course is aimed at training students on fundamental algorithmic and programming techniques in big-data computing, tackling a variety of data mining problems on computational models used for managing massive information structures.

Specific goals:
Ability to analyze, model, and solve typical "Big Data" tasks by implementing machine learning pipelines using PySpark over distributed environments.

Knowledge and understanding:
At the end of the course the students will have deep understanding of programming models for distributed data analysis on large clusters of computers, as well as of advanced computational models for processing massive amounts of data (e.g., data streaming, MapReduce-style parallelism, and I/O-efficient algorithms).

Applying knowledge and understanding:
Students will be able to design and analyze algorithms in different big data settings, to write efficient code taking into account architectural features of modern computing platforms (including distributed systems), and to make use of good programming practices and advanced programming frameworks, such as Hadoop.

Critical and judgmental skills:
Students will be able to distinguish the proper settings in which to use different computational paradigms for big data analysis, to evaluate the advantages and disadvantages of each model, and to face challenges arising in the design and implementation of diverse big data applications.

Communication skills:
The students will be able to communicate effectively, summarizing the main ideas in the design of big data systems and algorithms clearly and presenting accurate technical information.

Ability of learning:
The goal for the class is to be broad and to touch upon a variety of techniques, introducing standard practices as well as cutting-edge research topics in this area, making it possible for the students to extend their knowledge independently according to technological changes and evolution.

1041792 | BIOMETRIC SYSTEMS1st1st6ENG

Educational objectives

General goals:
To be able to design and evaluate a biometric or multibiometric system.

Specific goals:
To know the features and basic techniques related to physical biometric identifiers, such as face, fingerprint, iris, etc., and behavioral, such as gait, signature (dynamic), voice, typing mode, etc. Architecture of a biometric system: unimodal systems and multibiometric architectures. To be able to evaluate the performance of a biometric system according to the adopted modality: verification and identification. To be able to evaluate/assure the robustness of a biometric system against spoofing attacks (identity theft).

Knowledge and understanding:
Fundamentals of design of a biometric system and of the techniques to extract/match the specific characteristics for the main biometric traits.

Applying knowledge and understanding:
To be able to design and implement an application for biometric recognition for at least one biometric trait.

Critical and judgmental capabilities:
To be able to assess the performance and robustness of a biometric system to presentation attacks. To be able to transfer techniques and protocols in different contexts.

Communication skills:
To be able to communicate/share the requirements of a biometric system, the most suited modalities for a certain application, and the performance measures of a system.

Capability of autonomous learning:
To be able to autonomously get a deeper insight on the course topics, in relation to either specific/complex techniques and methods, or to biometric traits not covered in the course.

1047617 | COMPUTER NETWORK PERFORMANCE1st1st6ENG

Educational objectives

General goals:
The aim of the course is to study techniques for the performance analysis of existing computer network systems and for the design of high performance computer network systems.

Specific goals:
Discrete and continuous time stochastic processes, queueing networks, monitoring of performance via network tomography, performance analysis of wired and wireless systems.

Knowledge and understanding:
Through this course, students will develop the capability to characterize performance issues in computer networks and to highlight the critical aspects.

Applying knowledge and understanding:
Through this course, students will develop the capability to address network performance problems and propose related solutions by means of analytical tools and performance optimization models.

Critical and judgmental capabilities:
The course will provide students with sufficient tools and methodologies to perform a comparative analysis of different potential solutions to a computer network performance problem.

Communication skills:
Students will be able to motivate the solutions adopted to address a specific network performance problem, and to provide a comparative analysis of the chosen solutions with respect to other potential approaches.

Capability of learning:
Students will develop the capability to autonomously study and search for new solutions and to evaluate new methodologies, technologies and models for the development of high performance computer network systems.

1047622 | CRYPTOGRAPHY1st1st6ENG

Educational objectives

General Objectives:
The goal of the course is to hand down the foundations of cryptography, which is at the heart of security in nowadays digital applications.

Specific Objectives:
The students will learn the methodology of provable security, which allows to prove security of modern cryptosystems in a mathematically sound way.

Knowledge and Understanding:
-) Knowledge of the mathematical foundations of modern cryptography.
-) Knowledge of the main hardness assumptions, on which the security of cryptographic constructions is based.
-) Knowledge of the cryptographic schemes currently used in real life. Understanding of their (practical and theoretical) properties.

Applying knowledge and understanding:
-) How to select the right cryptographic scheme for a given application.
-) How to analyze the security of a given cryptographic scheme.

Critiquing and judgmental skills:
The students will be able to judge whether a given cryptographic scheme is secure or not.

Communication Skills:
How to describe the security of a cryptographic construction in the language of provable security.

Ability of learning:
The students interested in research will learn what are the main open challenges in the area, and will obtain the necessary background for a deeper study of the subjects.

1047624 | DISTRIBUTED SYSTEMS1st1st6ENG

Educational objectives

General goals
The objective of this courseis to cover the fundamentals of distributed systems and their implementation in real large-scale modern systems.

Specific goals
Students will become familiar with analysis, design and monitoring techniques for distributed systems

Knowledge and comprehension
At the end of the course the students will have acquired advanced knowledge on how to monitor a distributed computation, fault tolerance and failure detectors, consistency and consensus on multiple-replicas in data-centres, logical clocks and vector clocks for asynchronous systems,

Applying knowledge and comprehension:
At the end of the course, students will be able to apply the knowledge acquired to the analysis of real systems such as Chord and Amazon.

Critiquing and judgmental skills:
The students will have the know-how to evaluate and analyse the correctness and the efficiency of distributed computations, as well as deeply understand and assess their main characteristics, issues and assets.

Communication skills:
The students will be able to express in a clear and concise but complete way their knowledge regarding the topics of the class.

Learning ability
The topics covered in this course will allow students to exploit the knowledge acquired in order to deeply study and understand current and future distributed solutions, as well as to have the basis to build system design solutions for real systems.

1047627 | FOUNDATIONS OF DATA SCIENCE1st1st6ENG

Educational objectives

General goals:
Acquiring the basics of data science and machine learning.

Specific goals:
To make students aware of the theoretical and practical tools of data science and machine learning, as well as of their intrinsical limitations; to make students able to tackle real problems through the most appropriate tools.

Knowledge and understanding:
The course provides the basic notions, techniques and methodologies employed in data science and machine learning. It gives also the fundamental programming abilities needed to apply the theory to real-world scenarios.

Applying knowledge and understanding:
At the end of the course, students will be able to deal with real-world data science problems, from casting them into a theoretical framework to manipulating the actual data with the right software tools.

Critical and judgmental abilities:
Students will be able to select the techniques to be applied to the case at hand and to evaluate their performance.

Communication skills:
Students will we able to represent and communicate the information extracted from data, through the rational use of graphics and indicators.

Ability of learning:
Students will be able to learn autonomously both the theory and the practice of the field.

10589558 | Methods in Computer Science Education: Design1st1st6ENG

Educational objectives

General goals
Study and be able to apply the most recent methodologies for Computer Science teaching in high-schools.
The course will show several use-cases on Computer Science teaching at school.

Detailed goals:
• Design and development of Computer Science teaching methodologies: principles and methods for learning activities design, and more in general, for the design of Computer Science curricula following the national guidelines for teaching C.S. in high-schools.
• Didactic methodologies and and technologies to study the interaction of Computer Science in the society, with particular attention to ethic aspects, like: privacy and personal data, automation of decisions and recommendations, copyright issues.

Knowledge and comprehension:
Principles and methods to design and C.S. learning activities in the high-school.
Ethic aspects of the management of personal data and contents in the society.

Application of knowledge and comprehension:
The student will design and develop some didactic modules for high-schools.

Judgment authonomy:
The student will be autonomous both by choosing the didactic module to develop and during its design and implementation phases.

Communication abilities:
The students should show to be able to design high-quality didactic modules, engaging and able to communicate with precision the topic of the lesson developed.

Continuous education:
The design methodology for the didactic modules seen in the course will be easily applicable to other courses.

1047638 | MODELS OF COMPUTATION1st1st6ENG

Educational objectives

General goals:
The course is aimed at the acquisition of mathematical knowledge related to fundamental aspects of functional and imperative programming languages ​​with particular attention to the execution mechanisms of programs.

Specific goals:

Knowledge and understanding:
At the end of the course students will have full understanding of the proposed mathematical tools.

Ability to apply knowledge and understanding:
Students will be able to deepen the study independently by consulting manuals or scientific publications.

Critical and judgmental skills:
The acquired knowledge will allow students to identify and compare the proposed topics in the use of programming languages, in particular in the workplace.

Ability to communicate what has been learned:
Studenta are stimulated to report and communicate their experiences to colleagues.

Continue the study independently in the course of life:
The course deals with fundamental aspects of programming, ensuring students the possibility of identifying them autonomously in the use of each particular language.

1047642 | SECURITY IN SOFTWARE APPLICATIONS1st1st6ENG

Educational objectives

General Objectives

The basics of security in software programs

Specific Objectives

Methodology and tools to find and remove the most common software vulnerabilities, and to develop software free of security flaws

Knowledge and Comprehension

Learning the most effective techniques to remove vulnerabilities from code and to develop software satisfying specific security policies

Ability to apply Knowledge and Comprehension

The student is able to transfer the knowledge on the methodologies to the selection of the appropriate techniques and tools to remedy to the presence of vulnerabilities.

Authonomy of judgement

The student learns to analyze the problem and to identify the proper methodologies and tools to solve problems of software security

Ability to Communicate

The student is able to communicate successfully and to defend the choices made in the selection of the appropriate methodologies and tools.

Ability to Learn

The student is able to continue the learning process in authonomy to comprehend new methodologies and the applicability of new tools.

10589621 | Advanced Machine Learning1st1st6ENG

Educational objectives

General goals:
The course will present to students advanced and most recent concepts of machine learning and their application in computer vision via deep neural network (DNN) models. It will include theory and practical coding, as well as a final hands-on project. Towards the coding assignments and the final project, the students will work in teams and present their ideas and project outcome to the class.

Specific goals:
The first part of the course includes delving into state-of-the-art DNN models for classification and regression applied to detection (where the objects are in the image), pose estimation (whether people stand, sit or crunch) and re-identification (estimating a unique vector representation for each person). The course further discusses DNNs for multi-task objectives (joint detection, pose estimation, re-identification, segmentation, depth estimation etc). This first part would include DNNs which apply to video sequences, by leveraging memory (e.g. LSTMs) or attention (Transformers).
The second part of the course delves into models, training techniques and data manipulation for generalization, domain adaptation and meta-learning. Further to transfer learning (how pre-trained models may be deployed for other tasks), it discusses multi-modal (with different sensor modalities such as depth or thermal cameras) and self-supervision (e.g. training the DNN model by solving jigsaw puzzles) to auto-annotate large amounts of data. Finally, it presents domain adaptation (e.g. apply daytime-detectors for night vision) and meta-learning, a most recent framework to learn how to learn a task, e.g. online or from little available data.

Knowledge and understanding
At the end of the course students will be familiar with state-of-the-art DNN models for multiple tasks and multi-task objectives, as well as generalization and the effective use of labelled and unlabelled data for learning, self-supervision and meta-learning.

Apply knowledge and understanding:
At the end of the course students will have become familiar with the most recent advances in machine learning across a variety of tasks, their adaptation to novel domains and the continual self-learning of algorithms. They will be able to explain the algorithms and choose the most appropriate techniques for a given problem. They will be able to experiment with existing implementations and design and write programs for new solutions for a given task or problem in the two fields.

Critiquing and judgmental skills
Students will be able to analyse a problem or task and identify the most suitable methodologies and techniques to apply in terms of the effective resolution of the problem (accuracy) and its feasibility, including the efficiency, the required amount of data and annotation. Further to class discussions, critiquing and judgemental skills would be the result of assignments, a course project and a final project report.

Communication skills
Students will acquire the ability to expose their knowledge in a clear and organized way, which will be verified through a final project presentation and its discussion.
Students will be able to express their solutions rigorously and to explain the structure of the code they have written.

Learning ability
The acquired knowledge will enable students to face the study of other problems in machine learning and computer vision. Learning ability would result from the chosen lecture topics, covering broad areas in advanced machine learning, as well as from the final project, for which students would deep dive into a new topic, beyond the thought material.

10600495 | AUTOMATIC VERIFICATION OF INTELLIGENT SYSTEMS1st1st6ITA

Educational objectives

General goals:
The course aims at presenting advanced methods and software tools for modelling, design, verification and validation of intelligent systems.

Specific goals:
The course aims at making students proficient in the comprehension and application of advanced modelling, design, verificaton and validation techniques for intelligent systems.

Knowledge and understanding:
A wide-spectrum introduction to advanced principles of modelling, analisys and design of intelligent systems.

Applying knowledge and understanding:
The successful student will be able to exploit the portfolio of techniques and the different approaches shown in the course for the modelling, design, verificaton and validation of intelligent systems.

Critical and judgmental skills:
Students will be able to take autonomous and rational decisions on the most effective methods and software tools to employ for the modelling, design, verification and validation of intelligent systems.

Communication skills:
Students will be able to interact proficiently with domain experts on a wide set of topics concerning modelling, design, verification and validation of intelligent systems.

Learning ability:
Students will be able to extend their skills in the subjects of this course, by the autonomous reading of relevant scientific literature.

10600490 | Blockchain and distributed ledger technologies1st1st6ITA

Educational objectives

General goals:
Blockchains emerged as a novel, game-changing paradigm for the distributed management of transactional systems. A blockchain is a protocol for the management of distributed ledgers, that is for the decentralised storage of a tamper-proof sequence of transactions (ledger), maintained and verified by the nodes participating in the network. A combination of peer-to-peer networks, consensus-making, cryptography, and market mechanisms is at the core of blockchains, which ensure data integrity and transparency thereby. An increasing number of blockchain platforms provides support for so-called smart contracts, that is, executable code expressing how business is to be conducted among contracting parties (e.g., transfer digital assets after a condition is fulfilled). The design of a secure, verifiable and efficient blockchain-based application requires the capability of properly architecting the behavioural structures amid the involved parties. The course covers in details the principles and technologies underpinning blockchain platforms and the properties they guarantee, on one hand, and is aimed at providing the means for the creation and analysis of blockchain-based solutions and applications, on the other hand.

Specific goals:
The course revolves around four main topics: 1) fundamentals of blockchains and distributed ledger technologies; 2) smart contracts programming; 3) development of a full-stack blockchain-based application; 4) assessment and analysis of a blockchain-based application.

Knowledge and understanding:
Students will learn the basics of blockchain technologies and the interplay of the underlying techniques that lead to the immutability, persistency, security and eventual consistency of the blockchain platforms. Furthermore, they will learn how to encode smart contracts and, thereupon, create full-stack Decentralised Applications (DApps). To properly design DApps and the token systems they rely upon, learners will apply the principles of process behaviour modelling and execution. To that end, an overview of cybersecurity challenges, as well as legal and privacy aspects, will also be provided.

Application of knowledge and understanding:
At the end of the course, students will have gained a better understanding of the fundamental pillars of distributed ledger technologies and blockchains. Also, they will have the ability to design and implement blockchain-based systems. Furthermore, they will produce reports in a manner that provides the most value to the stakeholders of decentralised applications.

Critical and judgmental skills:
Learners will develop the ability to assess the quality of decentralized applications and blockchain-based solutions at large from the perspectives of reliability, behavioural soundness, execution cost, on-chain and off-chain load balance, applicability, cybersecurity, and privacy.

Communication skills:
Students will learn how to document their choices, including through the use of diagramming and reporting tools. They will also have acquired the ability to prepare presentations on scientific subjects.

Learning ability:
The notions acquired during the course will provide students with solid knowledge in order to further investigate the most advanced technical aspects and to keep themselves informed about the continuous developments and updates of blockchain and distributed ledger technologies.

1047616 | COMPUTATIONAL COMPLEXITY1st1st6ENG

Educational objectives

General goals:
This represents a basic course about the Theory of Computational Complexity

Specific goals:
- Theoretical model of resource running time
- Theoretical model of resource memory occupation
- Time and Space complexity classes
- The P = NP problem
- Unfeasible problems when resources are bounded
- Computational Classes L, P, NP, PSPACE, BPP, #P, IP,
- Main Results
- Boolean Circuit and functions

Knowledge and understanding:
The student will acquire:
1. The ability to verify reduction and completeness properties between computational problems.
2. Knowledge of the main theorems in the field of Complexity Theory
3. Capabilities of mathematical reasoning on the computational nature of computational resources like running-time, memory occupation, randomness

Applying knowledge and understanding:
The knowledge acquired is basic and foundational in fields like Software Verification, Game Theory, Analysis of Algorithms

Critical and judgmental skills:
Enabling autonomous thinking in students by deepening their ability of mathematical reasoning through the development of discrete math techniques and functional analysis abilities.

Communication skills:
Developing students' ability to communicate advanced results in the field of Theoretical computer Science

Ability of learning:
Knowledge about Computational Complexity is necessary to evaluate the computational viability of the solution of any computational problem arising in the real world. Its knowledge is hence fundamental and basic in many Computer Science disciplines like Cryptography, Verification, Artificial Intelligence, Game Theory.

1047618 | COMPUTER VISION1st1st6ENG

Educational objectives

General goals:
The course aims at introducing students to a wide-spectrum presentation of Computer Vision.

Specific goals:
The course aims at providing the basic principles, methodologies and algorithms used for the design and application of computer vision systems

Knowledge and understanding:
Introductions of the fundamental principles and different areas of Computer Vision and knowledge on problem solving such as feature extraction, tracking, scene analysis, object recognition, event analysis, emotion analysis.

Applying knowledge and understanding:
The successful student will be able to exploit the portfolio of techniques and the different approaches shown in the course for the design and the successful implementation of vision systems.

Critical and judgmental abilities
Students will learn techniques that have proven to be useful by first-hand experience and a wide range of mathematical methods in the design of vision system.

Communication skills:
Students will be able to interact proficiently with other Computer Vision researchers on a wide set of AI topics.

Learning abilities:
Students will be able to extend their skills in the subjects of this course, by the autonomous reading of the scientific literature on Computer Vision.

1047640 | NETWORK ALGORITHMS1st1st6ENG

Educational objectives

General objectives
Acquire knowledge on the design of complex algorithms to solve graph problems that model problems inherent in networks (wired, wireless and of sensors).

Specific goals
Knowledge and understanding
At the end of the course students will know the basic methodologies for the analysis of problems related to networks and the identification of graph problems that are closer; they will also know the algorithms for solving some of the main problems on graphs.

Apply knowledge and understanding:
At the end of the course students will have become familiar with the analysis of problems related to networks. They will be able to recognize which is the graph problem that is closer and - reworking existing ones - to design new data structures and related algorithms to solve the starting problem.

Critical and judgmental skills
Students will be able to analyze the quality of a network algorithm, both from the effective resolution of the problem and from the time complexity point of views.

Communication skills
Students will acquire the ability to expose their knowledge in a clear and organized way, which will be verified through the oral examination.

Learning ability
Once the cycle of studies is completed, the acquired knowledge will allow students to face real problems in a critical and effective way and to design efficient solutions.

10607006 | FORMAL METHODS FOR AI-BASED SYSTEMS ENGINEERING1st2nd6ENG

Educational objectives

General goals:
The course is aimed to the acquisition of logical and modelling knowledge for systems engineering based on artificial intelligence (AI).

Specific goals:
Students will acquire knowledge on a wide portfolio of formal methods for AI-based systems engineering, in particular approaches to the formal verification and design optimization of complex systems.

Knowledge and understanding:
At the end of the course, students will have full understanding of the presented methods and software tools.

Apply knowledge and understanding:
Students will be able to use the methods and software tools presented in the course, but also to deepen the study independently by consulting other texts on the subject, including the available scientific literature.

Critical and judgmental skills:
The acquired knowledge will allow students to properly tackle the systems engineering tasks they will be involved in during their working carrier.

Communication skills:
Students will be stimulated to expose and communicate their experience to their peers and to the instructors.

Ability to continue the study:
The course will deal with only some of the available methodologies and technologies, but will provide students with awareness of the existence of a wide range of alternative options. This will make students able to critically choose the most suitable methodologies and technologies for their AI-based systems engineering tasks.

1047614 | ADVANCED SOFTWARE ENGINEERING1st2nd6ENG

Educational objectives

General goals:
The course aims at presenting a formal method approach, typically based on model transformations, for the development of medium complexity software systems (typically Enterprise applications).

Specific goals:
The course will form students on:

1. Foundations of metamodeling
2. Fundamental of model transformations
3. Domain specific languages
4. Software architectures

Knowledge and understanding
The student will learn fundamental notions for platform-independent modelling starting from specification of requirements, and how to use transformation tools to get to implementations of (partial) code satisfying the requirements, as well as on software architectures.

Applying knowledge and understanding
The student will be able to use some of the most popular languages and tools in the field of systems modeling and model transformation, and use them to develop applications at various levels of complexity.

Critical and judgmental skills:
Students will develop the analytical skills necessary to evaluate various alternatives in the field of system modeling, in particular regarding domain modeling and assessment of architectural requirements.

Communication skills:
Students will learn to document their choices, also through the use of documentation generation tools, exploiting in particular diagrammatic notations.

Learning ability:
The mastery of the concepts of formal model and model transformation, as well as the familiarity with software development environments that integrate these concepts, will allow students to continue exploring and learning languages and approaches based on these concepts.

1047205 | CLOUD COMPUTING1st2nd6ENG

Educational objectives

General Objectives
Cloud computing has entered the mainstream of information technology, providing highly elastic scalability in delivery of enterprise applications. \
At the end of the course students will have the tools to understand the impact of using Cloud services in a business environment and the technological implications of developing Cloud applications in practice, especially for storing and processing large data sets.

Specific Objectives:
At the end of the course, the students will have the tools to:
- use system and application virtualization technologies
- use IaaS and PaaS technologies
- design virtualized architecture
- deploy cloud applications
- assess cost and performance of cloud-based systems

Knowledge and Understanding
At the end of the course, the students have acquired the knowledge about drivers of cloud computing, virtualization technologies, cloud architectures (autoscaling, load balancing, monitoring, high availability), cloud storage
At the end of the course, the students will be capable to understand the working principle of cloud-based solutions (design and operation) and to understand applied research problems related to cloud based solutions.g
Applyinf Knowledge and Understanding:
At the end of the course the student will be capable to
- explain the principle of cloud computing
- explain the main cloud technologies
- solve problems that require the use of cloud technologies and the design and deployment of virtualized architectures and cloud applications
- assess the performance and costs of cloud-based solutions

Critiquing and judgmental skills:
In the course the student will develop critical thinking skill in the field of cloud computing

Communication Skills:
At the end of the course the student will be capable to communicate the notions learned to practitioner and managers.

Learning abilityAfter the course the students will have the acquired knowledge to read advanced course on cloud computing and big data technologies.

10593236 | Deep Learning and Applied Artificial Intelligence 1st2nd6ENG

Educational objectives

General goals:
Familiarity with advanced machine learning techniques, both supervised and unsupervised; modeling skills of complex problems using deep learning techniques, and their application to diverse applicative settings.

Specific goals:
Topics include: deep neural networks, their training and the interpretation of results; convolutional networks and prominent architectures; theory of deep learning and convergence; programming frameworks for implementing advanced machine learning techniques; autoencoders; adversarial attacks.

Knowledge and understanding:
How neural networks work and their mathematical interpretation as universal approximators. Understanding the limits and potentials of advanced machine learning models.

Applying knowledge and understanding:
Design, implementation, deployment and analysis of deep learning architectures addressing complex problems in several applicative areas.

Critical and judgmental abilities:
To be able to evaluate the performance of different architectures, and to assess their generalization capabilities.

Communication skills:
To be able to communicate clearly how to formulate an advanced machine learning problem as well as its implementation, its applicability in realistic settings, and specific architectural and regularization choices.

Ability to learn:
Understanding alternative and more complex techniques such as generative models based on optimal transportation, scattering transforms and the energetic profile of neural networks. To be able to implement existing techniques efficiently, robustly and reliably.

1047630 | HUMAN COMPUTER INTERACTION ON THE WEB1st2nd6ENG

Educational objectives

General objectives
Information systems course analyses types of info systems and how they can contribute to firm’s business objectives success; the course allows to understand approaches and models to evaluate quality of ICT process , software and ICT services, and It gives basic knowledges to plan, manage, control IT projects.

Specific objectives

• Knowledge and understanding
– functional model and info structure of business processes
– integration needs and control requirements of business computer systems data
– systems and technologies to develop&maintain a successful e-business
– main application areas of info systems in various industries
– ICT organization and ICT quality models
– basic knowledge on context, techniques/methodologies and soft skills for project management in ICT

• Applying Knolewdge and understanding (Capabilities)
– To analyze the multi-faceted requirements elicited from different user categories (stakeholder) of info systems
– To select the proper approach/model to evaluate quality of ICT processes, software product and ICT services
– To develop feasibility study selecting proper application and technological architectures
– To prepare, for a simple ICT project, a development plan according to usual constraints on vtime, cost, quality and to design appropriate organization
– To control an ongoing ICT project, applying basic project management techniques
– To understand and appreciate the lessons learned in previous projects

Critical and judgment skills
Students, through tests and case studies, will acquire capabilities on how select type of information systems, how to use proper quality management model and how plan and manage ICT projects.

Communication skills
Students, grouped in teams, will be involved in activities aimed to make a project communication plan based on given case study that they will show at colleagues explaining the reasons of solutions adopted.

Learning skills
Learning skills will be stimulated through a feasibility study aimed at defining:
[a] functional requirements of proper type of information system,
[b] technical and quality requirements, and
[c] project management plan to implement information system.

1047634 | INTERNET OF THINGS1st2nd6ENG

Educational objectives

General objectives:
The course will provide students with both theoretical and practical background on wireless and Internet of Things systems. The course includes a hands-on lab.

Specific objectives:
The course will provide students with both theoretical and practical background on wireless and Internet of Things systems. The unique challenges of such systems will be introduced, explaining why they require special design choices with respect to wired networks.
The student will be able to reason on what are the right design choices to increase efficiency, reliability, and energy efficiency, creating the background for being able to design future generation sensing and IoT systems.
He/she will also have the possibility to have hands-on experience in programming IoT devices in a lab.

Course summary:
-Introduction to Wireless Systems
- Cellular networks, Ad Hoc Networking, Internet of Things (Architecture, Protocols)
- Sensing systems basics: MAC protocols, routing protocols, localization, and synchronization
-Towards the Internet of Things: features, standards, open challenges, low power IoT radio technologies
-Trends in Internet of Things research. This part will cover ongoing research issues related to future generation IoT systems. It will be based on research papers and may be subject to revision during the class based on students' interests and emerging topics. The following topics are expected to be addressed:
- Integration between IoT and robotic networks.
- Lab: IoT systems programming

Knowledge and understanding:
At the end of the course, the students will have acquired knowledge about the performance trade-offs associated with different system design choices and will be able to read and understand technical documents on wireless and IoT systems.
At the end of the course, the students will be able to analyze standards and technical documents, understanding and implementing them. He/she will have practical hands-on experience in the programming and performance evaluation of such systems.

Application of knowledge and understanding:
The students will be able to provide solutions for new generations of wireless and IoT systems.

Judgment skills:
Students will develop the analytical skills necessary to evaluate various alternatives for the design of wireless and IoT systems selecting the best alternative for a
specific application scenario.

Communication skills:
Students will learn to present, in a synthetic and accurate way, using an adequate technical language, ideas, solutions, and research results on wireless and IoT systems.

Learning ability:
The course will provide students with both theoretical and practical background on wireless and Internet of Things systems, so as to enable them to pursue the exploration of these topics.

1047636 | MATHEMATICAL LOGIC FOR COMPUTER SCIENCE1st2nd6ENG

Educational objectives

General Objectives:
The objective of the course is to introduce students to the fundamental results and methods of Mathematical Logic with a special attention to their applications in Computer Science.

Specific Objectives:
The specific objective of the course is twofold.
In the first place the course is meant to offer a rigorous knoweldge and an ability to apply those methods and results of Mathematical Logic that have numerous applications in many areas of Computer Science. In the second place the aim is to endow the student with a set of fundamental tools in the perspective of doing active research in theoretical Computer Science.

Knowledge and Understanding:
The course aims at endowing the student with a rigorous in-depth knowledge of the course topics through the study of poofs and the production of rigorous arguments in homework assignments. Particular attention is devoted to conceptual motivation, rigorous proofs and applicability of results and methods.

Applying knowledge and understanding:
The methods of Mathematical Logic play a fundamental role in many areas of Computer Science such as Complexity Theory, Database Theory, Artifical Intelligence. The aim of the course is to stimulate in the student the ability to apply the methods and the results in various contexts of Computer Science.

Autonomy of judgement:
Active participation to the course is encouraged. Autonomous judgement is exercised through homework assignments and problem-solving tasks.

Communication skills:
The student has the option to give a class presentation of a result as final exam in the form of an academic scientific talk.

Future learning abilities:
The methods of analysis and formalization acquired during the course can be fruitfully applied in many different contexts. The formalization and problem-solving exercise offered during the course strengthens the learning abilities and the capacity of acquiring new skills.

10589557 | Methods in Computer Science Education: Analysis1st2nd6ENG

Educational objectives

General goals:
Study and be able to apply the most recent methodologies for Computer Science teaching in the high-school and university.
The course will show several use-cases on Computer Science teaching.

Detailed goals:
• Analysis and discussion of principal learning methodologies applied to Computer Science teaching, with attention to the teacher role, and to the conceptual, epistemological, linguistic and learning issues,
in particular pinpointing the duality of Informatics as a science with respect to its applications.
• Highlighting the common points between Computer Science methodologies and learning methodologies: constructive problem solving techniques, epistemology approach to problems, cooperative methods to develop solutions.

Knowledge and comprehension
Principles and methods to design and C.S. learning activities for high-school and university.

Application of knowledge and comprehension
The student will design and develop some didactic modules for high-schools.

Judgment authonomy:
The student will be autonomous both by choosing the didactic module to develop and during its design and implementation phases.

Communication abilities:
The students should show to be able to design high-quality didactic modules, engaging and able to communicate with precision the topic of the lesson developed.

Continuous education:
The design methodology for the didactic modules seen in the course will be easily applicable to other courses.

1038141 | NATURAL LANGUAGE PROCESSING1st2nd6ENG

Educational objectives

General goals:
The fundamentals of Natural Language Processing.

Specific goals:
Natural Language Processing at the morphological, part-of-speech tagging, syntax, semantic and pragmatic levels. Machine translation.

Knowledge and understanding:
Knowledge and understanding of algorithmic and machine learning techniques for Natural Language Processing.

Applying knowledge and understanding:
Ability to apply Natural Language Processing techniques through homeworks and a project.

Critical and judgmental abilities:
Ability to understand and identify effective solutions to Natural Language Processing problems.

Communication skills:
Ability to illustrate the project developed by the student.

Learning ability:
Ability to learn and apply new techniques in NLP based either on those illustrated within the course or on innovative approaches.

10589555 | Practical Network Defense1st2nd6ENG

Educational objectives

General objectives:
The course explains the fundamentals of the methods and tools for the protection of computer networks. Particular attention is paid to the practical applicati n of the concepts learned.

Knowledge and understanding:
List commonly-seen threats arising from the use of particular protocols in networked computer systems. Explain mechanisms commonly used by intruders and designers of malware in order to compromise a computer system's security. Explain the basic mechanisms used for the detection of intrusion attempts in computer systems.

Applying knowledge and understanding:
At the end of the course students will be able to monitor traffic in networks, apply a security policy, perform a network scan and search for vulnerabilities in a computer network. Students will develop the ability to select the appropriate firewall rules to protect a network, select the most appropriate mechanisms to protect a networked computer system and to make the most appropriate design choices to implement a "defense in depth" strategy , using
isolated networks and dedicated tools (VPN, proxy and firewall).

Critiquing and judgmental skills:
Students will develop the analytical skills necessary to evaluate different alternatives during the design process of a computer network, with particular reference to the evaluation of the architectural choices and related risks and to the security objectives that the system wants to pursue.

Communication skills:
Students will learn how to document their choices, also through the use of automated reporting tools. They will also have acquired the ability to prepare presentations related to specific scientific topics.

Learning ability:
The concepts acquired during the course will provide students with a solid knowledge base in order to further deepen the more technical aspects, explore the alternatives not dealt with for time reasons and to autonomously keep themselves informed on the continuous developments and updates of network security and protection.

1047613 | ADVANCED ALGORITHMS1st2nd6ENG

Educational objectives

General goals:
This class will present algorithms and data structures for solving complex problems.

Specific goals:
Applying knowledge and understanding:
Students will acquire the ability of detecting the mathematical properties of problems, and of determining which techniques should be used to solve it.

Critical and judgmental abilities:
Students will be able to determine which approaches can be used to solve a variety of algorithmic problems.

Communication skills:
Students will be able to present algorithmic ideas, and to explain properties of various algorithmic problems.

Ability of learning:
Students will be able to think algorithmically.

10612318 | ADVANCED ARCHITECTURES1st2nd6ITA
1047619 | CONCURRENT SYSTEMS1st2nd6ENG

Educational objectives

General goals:
Understanding the basic concepts of concurrent systems and the methodologies used for solving the problems they yield

Specific goals:
Mutual exclusion, different liveness properties, semaphores, monitors, transactions, mutex-free concurrency, other liveness properties, universal object and consensus. Labelled transitions systems, interleaving semantics, synchronization, simulation and bisimulation, verification techniques, name passing, type systems.

Knowledge and comprehension:
Understanding the basic issues of concurrent systems and their possible solutions, the foundational principles of a concurrent programming language and the possible verification techniques.

Applying knowledge and comprehension:
ability of solving basic problems of simple concurrent systems

Capabilities of critiquing and assessing:
understanding advantages and disadvantages of the different possible solutions of problems in concurrent systems

Communication skills:
developing a technical and formal language, able to explain the proposed solutions and their relative merits

Learning skills:
ability in understanding complex programming scenarios and the relative solutions, even complex

1047623 | DATA AND NETWORK SECURITY1st2nd6ENG

Educational objectives

General objectives
The purpose of the course "Data and Network Security" is to present the most up-to-date issues and solutions in the cybersecurity field which is rapidly evolving.

Specific objectives
A first objective is to introduce the main concepts of computer security which include: Identification and authentication, Viruses, trojans and covered channels, Analysis of the most widespread attacks, Security of the operating system, Security of communications.
A second objective is to describe the main research problems in the field. For example, those falling into areas that include the following: Anonymous communications, Blockchain security, Cloud security, Framing Attacks, Location privacy, Security in automatic learning, Social network security, Software-Defined network security.

Knowledge and understanding
Students will learn about the basics of cybersecurity in operating systems, wired/wireless networks, data management, and the main research issues in these areas.

Application of knowledge and understanding
At the end of the course, students will be able to design the architecture of a secure information system, and be able to follow the future evolution of the cybersecurity field.

Judgment skills
Students will develop the analytical skills necessary to assess different alternatives during the process of designing secure information systems.

Communication capacity
Students will learn how to document their choices, including through the use of automated reporting tools. They will also have acquired the ability to prepare presentations on scientific subjects.

Ability to continue learning in an autonomous way
The notions acquired during the course provide students with the necessary basis for more in-depth studies on the subject and to keep abreast of developments in the cybersecurity field.

1047629 | GRAPH THEORY1st2nd6ENG

Educational objectives

General goals: The student will obtain a broad understanding of the classic results in graph theory as well as an introduction to the primary areas of research in modern graph theory.
Specific goals: Fundamental topics which the student will know after the course include: trees and spanning trees in graphs; connectivity in graphs; Hamiltonian cycles and sufficient conditions for their existence. Menger’s theorem and max flow/min cut in graphs. Matching theory in graphs including Konig, Hall, and Tutte’s theorems. Extremal graph theory and Turan’s theorem and Ramsey theory. Planar graphs and graph coloring.
Knowledge and understanding: The student will obtain mastery of basic techniques in mathematical proofs and a familiarity with more advanced techniques. The student will acquire knowledge of the fundamental results in the area and how they are proven.
Applying knowledge and understanding: The student will learn how to apply mathematical induction in a range of contexts and resolve basic questions in graph theory.
Critical and judgmental skills: The student will acquire the critical judgement skills to understand which proof techniques can be applied in which instances, and determine what are the significant open questions in the area.
Communication skills: The student will develop the ability to present written rigorous mathematical proofs.
Learning ability: Upon completing the course of study, the student will have the necessary tools to read research papers in graph theory and understand the techniques found there. The student will have the tools to begin research projects in graph theory.

1047639 | MULTIMODAL INTERACTION1st2nd6ENG

Educational objectives

General objectives:
To be able to design and evaluate a multimodal system.

Specific objectives:
To know the features and basic techniques related to the different human-computer communication channels: gestures, speech, etc. To know the cooperation modes among the different channels: to be able to design/implement fusion/fission of information on different channels.

Knowledge and comprehension
Theoretical fundamentals of communication over different channels. Fundamentals of design of a multimodal system.

Applying knowledge and comprehension
To be able to design and implement a multimodal application.

Capabilities of critiquing and assessing:
To be able to assess the performance and robustness of a multimodal application.

Communication skills:
To be able to communicate/share the requirements of a multimodal system, the most suited modalities for a certain application, and the performance measures of a system.

Learning capability:
To be able to autonomously get a deeper insight on the course topics, in relation to either specific/complex techniques and methods.

1047643 | TOPICS IN PHYSICS1st2nd6ENG

Educational objectives

General goals:
The main subject of this course is an introduction to the principles of quantum mechanics and their applications in quantum computing.

Specific goals:

Knowledge and understanding:
The student will acquire a working knowledge of the principles on which quantum computation is based.

Applying knowledge and understanding:
The quantum mechanics techniques will be applied in understanding some of the main quantum algorithms currently available, such as quantum cryptography, Shor’s Algorithm and Grover’s Algorithm.

Critical and judgmental abilities:
We stimulate discussions on the most difficult topics of quantum mechanics, like for instance entanglement, and encourage students to propose topics of their interest related to quantum mechanics and quantum computing.

Communication skills:
To pass the final exam, the students must give two presentations (in power point or equivalent program) on two topics, one regarding quantum mechanics and one related to quantum computing. This surely can help their ability to make professional presentations in public.

Learning abilities:
During the course, several reference texts are indicated that can be useful to deepen the knowledge acquired in class. Also, some simulation languages for quantum computing are presented, that can be a useful starting point for the development of quantum computing algorithms.