10596281 - Autonomous Networking |
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. |
First year |
First semester |
6 |
INF/01 |
|
1041792 - BIOMETRIC SYSTEMS |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047617 - COMPUTER NETWORK PERFORMANCE |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047622 - CRYPTOGRAPHY |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047624 - DISTRIBUTED SYSTEMS |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047626 - FORMAL METHODS IN SOFTWARE DEVELOPMENT |
General goals: The course is aimed to the acquisition of logical and modeling knowledge needed to verify complex hardware/software systems (model checking).
Specific goals:
Knowledge and understanding: At the end of the course, students will have full understanding of the presented modeling tools (model checkers).
Apply knowledge and understanding: Students will be able to use the tools and the techniques presented during the course, but also to deepen the study independently by consulting other texts dedicated to the subject and scientific material that concerns it.
Critical and judgmental skills: The acquired knowledge will allow students to face the applications proposed in other teachings and to face the problems that will be proposed in the working career in terms of modeling systems.
Communication skills: Students are stimulated to expose and communicate experiences in the circle of their colleagues.
Ability to continue the study: The course deals only with some of the fields proposed, but also gives news of a wide range of techniques that can be used in this field in so that he can critically choose as appropriate. |
First year |
First semester |
6 |
INF/01 |
|
1047627 - FOUNDATIONS OF DATA SCIENCE |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047635 - MACHINE LEARNING |
General goals: The course introduces motivations, paradigms and applications of machine learning. It is to be considered an introductory course.
Specific goals: Supervised learning: decision trees, instance-based learning, naïve Bayes, support vector machine, neural networks, deep learning, ensamble methods. Unsupervised learning: clustering, association rules. Semi-supervised learning. Reinforcement learning. Genetic algorithms and genetic programming. Issues in machine learning: underfitting, overfitting, model selection, error analysis.
Knowledge and understanding: Students will learn which algorithms best fit which categories of problems, how to describe the application domain, how to tune parameters and hyperparameters of the model, how to test performances.
Applying knowledge and understanding: Students will experiment the main algorithms using the Weka ML software Weka, Tensor Flow or scikit-learn.
Critical and judgmental skills: Students will be able to will understand the categories of problems that can be efficiently solved with machine learning algorithms, under which conditions.
Communication skills: These will be tested during written exams and project reporting.
Ability of learning: Students will receive a solid basis for further deepening of more advanced methods, such as deep learning, probabilistic learning, and others |
First year |
First semester |
6 |
INF/01 |
|
10589558 - Methods in Computer Science Education: Design |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047638 - MODELS OF COMPUTATION |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047642 - SECURITY IN SOFTWARE APPLICATIONS |
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. |
First year |
First semester |
6 |
INF/01 |
|
1041764 - BIG DATA COMPUTING |
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. |
First year |
Second semester |
6 |
INF/01 |
|
1047205 - CLOUD COMPUTING |
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. |
First year |
Second semester |
6 |
INF/01 |
|
10593236 - Deep Learning and Applied Artificial Intelligence |
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. |
First year |
Second semester |
6 |
INF/01 |
|
1047630 - HUMAN COMPUTER INTERACTION ON THE WEB |
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. |
First year |
Second semester |
6 |
INF/01 |
|
1047634 - INTERNET OF THINGS |
General objectives: The course will provide students with both theoretical and practical background on wireless and Internet of Things systems. The course includes an 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 requires 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, 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 on programming IoT devices in a lab.
Course summary: -Introduction to Wireless Systems (design challenges of a wireless system; things to know on how the signal propagate, on how to design a low power system and on how to cope with limited resources available) -From 2G to 5G: Cellular systems evolution towards an integrated system including also Internet of Things (Architecture, Protocols, Procedures, detailed presentation of how cellular systems work) -Sensing systems basics: MAC protocols, routing protocols, localization and synchronization -Towards the Internet of Things: features, standards, open challenges, low power IoT radio technologies -SigFox, LoRa -Trends in Internet of Things research. This part will cover on going research issues related to future generation IoT systems. It will be based on research papers and maybe subject of revision during the class based on students interests and emerging topics. The following topics are expected to be addressed: *Towards zero energy consuming IoT systems: how energy harvesting and wake up radios, as well as passive backscattering technologies are changing what and for how long we can do in IoT systems. * IoT security issues and how blockchain technologies is being exploited in large scale IoT deployments to enable IoT vertical applications. * When IoT meets machine learning: system level optimization at scale through machine learning techniques. * IoUT (Internet of Underwater Things): how IoT, robotic technologies and machine learning are changing the Blue Economy sector. - Lab: IoT systems programming
Knowledge and understanding: At the end of the course, students will have acquired knowledge about the performance trade offs associated to different system design choices and will be able to read and understand technical documents on wireless and IoT systems (papers, standards,---). At the end of the course, students will be able to analyze standards and technical documents, understanding and implementing them. He/she will have done practical hands on experience on the programming and performance evaluation of such systems.
Application of knowledge and understanding: 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. |
First year |
Second semester |
6 |
INF/01 |
|
1047636 - MATHEMATICAL LOGIC FOR COMPUTER SCIENCE |
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. |
First year |
Second semester |
6 |
INF/01 |
|
10589557 - Methods in Computer Science Education: Analysis |
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. |
First year |
Second semester |
6 |
INF/01 |
|
1038141 - NATURAL LANGUAGE PROCESSING |
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. |
First year |
Second semester |
6 |
INF/01 |
|
10589555 - Practical Network Defense |
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. |
First year |
Second semester |
6 |
INF/01 |
|
10589621 - Advanced Machine Learning |
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. |
Second year |
First semester |
6 |
INF/01 |
|
1047615 - AUTOMATIC SOFTWARE VERIFICATION METHODS |
General goals: The course aims at presenting methods and tools for automatic verification and validation of cyber-physical systems.
Specific goals: The course aims at making students proficient in the comprehension and application of advanced modelling, verificaton and validation techniques for cyber-physical systems.
Knowledge and understanding: A wide-spectrum introduction to the foundational principles of modelling and analisys of cyberphysical systems modelled as DAE (Differential Algebraic Equations).
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, verificaton and validation of cyber-physical systems.
Critical and judgmental abilities: Students will be able to take autonomous and rational decisions on the most effective techniques to employ for the modelling, verification and validation of cyber-physical systems.
Communication skills: Students will be able to interact proficiently with domain experts on a wide set of topics concerning modelling, verification and validation of cyber-physical systems.
Learning abilities: Students will be able to extend their skills in the subjects of this course, by the autonomous reading of relevant scientific literature. |
Second year |
First semester |
6 |
INF/01 |
|
1047616 - COMPUTATIONAL COMPLEXITY |
General goals: This represents a basic course about the Theory of Computational Complexity
Specific goals: - Theoretical model of resource running time - Theoretical model ofresource 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. |
Second year |
First semester |
6 |
INF/01 |
|
1047618 - COMPUTER VISION |
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. |
Second year |
First semester |
6 |
INF/01 |
|
1047628 - FUNDAMENTALS OF COMPUTER GRAPHICS |
General goals: Familiarity with Physically-based rendering, geometry processing and some simulation ideas.
Specific goals: Topics include: path tracing, monte carlo methods, bidirectional reflectance distribution function, microfacet models, importance sampling, multiple importance sampling, subdivision surfaces, bump and normal mapping, volumetric scattering.
Knowledge and understanding: Understand how to physically-based rendering methods work and which light paths are supported well; understand how to model the appearance of real-world surfaces; understand how to represent geometry in a rendering.
Applying knowledge and understanding: Implementation of a fully featured path tracer with support for arbitrary materials, volumetric scattering and smooth and rough geometry.
Critical and judgmental abilities: To be able to evaluate the performance trade-offs of different realistic rendering methods with respect the light/surface or light/volume interactions they support.
Communication skills: To be able to communicate clearly how realistic rendering methods work, how they are designed and what 3D scenes or image features they support.
Ability to learn: To be able to investigate more complex rendering algorithms, such as bidirectional methods and Monte Carlo chain methods. To able to work comfortably on movie production renderers. |
Second year |
First semester |
6 |
INF/01 |
|
1047640 - NETWORK ALGORITHMS |
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. |
Second year |
First semester |
6 |
INF/01 |
|
1047613 - ADVANCED ALGORITHMS |
General goals: The course presents algorithms and data structures that are used in the efficient resolution of important applied problems.
Specific goals:
Applying knowledge and understanding: Students will acquire the knowledge for outlining the mathematical kernel of a new problem and for identifying the appropriate techniques for designing the procedures that will lead to the solution.
Critical and judgmental abilities: Students will be able to understand whch is the best way to abstract, represent and organize information available about the specific problem to be tackled
Communication skills: Students will acquire the right language to present algorithmic ideas that allow to express the characteristic of a particular problem.
Ability of learning: Each student will be an "algorithmically thinking" person, i.e. a person able to extract, just by pure reasoning, all the knowledge possible from a situation. |
Second year |
Second semester |
6 |
INF/01 |
|
1047619 - CONCURRENT SYSTEMS |
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 |
Second year |
Second semester |
6 |
INF/01 |
|
1047623 - DATA AND NETWORK SECURITY |
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. |
Second year |
Second semester |
6 |
INF/01 |
|
1047631 - INFORMATION SYSTEMS |
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 time, 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 |
Second year |
Second semester |
6 |
SECS-P/07 |
|
1047633 - INTENSIVE COMPUTATION |
General goals: The aim of the course is to illustrate the methods for solving problems requiring intensive computation, mainly in the scientific field, and adequate parallel computer architectures.
Specific goals: Matlab programming. Sparse matrices representation. Linear algebras methods. Advanced parallel computer architectures.
Knowledge and understanding Knowing and understanding the methods of scientific computing and parallel computer architectures.
Applying knowledge and understanding: Being able to solve problems using the methods of scientific computing; being able to efficiently use Matlab programming; being able to analyse the obtained results.
Critiquing and judgmental skills: Being able to choose the best approach, among those considered, for solving a specific problem; being able to correctly compare the results obtained utilizing different methods and architectures.
Communication skills: Being able to motivate the choices taken in solving a problem requiring high performance computing.
Learning skills: Understanding the differences and the advantages of the different approaches to the solution of problem. Understanding the differences and the advantages when using different computer architectures. |
Second year |
Second semester |
6 |
INF/01 |
|
1047639 - MULTIMODAL INTERACTION |
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. |
Second year |
Second semester |
6 |
INF/01 |
|
1047643 - TOPICS IN PHYSICS |
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. |
Second year |
Second semester |
6 |
FIS/01 |
|
10596281 - Autonomous Networking |
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. |
First year |
First semester |
6 |
INF/01 |
|
1041792 - BIOMETRIC SYSTEMS |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047617 - COMPUTER NETWORK PERFORMANCE |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047622 - CRYPTOGRAPHY |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047624 - DISTRIBUTED SYSTEMS |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047626 - FORMAL METHODS IN SOFTWARE DEVELOPMENT |
General goals: The course is aimed to the acquisition of logical and modeling knowledge needed to verify complex hardware/software systems (model checking).
Specific goals:
Knowledge and understanding: At the end of the course, students will have full understanding of the presented modeling tools (model checkers).
Apply knowledge and understanding: Students will be able to use the tools and the techniques presented during the course, but also to deepen the study independently by consulting other texts dedicated to the subject and scientific material that concerns it.
Critical and judgmental skills: The acquired knowledge will allow students to face the applications proposed in other teachings and to face the problems that will be proposed in the working career in terms of modeling systems.
Communication skills: Students are stimulated to expose and communicate experiences in the circle of their colleagues.
Ability to continue the study: The course deals only with some of the fields proposed, but also gives news of a wide range of techniques that can be used in this field in so that he can critically choose as appropriate. |
First year |
First semester |
6 |
INF/01 |
|
1047627 - FOUNDATIONS OF DATA SCIENCE |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047635 - MACHINE LEARNING |
General goals: The course introduces motivations, paradigms and applications of machine learning. It is to be considered an introductory course.
Specific goals: Supervised learning: decision trees, instance-based learning, naïve Bayes, support vector machine, neural networks, deep learning, ensamble methods. Unsupervised learning: clustering, association rules. Semi-supervised learning. Reinforcement learning. Genetic algorithms and genetic programming. Issues in machine learning: underfitting, overfitting, model selection, error analysis.
Knowledge and understanding: Students will learn which algorithms best fit which categories of problems, how to describe the application domain, how to tune parameters and hyperparameters of the model, how to test performances.
Applying knowledge and understanding: Students will experiment the main algorithms using the Weka ML software Weka, Tensor Flow or scikit-learn.
Critical and judgmental skills: Students will be able to will understand the categories of problems that can be efficiently solved with machine learning algorithms, under which conditions.
Communication skills: These will be tested during written exams and project reporting.
Ability of learning: Students will receive a solid basis for further deepening of more advanced methods, such as deep learning, probabilistic learning, and others |
First year |
First semester |
6 |
INF/01 |
|
10589558 - Methods in Computer Science Education: Design |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047638 - MODELS OF COMPUTATION |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047642 - SECURITY IN SOFTWARE APPLICATIONS |
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. |
First year |
First semester |
6 |
INF/01 |
|
1041764 - BIG DATA COMPUTING |
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. |
First year |
Second semester |
6 |
INF/01 |
|
1047205 - CLOUD COMPUTING |
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. |
First year |
Second semester |
6 |
INF/01 |
|
10593236 - Deep Learning and Applied Artificial Intelligence |
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. |
First year |
Second semester |
6 |
INF/01 |
|
1047630 - HUMAN COMPUTER INTERACTION ON THE WEB |
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. |
First year |
Second semester |
6 |
INF/01 |
|
1047634 - INTERNET OF THINGS |
General objectives: The course will provide students with both theoretical and practical background on wireless and Internet of Things systems. The course includes an 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 requires 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, 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 on programming IoT devices in a lab.
Course summary: -Introduction to Wireless Systems (design challenges of a wireless system; things to know on how the signal propagate, on how to design a low power system and on how to cope with limited resources available) -From 2G to 5G: Cellular systems evolution towards an integrated system including also Internet of Things (Architecture, Protocols, Procedures, detailed presentation of how cellular systems work) -Sensing systems basics: MAC protocols, routing protocols, localization and synchronization -Towards the Internet of Things: features, standards, open challenges, low power IoT radio technologies -SigFox, LoRa -Trends in Internet of Things research. This part will cover on going research issues related to future generation IoT systems. It will be based on research papers and maybe subject of revision during the class based on students interests and emerging topics. The following topics are expected to be addressed: *Towards zero energy consuming IoT systems: how energy harvesting and wake up radios, as well as passive backscattering technologies are changing what and for how long we can do in IoT systems. * IoT security issues and how blockchain technologies is being exploited in large scale IoT deployments to enable IoT vertical applications. * When IoT meets machine learning: system level optimization at scale through machine learning techniques. * IoUT (Internet of Underwater Things): how IoT, robotic technologies and machine learning are changing the Blue Economy sector. - Lab: IoT systems programming
Knowledge and understanding: At the end of the course, students will have acquired knowledge about the performance trade offs associated to different system design choices and will be able to read and understand technical documents on wireless and IoT systems (papers, standards,---). At the end of the course, students will be able to analyze standards and technical documents, understanding and implementing them. He/she will have done practical hands on experience on the programming and performance evaluation of such systems.
Application of knowledge and understanding: 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. |
First year |
Second semester |
6 |
INF/01 |
|
1047636 - MATHEMATICAL LOGIC FOR COMPUTER SCIENCE |
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. |
First year |
Second semester |
6 |
INF/01 |
|
10589557 - Methods in Computer Science Education: Analysis |
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. |
First year |
Second semester |
6 |
INF/01 |
|
1038141 - NATURAL LANGUAGE PROCESSING |
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. |
First year |
Second semester |
6 |
INF/01 |
|
10589555 - Practical Network Defense |
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. |
First year |
Second semester |
6 |
INF/01 |
|
10589621 - Advanced Machine Learning |
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. |
Second year |
First semester |
6 |
INF/01 |
|
1047615 - AUTOMATIC SOFTWARE VERIFICATION METHODS |
General goals: The course aims at presenting methods and tools for automatic verification and validation of cyber-physical systems.
Specific goals: The course aims at making students proficient in the comprehension and application of advanced modelling, verificaton and validation techniques for cyber-physical systems.
Knowledge and understanding: A wide-spectrum introduction to the foundational principles of modelling and analisys of cyberphysical systems modelled as DAE (Differential Algebraic Equations).
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, verificaton and validation of cyber-physical systems.
Critical and judgmental abilities: Students will be able to take autonomous and rational decisions on the most effective techniques to employ for the modelling, verification and validation of cyber-physical systems.
Communication skills: Students will be able to interact proficiently with domain experts on a wide set of topics concerning modelling, verification and validation of cyber-physical systems.
Learning abilities: Students will be able to extend their skills in the subjects of this course, by the autonomous reading of relevant scientific literature. |
Second year |
First semester |
6 |
INF/01 |
|
1047616 - COMPUTATIONAL COMPLEXITY |
General goals: This represents a basic course about the Theory of Computational Complexity
Specific goals: - Theoretical model of resource running time - Theoretical model ofresource 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. |
Second year |
First semester |
6 |
INF/01 |
|
1047618 - COMPUTER VISION |
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. |
Second year |
First semester |
6 |
INF/01 |
|
1047628 - FUNDAMENTALS OF COMPUTER GRAPHICS |
General goals: Familiarity with Physically-based rendering, geometry processing and some simulation ideas.
Specific goals: Topics include: path tracing, monte carlo methods, bidirectional reflectance distribution function, microfacet models, importance sampling, multiple importance sampling, subdivision surfaces, bump and normal mapping, volumetric scattering.
Knowledge and understanding: Understand how to physically-based rendering methods work and which light paths are supported well; understand how to model the appearance of real-world surfaces; understand how to represent geometry in a rendering.
Applying knowledge and understanding: Implementation of a fully featured path tracer with support for arbitrary materials, volumetric scattering and smooth and rough geometry.
Critical and judgmental abilities: To be able to evaluate the performance trade-offs of different realistic rendering methods with respect the light/surface or light/volume interactions they support.
Communication skills: To be able to communicate clearly how realistic rendering methods work, how they are designed and what 3D scenes or image features they support.
Ability to learn: To be able to investigate more complex rendering algorithms, such as bidirectional methods and Monte Carlo chain methods. To able to work comfortably on movie production renderers. |
Second year |
First semester |
6 |
INF/01 |
|
1047640 - NETWORK ALGORITHMS |
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. |
Second year |
First semester |
6 |
INF/01 |
|
1047613 - ADVANCED ALGORITHMS |
General goals: The course presents algorithms and data structures that are used in the efficient resolution of important applied problems.
Specific goals:
Applying knowledge and understanding: Students will acquire the knowledge for outlining the mathematical kernel of a new problem and for identifying the appropriate techniques for designing the procedures that will lead to the solution.
Critical and judgmental abilities: Students will be able to understand whch is the best way to abstract, represent and organize information available about the specific problem to be tackled
Communication skills: Students will acquire the right language to present algorithmic ideas that allow to express the characteristic of a particular problem.
Ability of learning: Each student will be an "algorithmically thinking" person, i.e. a person able to extract, just by pure reasoning, all the knowledge possible from a situation. |
Second year |
Second semester |
6 |
INF/01 |
|
1047619 - CONCURRENT SYSTEMS |
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 |
Second year |
Second semester |
6 |
INF/01 |
|
1047623 - DATA AND NETWORK SECURITY |
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. |
Second year |
Second semester |
6 |
INF/01 |
|
1047631 - INFORMATION SYSTEMS |
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 time, 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 |
Second year |
Second semester |
6 |
SECS-P/07 |
|
1047633 - INTENSIVE COMPUTATION |
General goals: The aim of the course is to illustrate the methods for solving problems requiring intensive computation, mainly in the scientific field, and adequate parallel computer architectures.
Specific goals: Matlab programming. Sparse matrices representation. Linear algebras methods. Advanced parallel computer architectures.
Knowledge and understanding Knowing and understanding the methods of scientific computing and parallel computer architectures.
Applying knowledge and understanding: Being able to solve problems using the methods of scientific computing; being able to efficiently use Matlab programming; being able to analyse the obtained results.
Critiquing and judgmental skills: Being able to choose the best approach, among those considered, for solving a specific problem; being able to correctly compare the results obtained utilizing different methods and architectures.
Communication skills: Being able to motivate the choices taken in solving a problem requiring high performance computing.
Learning skills: Understanding the differences and the advantages of the different approaches to the solution of problem. Understanding the differences and the advantages when using different computer architectures. |
Second year |
Second semester |
6 |
INF/01 |
|
1047639 - MULTIMODAL INTERACTION |
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. |
Second year |
Second semester |
6 |
INF/01 |
|
1047643 - TOPICS IN PHYSICS |
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. |
Second year |
Second semester |
6 |
FIS/01 |
|
10596281 - Autonomous Networking |
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. |
First year |
First semester |
6 |
INF/01 |
|
1041792 - BIOMETRIC SYSTEMS |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047617 - COMPUTER NETWORK PERFORMANCE |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047622 - CRYPTOGRAPHY |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047624 - DISTRIBUTED SYSTEMS |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047626 - FORMAL METHODS IN SOFTWARE DEVELOPMENT |
General goals: The course is aimed to the acquisition of logical and modeling knowledge needed to verify complex hardware/software systems (model checking).
Specific goals:
Knowledge and understanding: At the end of the course, students will have full understanding of the presented modeling tools (model checkers).
Apply knowledge and understanding: Students will be able to use the tools and the techniques presented during the course, but also to deepen the study independently by consulting other texts dedicated to the subject and scientific material that concerns it.
Critical and judgmental skills: The acquired knowledge will allow students to face the applications proposed in other teachings and to face the problems that will be proposed in the working career in terms of modeling systems.
Communication skills: Students are stimulated to expose and communicate experiences in the circle of their colleagues.
Ability to continue the study: The course deals only with some of the fields proposed, but also gives news of a wide range of techniques that can be used in this field in so that he can critically choose as appropriate. |
First year |
First semester |
6 |
INF/01 |
|
1047627 - FOUNDATIONS OF DATA SCIENCE |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047635 - MACHINE LEARNING |
General goals: The course introduces motivations, paradigms and applications of machine learning. It is to be considered an introductory course.
Specific goals: Supervised learning: decision trees, instance-based learning, naïve Bayes, support vector machine, neural networks, deep learning, ensamble methods. Unsupervised learning: clustering, association rules. Semi-supervised learning. Reinforcement learning. Genetic algorithms and genetic programming. Issues in machine learning: underfitting, overfitting, model selection, error analysis.
Knowledge and understanding: Students will learn which algorithms best fit which categories of problems, how to describe the application domain, how to tune parameters and hyperparameters of the model, how to test performances.
Applying knowledge and understanding: Students will experiment the main algorithms using the Weka ML software Weka, Tensor Flow or scikit-learn.
Critical and judgmental skills: Students will be able to will understand the categories of problems that can be efficiently solved with machine learning algorithms, under which conditions.
Communication skills: These will be tested during written exams and project reporting.
Ability of learning: Students will receive a solid basis for further deepening of more advanced methods, such as deep learning, probabilistic learning, and others |
First year |
First semester |
6 |
INF/01 |
|
10589558 - Methods in Computer Science Education: Design |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047638 - MODELS OF COMPUTATION |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047642 - SECURITY IN SOFTWARE APPLICATIONS |
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. |
First year |
First semester |
6 |
INF/01 |
|
1041764 - BIG DATA COMPUTING |
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. |
First year |
Second semester |
6 |
INF/01 |
|
1047205 - CLOUD COMPUTING |
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. |
First year |
Second semester |
6 |
INF/01 |
|
10593236 - Deep Learning and Applied Artificial Intelligence |
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. |
First year |
Second semester |
6 |
INF/01 |
|
1047630 - HUMAN COMPUTER INTERACTION ON THE WEB |
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. |
First year |
Second semester |
6 |
INF/01 |
|
1047634 - INTERNET OF THINGS |
General objectives: The course will provide students with both theoretical and practical background on wireless and Internet of Things systems. The course includes an 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 requires 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, 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 on programming IoT devices in a lab.
Course summary: -Introduction to Wireless Systems (design challenges of a wireless system; things to know on how the signal propagate, on how to design a low power system and on how to cope with limited resources available) -From 2G to 5G: Cellular systems evolution towards an integrated system including also Internet of Things (Architecture, Protocols, Procedures, detailed presentation of how cellular systems work) -Sensing systems basics: MAC protocols, routing protocols, localization and synchronization -Towards the Internet of Things: features, standards, open challenges, low power IoT radio technologies -SigFox, LoRa -Trends in Internet of Things research. This part will cover on going research issues related to future generation IoT systems. It will be based on research papers and maybe subject of revision during the class based on students interests and emerging topics. The following topics are expected to be addressed: *Towards zero energy consuming IoT systems: how energy harvesting and wake up radios, as well as passive backscattering technologies are changing what and for how long we can do in IoT systems. * IoT security issues and how blockchain technologies is being exploited in large scale IoT deployments to enable IoT vertical applications. * When IoT meets machine learning: system level optimization at scale through machine learning techniques. * IoUT (Internet of Underwater Things): how IoT, robotic technologies and machine learning are changing the Blue Economy sector. - Lab: IoT systems programming
Knowledge and understanding: At the end of the course, students will have acquired knowledge about the performance trade offs associated to different system design choices and will be able to read and understand technical documents on wireless and IoT systems (papers, standards,---). At the end of the course, students will be able to analyze standards and technical documents, understanding and implementing them. He/she will have done practical hands on experience on the programming and performance evaluation of such systems.
Application of knowledge and understanding: 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. |
First year |
Second semester |
6 |
INF/01 |
|
1047636 - MATHEMATICAL LOGIC FOR COMPUTER SCIENCE |
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. |
First year |
Second semester |
6 |
INF/01 |
|
10589557 - Methods in Computer Science Education: Analysis |
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. |
First year |
Second semester |
6 |
INF/01 |
|
1038141 - NATURAL LANGUAGE PROCESSING |
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. |
First year |
Second semester |
6 |
INF/01 |
|
10589555 - Practical Network Defense |
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. |
First year |
Second semester |
6 |
INF/01 |
|
10589621 - Advanced Machine Learning |
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. |
Second year |
First semester |
6 |
INF/01 |
|
1047615 - AUTOMATIC SOFTWARE VERIFICATION METHODS |
General goals: The course aims at presenting methods and tools for automatic verification and validation of cyber-physical systems.
Specific goals: The course aims at making students proficient in the comprehension and application of advanced modelling, verificaton and validation techniques for cyber-physical systems.
Knowledge and understanding: A wide-spectrum introduction to the foundational principles of modelling and analisys of cyberphysical systems modelled as DAE (Differential Algebraic Equations).
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, verificaton and validation of cyber-physical systems.
Critical and judgmental abilities: Students will be able to take autonomous and rational decisions on the most effective techniques to employ for the modelling, verification and validation of cyber-physical systems.
Communication skills: Students will be able to interact proficiently with domain experts on a wide set of topics concerning modelling, verification and validation of cyber-physical systems.
Learning abilities: Students will be able to extend their skills in the subjects of this course, by the autonomous reading of relevant scientific literature. |
Second year |
First semester |
6 |
INF/01 |
|
1047616 - COMPUTATIONAL COMPLEXITY |
General goals: This represents a basic course about the Theory of Computational Complexity
Specific goals: - Theoretical model of resource running time - Theoretical model ofresource 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. |
Second year |
First semester |
6 |
INF/01 |
|
1047618 - COMPUTER VISION |
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. |
Second year |
First semester |
6 |
INF/01 |
|
1047628 - FUNDAMENTALS OF COMPUTER GRAPHICS |
General goals: Familiarity with Physically-based rendering, geometry processing and some simulation ideas.
Specific goals: Topics include: path tracing, monte carlo methods, bidirectional reflectance distribution function, microfacet models, importance sampling, multiple importance sampling, subdivision surfaces, bump and normal mapping, volumetric scattering.
Knowledge and understanding: Understand how to physically-based rendering methods work and which light paths are supported well; understand how to model the appearance of real-world surfaces; understand how to represent geometry in a rendering.
Applying knowledge and understanding: Implementation of a fully featured path tracer with support for arbitrary materials, volumetric scattering and smooth and rough geometry.
Critical and judgmental abilities: To be able to evaluate the performance trade-offs of different realistic rendering methods with respect the light/surface or light/volume interactions they support.
Communication skills: To be able to communicate clearly how realistic rendering methods work, how they are designed and what 3D scenes or image features they support.
Ability to learn: To be able to investigate more complex rendering algorithms, such as bidirectional methods and Monte Carlo chain methods. To able to work comfortably on movie production renderers. |
Second year |
First semester |
6 |
INF/01 |
|
1047640 - NETWORK ALGORITHMS |
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. |
Second year |
First semester |
6 |
INF/01 |
|
1047613 - ADVANCED ALGORITHMS |
General goals: The course presents algorithms and data structures that are used in the efficient resolution of important applied problems.
Specific goals:
Applying knowledge and understanding: Students will acquire the knowledge for outlining the mathematical kernel of a new problem and for identifying the appropriate techniques for designing the procedures that will lead to the solution.
Critical and judgmental abilities: Students will be able to understand whch is the best way to abstract, represent and organize information available about the specific problem to be tackled
Communication skills: Students will acquire the right language to present algorithmic ideas that allow to express the characteristic of a particular problem.
Ability of learning: Each student will be an "algorithmically thinking" person, i.e. a person able to extract, just by pure reasoning, all the knowledge possible from a situation. |
Second year |
Second semester |
6 |
INF/01 |
|
1047619 - CONCURRENT SYSTEMS |
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 |
Second year |
Second semester |
6 |
INF/01 |
|
1047623 - DATA AND NETWORK SECURITY |
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. |
Second year |
Second semester |
6 |
INF/01 |
|
1047631 - INFORMATION SYSTEMS |
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 time, 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 |
Second year |
Second semester |
6 |
SECS-P/07 |
|
1047633 - INTENSIVE COMPUTATION |
General goals: The aim of the course is to illustrate the methods for solving problems requiring intensive computation, mainly in the scientific field, and adequate parallel computer architectures.
Specific goals: Matlab programming. Sparse matrices representation. Linear algebras methods. Advanced parallel computer architectures.
Knowledge and understanding Knowing and understanding the methods of scientific computing and parallel computer architectures.
Applying knowledge and understanding: Being able to solve problems using the methods of scientific computing; being able to efficiently use Matlab programming; being able to analyse the obtained results.
Critiquing and judgmental skills: Being able to choose the best approach, among those considered, for solving a specific problem; being able to correctly compare the results obtained utilizing different methods and architectures.
Communication skills: Being able to motivate the choices taken in solving a problem requiring high performance computing.
Learning skills: Understanding the differences and the advantages of the different approaches to the solution of problem. Understanding the differences and the advantages when using different computer architectures. |
Second year |
Second semester |
6 |
INF/01 |
|
1047639 - MULTIMODAL INTERACTION |
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. |
Second year |
Second semester |
6 |
INF/01 |
|
1047643 - TOPICS IN PHYSICS |
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. |
Second year |
Second semester |
6 |
FIS/01 |
|
10596281 - Autonomous Networking |
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. |
First year |
First semester |
6 |
INF/01 |
|
1041792 - BIOMETRIC SYSTEMS |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047617 - COMPUTER NETWORK PERFORMANCE |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047622 - CRYPTOGRAPHY |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047624 - DISTRIBUTED SYSTEMS |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047626 - FORMAL METHODS IN SOFTWARE DEVELOPMENT |
General goals: The course is aimed to the acquisition of logical and modeling knowledge needed to verify complex hardware/software systems (model checking).
Specific goals:
Knowledge and understanding: At the end of the course, students will have full understanding of the presented modeling tools (model checkers).
Apply knowledge and understanding: Students will be able to use the tools and the techniques presented during the course, but also to deepen the study independently by consulting other texts dedicated to the subject and scientific material that concerns it.
Critical and judgmental skills: The acquired knowledge will allow students to face the applications proposed in other teachings and to face the problems that will be proposed in the working career in terms of modeling systems.
Communication skills: Students are stimulated to expose and communicate experiences in the circle of their colleagues.
Ability to continue the study: The course deals only with some of the fields proposed, but also gives news of a wide range of techniques that can be used in this field in so that he can critically choose as appropriate. |
First year |
First semester |
6 |
INF/01 |
|
1047627 - FOUNDATIONS OF DATA SCIENCE |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047635 - MACHINE LEARNING |
General goals: The course introduces motivations, paradigms and applications of machine learning. It is to be considered an introductory course.
Specific goals: Supervised learning: decision trees, instance-based learning, naïve Bayes, support vector machine, neural networks, deep learning, ensamble methods. Unsupervised learning: clustering, association rules. Semi-supervised learning. Reinforcement learning. Genetic algorithms and genetic programming. Issues in machine learning: underfitting, overfitting, model selection, error analysis.
Knowledge and understanding: Students will learn which algorithms best fit which categories of problems, how to describe the application domain, how to tune parameters and hyperparameters of the model, how to test performances.
Applying knowledge and understanding: Students will experiment the main algorithms using the Weka ML software Weka, Tensor Flow or scikit-learn.
Critical and judgmental skills: Students will be able to will understand the categories of problems that can be efficiently solved with machine learning algorithms, under which conditions.
Communication skills: These will be tested during written exams and project reporting.
Ability of learning: Students will receive a solid basis for further deepening of more advanced methods, such as deep learning, probabilistic learning, and others |
First year |
First semester |
6 |
INF/01 |
|
10589558 - Methods in Computer Science Education: Design |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047638 - MODELS OF COMPUTATION |
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. |
First year |
First semester |
6 |
INF/01 |
|
1047642 - SECURITY IN SOFTWARE APPLICATIONS |
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. |
First year |
First semester |
6 |
INF/01 |
|
1041764 - BIG DATA COMPUTING |
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. |
First year |
Second semester |
6 |
INF/01 |
|
1047205 - CLOUD COMPUTING |
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. |
First year |
Second semester |
6 |
INF/01 |
|
10593236 - Deep Learning and Applied Artificial Intelligence |
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. |
First year |
Second semester |
6 |
INF/01 |
|
1047630 - HUMAN COMPUTER INTERACTION ON THE WEB |
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. |
First year |
Second semester |
6 |
INF/01 |
|
1047634 - INTERNET OF THINGS |
General objectives: The course will provide students with both theoretical and practical background on wireless and Internet of Things systems. The course includes an 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 requires 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, 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 on programming IoT devices in a lab.
Course summary: -Introduction to Wireless Systems (design challenges of a wireless system; things to know on how the signal propagate, on how to design a low power system and on how to cope with limited resources available) -From 2G to 5G: Cellular systems evolution towards an integrated system including also Internet of Things (Architecture, Protocols, Procedures, detailed presentation of how cellular systems work) -Sensing systems basics: MAC protocols, routing protocols, localization and synchronization -Towards the Internet of Things: features, standards, open challenges, low power IoT radio technologies -SigFox, LoRa -Trends in Internet of Things research. This part will cover on going research issues related to future generation IoT systems. It will be based on research papers and maybe subject of revision during the class based on students interests and emerging topics. The following topics are expected to be addressed: *Towards zero energy consuming IoT systems: how energy harvesting and wake up radios, as well as passive backscattering technologies are changing what and for how long we can do in IoT systems. * IoT security issues and how blockchain technologies is being exploited in large scale IoT deployments to enable IoT vertical applications. * When IoT meets machine learning: system level optimization at scale through machine learning techniques. * IoUT (Internet of Underwater Things): how IoT, robotic technologies and machine learning are changing the Blue Economy sector. - Lab: IoT systems programming
Knowledge and understanding: At the end of the course, students will have acquired knowledge about the performance trade offs associated to different system design choices and will be able to read and understand technical documents on wireless and IoT systems (papers, standards,---). At the end of the course, students will be able to analyze standards and technical documents, understanding and implementing them. He/she will have done practical hands on experience on the programming and performance evaluation of such systems.
Application of knowledge and understanding: 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. |
First year |
Second semester |
6 |
INF/01 |
|
1047636 - MATHEMATICAL LOGIC FOR COMPUTER SCIENCE |
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. |
First year |
Second semester |
6 |
INF/01 |
|
10589557 - Methods in Computer Science Education: Analysis |
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. |
First year |
Second semester |
6 |
INF/01 |
|
1038141 - NATURAL LANGUAGE PROCESSING |
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. |
First year |
Second semester |
6 |
INF/01 |
|
10589555 - Practical Network Defense |
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. |
First year |
Second semester |
6 |
INF/01 |
|
10589621 - Advanced Machine Learning |
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. |
Second year |
First semester |
6 |
INF/01 |
|
1047615 - AUTOMATIC SOFTWARE VERIFICATION METHODS |
General goals: The course aims at presenting methods and tools for automatic verification and validation of cyber-physical systems.
Specific goals: The course aims at making students proficient in the comprehension and application of advanced modelling, verificaton and validation techniques for cyber-physical systems.
Knowledge and understanding: A wide-spectrum introduction to the foundational principles of modelling and analisys of cyberphysical systems modelled as DAE (Differential Algebraic Equations).
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, verificaton and validation of cyber-physical systems.
Critical and judgmental abilities: Students will be able to take autonomous and rational decisions on the most effective techniques to employ for the modelling, verification and validation of cyber-physical systems.
Communication skills: Students will be able to interact proficiently with domain experts on a wide set of topics concerning modelling, verification and validation of cyber-physical systems.
Learning abilities: Students will be able to extend their skills in the subjects of this course, by the autonomous reading of relevant scientific literature. |
Second year |
First semester |
6 |
INF/01 |
|
1047616 - COMPUTATIONAL COMPLEXITY |
General goals: This represents a basic course about the Theory of Computational Complexity
Specific goals: - Theoretical model of resource running time - Theoretical model ofresource 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. |
Second year |
First semester |
6 |
INF/01 |
|
1047618 - COMPUTER VISION |
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. |
Second year |
First semester |
6 |
INF/01 |
|
1047628 - FUNDAMENTALS OF COMPUTER GRAPHICS |
General goals: Familiarity with Physically-based rendering, geometry processing and some simulation ideas.
Specific goals: Topics include: path tracing, monte carlo methods, bidirectional reflectance distribution function, microfacet models, importance sampling, multiple importance sampling, subdivision surfaces, bump and normal mapping, volumetric scattering.
Knowledge and understanding: Understand how to physically-based rendering methods work and which light paths are supported well; understand how to model the appearance of real-world surfaces; understand how to represent geometry in a rendering.
Applying knowledge and understanding: Implementation of a fully featured path tracer with support for arbitrary materials, volumetric scattering and smooth and rough geometry.
Critical and judgmental abilities: To be able to evaluate the performance trade-offs of different realistic rendering methods with respect the light/surface or light/volume interactions they support.
Communication skills: To be able to communicate clearly how realistic rendering methods work, how they are designed and what 3D scenes or image features they support.
Ability to learn: To be able to investigate more complex rendering algorithms, such as bidirectional methods and Monte Carlo chain methods. To able to work comfortably on movie production renderers. |
Second year |
First semester |
6 |
INF/01 |
|
1047640 - NETWORK ALGORITHMS |
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. |
Second year |
First semester |
6 |
INF/01 |
|
1047613 - ADVANCED ALGORITHMS |
General goals: The course presents algorithms and data structures that are used in the efficient resolution of important applied problems.
Specific goals:
Applying knowledge and understanding: Students will acquire the knowledge for outlining the mathematical kernel of a new problem and for identifying the appropriate techniques for designing the procedures that will lead to the solution.
Critical and judgmental abilities: Students will be able to understand whch is the best way to abstract, represent and organize information available about the specific problem to be tackled
Communication skills: Students will acquire the right language to present algorithmic ideas that allow to express the characteristic of a particular problem.
Ability of learning: Each student will be an "algorithmically thinking" person, i.e. a person able to extract, just by pure reasoning, all the knowledge possible from a situation. |
Second year |
Second semester |
6 |
INF/01 |
|
1047619 - CONCURRENT SYSTEMS |
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 |
Second year |
Second semester |
6 |
INF/01 |
|
1047623 - DATA AND NETWORK SECURITY |
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. |
Second year |
Second semester |
6 |
INF/01 |
|
1047631 - INFORMATION SYSTEMS |
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 time, 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 |
Second year |
Second semester |
6 |
SECS-P/07 |
|
1047633 - INTENSIVE COMPUTATION |
General goals: The aim of the course is to illustrate the methods for solving problems requiring intensive computation, mainly in the scientific field, and adequate parallel computer architectures.
Specific goals: Matlab programming. Sparse matrices representation. Linear algebras methods. Advanced parallel computer architectures.
Knowledge and understanding Knowing and understanding the methods of scientific computing and parallel computer architectures.
Applying knowledge and understanding: Being able to solve problems using the methods of scientific computing; being able to efficiently use Matlab programming; being able to analyse the obtained results.
Critiquing and judgmental skills: Being able to choose the best approach, among those considered, for solving a specific problem; being able to correctly compare the results obtained utilizing different methods and architectures.
Communication skills: Being able to motivate the choices taken in solving a problem requiring high performance computing.
Learning skills: Understanding the differences and the advantages of the different approaches to the solution of problem. Understanding the differences and the advantages when using different computer architectures. |
Second year |
Second semester |
6 |
INF/01 |
|
1047639 - MULTIMODAL INTERACTION |
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. |
Second year |
Second semester |
6 |
INF/01 |
|
1047643 - TOPICS IN PHYSICS |
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. |
Second year |
Second semester |
6 |
FIS/01 |
|