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

Curriculum(s) for 2024 - Applied Computer Science and Artificial Intelligence (30786)

Single curriculum

1st year

LessonSemesterCFULanguage
10595099 | CALCULUS1st12ENG

Educational objectives

General Objectives:

to obtain a general knowledge of the basic techniques of Differential Calculus and of the standard applications to problems of maxima-minima of functions of a real variable and to the study of their graph; to provide the student with basic mathematical analysis tools such as : the theory of series, integral calculus and ordinary differential equations.

The course is organized in two units: Calculus Unit 1 and Calculus Unit 2. Check these Units for the Specific Objectives.

UNIT 21st6ENG
10595546 | Computer Architecture1st12ENG

Educational objectives

General goals:
How to design combinational and sequential circuits and to make students understand the principles used to design modern computers. In particular, the course deals with the internal structure of the microprocessor and the ideas that have allowed the extraordinary evolution of computing power over the last 30 years. such as pipelining, caching, branch prediction, and multi-processing.

Specific goals:
binary encoding of different data types, boolean algebra, analysis and synthesis of combinational circuits, flip-flop, analysis and synthesis of sequential circuits, registers, , interconnection between register and functional units. Moreover, the course covers the basic principles of microprocessor organization and the concepts of pipelining, caching, branch prediction, virtualization and multi-processing. Furthermore, the course covers assembly programming.

Knowledge and understanding:
Knowing and understanding the handling and processing of information on a computer. Moreover, students will acquire knowledge about the organization of the microprocessor MIPS, as implementation of the general ideas that are part of the objectives of the course. Furthermore, the student will acquire knowledge on how the assembly programs are structured, including data structures, standard programming paradigms and recursion.

Applying knowledge and understanding:
Show the ability of designing simple combinational and sequential circuits that perform specific tasks. Moreover, the knowledge is applied to the MIPS architecture, enabling students to understand the implications of programming choices on the performance of programs on specific hardware. This result is obtained through programming and performance evaluation exercises.

Critiquing and judgmental skills:
Being able to choose the best approach, among those considered, for solving a specific task. Moreover, the student will be able to understand the problems related to the performance of the software on specific hardware and to independently evaluate their characteristics.

Communication skills:
Being able to evaluate and motivate the choices taken in the design of a circuit. To instruct on the rigorous presentation of formal topics.

Learning skills:
Understanding the differences and advantages of the different design techniques. Moreover, the course lays the foundations for the comprehension of the modules constituting the course of Operating Systems and of all the courses of programming, including the programming of parallel systems.

Unit 21st6ENG

Educational objectives

General goals:
How to design combinational and sequential circuits and to make students understand the principles used to design modern computers. In particular, the course deals with the internal structure of the microprocessor and the ideas that have allowed the extraordinary evolution of computing power over the last 30 years. such as pipelining, caching, branch prediction, and multi-processing.

Specific goals:
binary encoding of different data types, boolean algebra, analysis and synthesis of combinational circuits, flip-flop, analysis and synthesis of sequential circuits, registers, , interconnection between register and functional units. Moreover, the course covers the basic principles of microprocessor organization and the concepts of pipelining, caching, branch prediction, virtualization and multi-processing. Furthermore, the course covers assembly programming.

Knowledge and understanding:
Knowing and understanding the handling and processing of information on a computer. Moreover, students will acquire knowledge about the organization of the microprocessor MIPS, as implementation of the general ideas that are part of the objectives of the course. Furthermore, the student will acquire knowledge on how the assembly programs are structured, including data structures, standard programming paradigms and recursion.

Applying knowledge and understanding:
Show the ability of designing simple combinational and sequential circuits that perform specific tasks. Moreover, the knowledge is applied to the MIPS architecture, enabling students to understand the implications of programming choices on the performance of programs on specific hardware. This result is obtained through programming and performance evaluation exercises.

Critiquing and judgmental skills:
Being able to choose the best approach, among those considered, for solving a specific task. Moreover, the student will be able to understand the problems related to the performance of the software on specific hardware and to independently evaluate their characteristics.

Communication skills:
Being able to evaluate and motivate the choices taken in the design of a circuit. To instruct on the rigorous presentation of formal topics.

Learning skills:
Understanding the differences and advantages of the different design techniques. Moreover, the course lays the foundations for the comprehension of the modules constituting the course of Operating Systems and of all the courses of programming, including the programming of parallel systems.

10595524 | Linear Algebra1st6ENG

Educational objectives

General goals:
To provide basic knowledge on topics of group theory and linear algebra which are commonly used in computer science.

Specific goals:
Basic algebra concepts
Introduction to algebraic structures
Development of the language of linear algebra: vector spaces and their homomorphisms; vector spaces, numbers, and matrix algebra; endomorphisms, determinants and diagonalization; applications.

Knowledge and understanding:
A successful student will be able to make computations in small groups of easy structure and understand the meaning and use of matrices in the study of linear phenomena.

Application of knowledge and understanding:
Use of diagonalization of linear operators to get geometrical interpretation of a linear problem and gather relevant information. Use of the group concept in the study of finite combinatorial problems.

Critiquing and judgmental skills:
Students will be able to choose the appropriate algebraic setting for the description of a problem.

Communication skills:
Students will learn the linear algebra and group language, along with basics of complexity theory.

Learning ability:
Understanding the language of linear algebra and groups will allow students to learn topics that employ them.

10595102 | PROGRAMMING1st12ENG

Educational objectives

General objectives:
This course will introduce students to very basic algorithm design and analysis. They will learn various established algorithms for solving fundamental problems, such as sorting or searching, together with the simplest tools to analyze them.

Knowledge and understanding
At the end of the course, students will be familiar with the basic methodologies for the design and analysis of iterative and recursive algorithms, elementary data structures, major sorting algorithms, and the most basic implementations of the dictionaries.
Apply knowledge and understanding:
At the end of the course, students will have become familiar with the main basic data structures, in particular those implementing dictionaries. They will be able to explain the algorithms and analyze their time complexity, highlighting how their performances depend on the used data structure. They will be able to design new data structures and related algorithms based on the existing ones; they will be able to explain the main sorting algorithms, illustrating the underlying design strategies and their time complexity analysis; they will be able to compare the asymptotic behavior of the execution times of the studied algorithms, to design recursive solutions to problems and to analyze their asymptotic time complexity.

Critical and judgmental skills
Students will be able to analyze the quality of an algorithm and related data structures, both from the effective resolution of the problem and from the time complexity point of view.

Communication skills
Students will acquire the ability to expose their knowledge in a clear and organized way, which will be verified both through the written tests and during the oral examination. Students will be able to express an algorithmic idea rigorously at a high level, in pseudocode.

Learning ability
The acquired knowledge will allow students to face the study of other algorithmic design methodologies and more advanced data structures within a master's degree course.

UNIT 11st6ENG
UNIT 21st6ENG
1049269 | ALGORITHMS2nd6ENG

Educational objectives

General goals
Introduction to basic algorithm design and analysis, iterative and recursive algorithms, and the computation of their computational efficiency.

Specific goals:
Knowledge and understanding:
At the end of the course students will know the basic methodologies for the design and analysis of iterative and recursive algorithms, elementary data structures, some ways to explore such structures, the main sorting algorithms and the most basic implementations of the dictionaries.

Applying knowledge and understanding:
At the end of the course students will have become familiar with the main basic data structures, in particular those implementing dictionaries. They will be able to explain the algorithms and analyze their time complexity, highlighting how their performances depend on the used data structure. They will be able to design new data structures and related algorithms, on the basis of the existing ones; they will be able to explain the main sorting algorithms, illustrating the underlying design strategies and their time complexity analysis; they will be able to compare the asymptotic behavior of the execution times of the studied algorithms, to design recursive solutions to problems and to analyze their asymptotic time complexity.

Critiquing and judgmental skills:
Students will be able to analyze the quality of an algorithm and related data structures, 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 both through the written tests and during the
oral examination. Students will be able to express an algorithmic idea rigorously at high level, in pseudocode.

Learning ability:
The acquired knowledge will allow students to face the study of other algorithmic methodologies and of more advanced data structures within a master's degree course.

10595099 | CALCULUS2nd12ENG

Educational objectives

General Objectives:

to obtain a general knowledge of the basic techniques of Differential Calculus and of the standard applications to problems of maxima-minima of functions of a real variable and to the study of their graph; to provide the student with basic mathematical analysis tools such as : the theory of series, integral calculus and ordinary differential equations.

The course is organized in two units: Calculus Unit 1 and Calculus Unit 2. Check these Units for the Specific Objectives.

UNIT 12nd6ENG
10595546 | Computer Architecture2nd12ENG

Educational objectives

General goals:
How to design combinational and sequential circuits and to make students understand the principles used to design modern computers. In particular, the course deals with the internal structure of the microprocessor and the ideas that have allowed the extraordinary evolution of computing power over the last 30 years. such as pipelining, caching, branch prediction, and multi-processing.

Specific goals:
binary encoding of different data types, boolean algebra, analysis and synthesis of combinational circuits, flip-flop, analysis and synthesis of sequential circuits, registers, , interconnection between register and functional units. Moreover, the course covers the basic principles of microprocessor organization and the concepts of pipelining, caching, branch prediction, virtualization and multi-processing. Furthermore, the course covers assembly programming.

Knowledge and understanding:
Knowing and understanding the handling and processing of information on a computer. Moreover, students will acquire knowledge about the organization of the microprocessor MIPS, as implementation of the general ideas that are part of the objectives of the course. Furthermore, the student will acquire knowledge on how the assembly programs are structured, including data structures, standard programming paradigms and recursion.

Applying knowledge and understanding:
Show the ability of designing simple combinational and sequential circuits that perform specific tasks. Moreover, the knowledge is applied to the MIPS architecture, enabling students to understand the implications of programming choices on the performance of programs on specific hardware. This result is obtained through programming and performance evaluation exercises.

Critiquing and judgmental skills:
Being able to choose the best approach, among those considered, for solving a specific task. Moreover, the student will be able to understand the problems related to the performance of the software on specific hardware and to independently evaluate their characteristics.

Communication skills:
Being able to evaluate and motivate the choices taken in the design of a circuit. To instruct on the rigorous presentation of formal topics.

Learning skills:
Understanding the differences and advantages of the different design techniques. Moreover, the course lays the foundations for the comprehension of the modules constituting the course of Operating Systems and of all the courses of programming, including the programming of parallel systems.

Unit 12nd6ENG
10595523 | Physics2nd6ENG

Educational objectives

GENERAL OBJECTIVES:
1) To describe the fundamental laws of physics and their applications to real-world situations.
2) To develop problem-solving skills by describing physical phenomena with mathematical formulae on one hand, and physics intuition on the other hand.

SPECIFIC OBJECTIVES:
Knowledge and understanding

3) To develop a basic understanding of Newtonian mechanics, physics of fluids, thermodynamics, electricity and magnetism.
4) To know the fundamental concepts of force, torque, work, potential energy, kinetic energy, mechanical energy, power, impulse, linear and angular momentum.
5) To know some of the conservation laws in physics and their importance.
6) To know the concepts of temperature, heat and entropy applied to simple thermodynamic systems.
7) To know the concepts of electric field and potential, magnetic field and electrical currents.
8) To understand the text of a physics problem.

Application capabilities
The student will be able.
9) To solve a wide range of physics problems by formalising their solution from the mathematical point of view.
10) To solve a physics problem in a coherent way, both from a formal and a quantitative point of view.
11) To evaluate the dominant effects in a physics problem.
12) To apply Newton’s laws to describe the motion of particles, systems of particles and the rotation of rigid bodies.
13) To solve dynamical problems using the concepts of work, kinetic energy, potential and mechanical energy.
14) To use the conservation of energy, linear momentum and angular momentum in a variety of situations.
15) To solve simple problems involving fluids at rest and in motion.
16) To solve simple problems involving thermal energy using the first law of thermodynamics.
17) To show a basic understanding of the concept of entropy and the second law of thermodynamics.
18) To describe the electric fields and associated potentials for stationary charges.
19) To describe the magnetic fields generated by steady currents and phenomena involving electromagnetic induction.

Critical and judgmental skills
20) To be able to establish whether a relation between physical quantities, or a physical law, is correct, also from the dimensional point of view.
21) To develop quantitative and analytical reasoning skills required to study, model and understand physics problems.

Communication skills
22) To be able to talk about physics using an appropriate terminology.
23) To know how to describe a complex problem, by isolating its most relevant aspects.Learning skills
24) To be able to consult a physics textbook.

10600241 | PROGRAMMING 22nd6ENG

Educational objectives

General goals:
Learning fundamental notions in object oriented programming through the Java language.

Specific goals:
Notions of object oriented programming: classes and objects, embedding, inheritance, polymorphism, static and dynamic binding, design patterns. Functional programming. Tools and methodologies of software development. The Java language.

Knowledge and understanding:
Knowledge of the constructs of object oriented programming, with special focus on Java. Understanding a Java program. Competence in developing small and medium size Java programs.

Applying knowledge and understanding:
Capability of applying basic development methodologies for small and medium size software systems. Experience with tools for developing such systems in Java.

Critical and judgmental skills:
Critical skills in distinguishing wrong or inefficient instructions, programming constructs and patterns from the appropriate and efficient ones.

Communication skills:
Presentation of the developed project.

Learning ability:
Capability of learning and applying new programming techniques starting from the ones viewed in the course.

2nd year

LessonSemesterCFULanguage
10595529 | Calculus 21st6ENG

Educational objectives

General objectives:
The course aims to provide the fundamental elements of differential and integral calculus for functions of several variables necessary for the understanding of the main scientific disciplines, with particular attention to the computer sciences.

Knowledge and understanding:
At the end of the course, students will be able and will have to demonstrate that they have mastered the fundamental elements of differential and integral calculus for functions of several variables and that they will be able to solve related exercises and problems. They will also have to be able to prove some significant theorems.

10595617 | Data Management and Analysis1st12ENG

Educational objectives

General goals:
Being able to design/evaluate properties, physical organization and concurrency management of a relational database

Specific goals:
Knowledge of properties for a relational schema and a decomposition. Ability to use relational algebra expression for querying information in a relational database. Awareness about operation costs for data management.

Knwoledge and understanding:
Theoretical foundation of database design and formal languages for database querying (relational algebra). Data structures for the storage and management of data.

Applying knowledge and understanding:
Designing relational schema with "good properties". Querying a database by means of relational algebra. Evaluate operation costs of foundational operations over a database management system under different storage methods.

Analysis and evaluation skills:
Being able to ealuate the properties of a relational database and its decomposition. Being able to select the best data structure for the database management system.

Communication skills:
Being able to present/share the qualitative and quantitative characteristics of a relational database.

Unit 21st6ENG

Educational objectives

General goals:
Being able to design/evaluate properties, physical organization and concurrency management of a relational database

Specific goals:
Knowledge of properties for a relational schema and a decomposition. Ability to use relational algebra expression for querying information in a relational database. Awareness about operation costs for data management.

Knwoledge and understanding:
Theoretical foundation of database design and formal languages for database querying (relational algebra). Data structures for the storage and management of data.

Applying knowledge and understanding:
Designing relational schema with "good properties". Querying a database by means of relational algebra. Evaluate operation costs of foundational operations over a database management system under different storage methods.

Analysis and evaluation skills:
Being able to ealuate the properties of a relational database and its decomposition. Being able to select the best data structure for the database management system.

Communication skills:
Being able to present/share the qualitative and quantitative characteristics of a relational database.

10595525 | Probability1st6ENG

Educational objectives

General goals: to acquire knowledge and ability to apply basic topics of probability and statistics.

Specific goals: Axioms and elementary properties of probabilities. Random variables. Continuous and discrete distributions. Expected values. Introduction to estimation theory and hypothesis testing.

Knowledge and understanding:
At the end of the course the student will have acquired the basic notions and results related to probability theory on finite and countable spaces, to the concept of random discrete vectors and to the concept of continuous random variable.

Applying knowledge and understanding:
At the end of the course the student will be able to solve simple problems in discrete probability, problems concerning discrete random vectors and random numbers represented by continuous random variables. The student will also be able to understand the meaning and implications of independence and conditioning (in the context of discrete models), to understand the meaning of some fundamental limit theorems, such as the law of large numbers.

Critiquing and judgmental skills:
Students will have the bases to analyse and to build simple probabilistic models for physics, biology and technology, simulate discrete probability distributions, as well as the Gaussian distribution and understand the use of some elementary tools in statistics, like inference, sampling and simulation.

Communication skills:
Ability to expose the contents of the course in the oral part of the test and in any theoretical questions present in the written test.

Learning ability:
The acquired knowledge will allow a study, individual or given in a course related to more specialized aspects of probability theory.

10595616 | Systems and Networking1st12ENG

Educational objectives

General goals:
The course aims at providing a complete overview on the concepts, structure, and design mechanisms of (modern) operating systems.
Students will learn how to proficiently make use of the programming interface between the user/software developer and the OS kernel, in order to get access to the resources managed by the OS (in particular for UNIX/Linux OSs).

Specific goals:
Main characteristics and properties of modern operating systems, with a special focus on UNIX/Linux OSs. Firstly, it will be discussed the evolution of operating systems; then, the basic hardware components of a general-purpose computer system (i.e., CPU, main memory, and I/O devices) will be described. On top of that, the main functionalities of an operating system will be analyzed; specifically, the following main concepts will be covered: processes/threads abstraction and their scheduling on the CPU, deadlock and concurrency issues, memory management, file system organization, and security.

Knowledge and understanding:
Students will acquire an in-depth knowledge of how modern operating systems support the execution of user programs along with how they manage any hardware device attached to the system. In addition, students will understand how processes are laid out in main memory and how the OS is able to manage multiple processes all loaded in main memory at the same time (i.e., multiprogramming), despite having a limited amount of physical resources available.
Finally, students will get to know some of the internals of the Linux OS, along with the BASH shell and the main system calls provided.
Moreover, the course provides students with the basic knowledge of:
Computer networking fundamental concepts: protocol layers and services;
Fundamental problems and related solutions in the definitions of communication protocols at the different layer: physical layer, data-link (MAC sub-layer included), network, transport and application layer, in a modern network architecture;
Main features of the communication protocols involved in a TCP/IP architecture
Network simulation

Applied knowledge and understanding:
Students will be able to design user and system programs that are both efficient and secure.
BASH scripting along with C programs that make use of the Linux system call APIs will also be discussed.
Moreover, at the end of the course, the students will be able to:
Fully understand the goals, features, and behavior of existing protocols and telecommunication systems;
Understand the reasons at the basis of protocol design choices in the particular case of the TCP-IP and make related informed choices in real application contexts.

Critical and judgement skills:
The course will provide students with all the background knowledge to understand what and how resources are used by a computer program, and therefore identify/correct for possible deadlock or starvation issues.
Moreover, students will be able to select the best approach to solve specific tasks, either using simple command line tools, BASH scripts, C programs (or alike), or a combination of all of them.

Communication skills:
Students are expected to report accurately what are the main characteristics of a modern operating system.
In addition, they must be able to effectively document BASH scripts and C programs (or alike).

Learning ability:
Operating systems are one of the best examples of very complex software systems. As such, the set of skills acquired during this course will be relevant in any other domain where such complexity gets even more pronounced: e.g., networking/distributed systems, cloud computing systems, big data processing/analysis systems.

UNIT 2

Unit 11st6ENG
Unit 21st6ENG

Educational objectives

The Operating System (OS) is the key component of any modern computing device. Moreover, it very well represents a fundamental concept at the heart of any Computer Science curriculum, namely abstraction. More specifically, by virtualizing the physical resources of a computer system, OS allows programmers to develop software applications without worrying about the nitty-gritty of the hardware. Decoupling the software from the hardware guarantees more flexibility for the system developer as well as greater usability for the end user. It is, therefore, essential for any Computer Science student to have the ability to comprehend how to effectively and efficiently design and exploit the main functionalities of a highly complex software system, such as a modern operating system.
To this end, in this course, we will deeply discuss the key responsibilities of so-called general-purpose OSs (i.e., those typically installed on our PCs and laptops). Amongst those responsibilities are: CPU scheduling, process/thread synchronization, memory management, and file systems, just to name a few. In addition, we will explore how OSs should adapt to resource-limited mobile devices (i.e., tablets and smartphones).
All the concepts introduced are totally covered by the lecture materials provided during the course and will be treated independently from a specific operating system implementation. However, many examples will be taken from popular OSs available on the market, like UNIX/Linux, Windows, macOS, Android, iOS, etc.

10595618 | Artificial Intelligence and Machine Learning 2nd12ENG

Educational objectives

Artificial Intelligence and Machine Learning Unit I
General goals:

The course aims to introduce students to a wide-spectrum presentation of artificial intelligence (AI), with a focus on automated reasoning.

Specific goals:

The course pursues the objective of making students proficient in the comprehension, use, adaptation and development of solutions to a wide set of AI problems in the context of intelligent software system design, ranging from search to constraint satisfaction, from formal languages to deductive systems.

Knowledge and understanding:

Students will learn about core approaches and heuristics for search and constraint satisfaction problems, knowledge representation and reasoning in propositional logic and first-order logic.

Applying knowledge and understanding:

Learners will be able to appropriately represent AI problems from the perspective of an intelligent agent, exploit the portfolio of techniques and the different approaches shown in the course for the solution of new problems, and explain the rationale behind the autonomous decision-making process of an agent.

Critical and judgmental skills:

Students will be able to assess advantages and challenges in applying and adapting known techniques to design intelligent software systems, examine the environment setting, define a utility function to measure the performance of autonomous agents, and devise new solutions tailored to the novel challenges in AI.

Communication skills:

Learners will acquire the ability to expose their knowledge in a clear and organised manner to propose AI-based solutions, formalise the challenged problems, and effectively discuss their ideas with experts in the field.

Learning capabilities:

The acquired competencies will allow students to independently deepen and broaden their range of knowledge and capabilities, equipped with the necessary interpretation instruments to read published works in the scientific literature on AI autonomously.

Unit 12nd6ENG
Unit 22nd6ENG

Educational objectives

Artificial Intelligence and Machine Learning Unit I
General goals:

The course aims to introduce students to a wide-spectrum presentation of artificial intelligence (AI), with a focus on automated reasoning.

Specific goals:

The course pursues the objective of making students proficient in the comprehension, use, adaptation and development of solutions to a wide set of AI problems in the context of intelligent software system design, ranging from search to constraint satisfaction, from formal languages to deductive systems.

Knowledge and understanding:

Students will learn about core approaches and heuristics for search and constraint satisfaction problems, knowledge representation and reasoning in propositional logic and first-order logic.

Applying knowledge and understanding:

Learners will be able to appropriately represent AI problems from the perspective of an intelligent agent, exploit the portfolio of techniques and the different approaches shown in the course for the solution of new problems, and explain the rationale behind the autonomous decision-making process of an agent.

Critical and judgmental skills:

Students will be able to assess advantages and challenges in applying and adapting known techniques to design intelligent software systems, examine the environment setting, define a utility function to measure the performance of autonomous agents, and devise new solutions tailored to the novel challenges in AI.

Communication skills:

Learners will acquire the ability to expose their knowledge in a clear and organised manner to propose AI-based solutions, formalise the challenged problems, and effectively discuss their ideas with experts in the field.

Learning capabilities:

The acquired competencies will allow students to independently deepen and broaden their range of knowledge and capabilities, equipped with the necessary interpretation instruments to read published works in the scientific literature on AI autonomously.

10595610 | AI Lab: Computer Vision and NLP2nd6ENG

Educational objectives

General goals: The aim of the course is to provide to the students the knowledge the practical tools necessary to take advantage of modern Machine and Deep Learning applications. In particular, the course will focus on the study and implementation of Computer Vision and Natural Language Processing algorithms.
Specific goals: The course deals with image processing, starting from classical methods and arriving at modern techniques that exploit Machine / Deep Learning, as well as the use of Natural Language Processing together with Computer Vision to perform specific tasks.
Knowledge and understanding: The student will acquire knowledge about the modern tools used to analyze images and text in a fully automatic way using the Machine and Deep Learning. Furthermore, the student will acquire knowledge on the modern frameworks used to fulfill these tasks.
Applying knowledge and understanding: The student will be able to exploit the knowledge acquired during the course, as well as the frameworks used, to define their own Machine and Deep Learning models for solving various tasks concerning the analysis of images and text.
Critical and judgmental skills: The student will be able to understand the operations necessary to fulfill a task related to Computer Vision or Natural Language Processing and, consequently, will be able to use or define a model for its resolution.
Communication skills: The student will be able to describe in detail the Machine / Deep Learning models used.
Learning ability: The course lays the practical foundations for the use and definition of Machine and Deep Learning models that can be used in any course relating to the latter.

10595617 | Data Management and Analysis2nd12ENG

Educational objectives

General goals:
Being able to design/evaluate properties, physical organization and concurrency management of a relational database

Specific goals:
Knowledge of properties for a relational schema and a decomposition. Ability to use relational algebra expression for querying information in a relational database. Awareness about operation costs for data management.

Knwoledge and understanding:
Theoretical foundation of database design and formal languages for database querying (relational algebra). Data structures for the storage and management of data.

Applying knowledge and understanding:
Designing relational schema with "good properties". Querying a database by means of relational algebra. Evaluate operation costs of foundational operations over a database management system under different storage methods.

Analysis and evaluation skills:
Being able to ealuate the properties of a relational database and its decomposition. Being able to select the best data structure for the database management system.

Communication skills:
Being able to present/share the qualitative and quantitative characteristics of a relational database.

Unit 12nd6ENG

Educational objectives

General goals:

Introductory course to machine learning (ML) and how to build predictive systems with supervised and unsupervised ML.

Specific goals:

The course is meant to introduce the discipline of machine learning, a class of methods that learn patterns from data and perform predictions on new data. This unit complements the Unit I of the same course. Note this is an introductory course to Machine Learning (ML) and is not an entire course on “Deep Learning” (DL) although some basic DL concepts are introduced and covered. The course is meant to prepare the students for the advanced Deep Learning course in the third year.

Course goals:

1) Introduction to ML, when it is useful, paradigms and applications.

2) Supervised Learning. Parametric Models: linear regression, logistic regression, regularization; multilayer perceptron, overparameterized models; the backpropagation algorithm; gradient descent; computational graph for automatic differentiation; loss function for classification. Support Vector Machines: Optimal hyperplane, margin, kernels. Non-parametric models: the nearest neighbour (NN) classifier, decision trees/random forest.

4) Design and implement ML system: Data visualization and analysis, cross-validation, hyper-parameters.

Knowledge and understanding

The acquired knowledge and skills are measured along two axes: providing the students with theoretical principles related to machine learning algorithms. Obtaining skills on how to apply such concepts in practice to a synthetic or real dataset of small size. In terms of structure and philosophy, I would balance the amount of theoretical content (knowing what you are doing) with practical sessions (knowing how to do it).

Applying knowledge and understanding

We will be using tools such as Numpy (with an emphasis on vectorized code), scikit learn, PyTorch, (automatic differentiation e small neural nets) to implement base ML systems. The domains of applications could be related to synthetic data or images.

Critical and judgmental skills:

Develop critical thinking on the application and usage of ML tools; develop awareness of ML systems and their performance and learn how to evaluate their performance on real data. Learn how to distinguish between the pros and cons of different algorithms and choose the most appropriate.

Communication skills:

Students should show fluency and competence on the topics taught in class, expressing the concept clearly and concisely with rigorousness and the right terminology. The communication skills could be also assessed through a report on the practical activity done, motivating well the decision taken.

Learning ability:

The course sets the basis to understand more advanced scientific papers on ML systems and their applications to computer visions and NLP; it should also provide the foundations for advanced courses on Deep Learning.

1055043 | Statistics2nd6ENG

Educational objectives

The main objective of the course is to show the most popular techniques of non parametric inference, mainly from a Bayesian perspective.
Covered topics include Dirichlet processes and its ramifications with special emphasis to applications of above methods in data science applications.

General objectives:
The aim of the course is to provide the basis of the theory of sequences and series of functions and of the theory of functions of complex variable, with applications to Laplace transform and easy applications to the Fourier transformation.

Specific objectives:
To know the basis of the theory of approximation, with particular attention to the notions of pointwise and uniform convergence for sequences of functions (of one or more real variables) and of pointwise, absolute, uniform and total convergence for series of functions, in particular for power series and trigonometric series. Standard deviation and convergence in quadratic mean, Parseval equality for trigonometric series. To know the basis of the theory of functions of complex variable, with particular attention to the notions of holomorphy, of singular point, of residue, of Laplace transform and inversion formula.

Knowledge and understanding:
Being able to analyse the behaviour of sequences of functions (of one or more real variables or of one complex variable) and of series of functions of real or complex variable from the point of view of the various notions of convergences. Being able to reconstruct a signal starting from its Laplace transform, to solve Cauchy problems for linear differential equations with constant coefficients by Laplace transform and to calculate simple Fourier transforms.

Apply knowledge and understanding:
Being able to analyse the behaviour of sequences of functions (of one or more real variables or of one complex variable) and of series of functions of real or complex variable from the point of view of the various notions of convergences. Being able to reconstruct a signal starting from its Laplace transform, to solve Cauchy problems for linear differential equations with constant coefficients by Laplace transform and to calculate simple Fourier transforms.

3rd year

LessonSemesterCFULanguage
10595530 | Foundations of Computer Science1st6ENG

Educational objectives

General goals:
The course introduces the students to some of the most important results in theoretical computer science: from the fundamental results in computability theory of the thirties, through the ones in automata theory of the fifties to the challenging open problem P versus NP, raised in the seventies.

Specific goals:
Students will understand that there are different models of computation and the reason for their different computational power.

The students will become familiar with abstract concepts such as language classes, universal machines, reducibility and they will know that some problems are impossible to solve by computers and that others are difficult to solve, even so difficult to solve that they could be considered unsolvable. They will see today's use of some of these results.

Knowledge and understanding:
By the end of the course the students will get familiar with the basic methods and results of the Theory of Computability and Complexity and they will be able to apply them to evaluate the complexity of problems from various fields. In particular, they will be able to:
prove the equivalence between different characterizations of regular languages
prove the equivalence between different characterizations of context-free languages
explain the concept of nondeterminism
explain the existence of problems without algorithmic solutions or those which are intractable

Applying knowledge and understanding:
By the end of the course the students will be able to:
build finite state automata by a formal or an informal specification of a language
build stack automata by a formal or an informal specification of a language
use reducibility between problems to prove either decidability or undecidability
use polynomial reductions to prove the NP-hardness of problems.

Critical and judgmental skills:
Understand the right level of abstraction to solve problems, choose the more convenient computational model in an applicative context.

Communication skills:
describe problems that are undecidable, not provably intractable or intractable
explain the meaning and the relevance of the question “P=NP?"

Learning ability:
The student will be able to learn other computational models, both really new or variations of the ones seen during the course. She/he will be able to understand new NP-completeness proofs or more generally completeness proofs for any complexity class.

Elective course2nd12ENG
AAF1466 | Internship2nd12ENG

Educational objectives

The programme completes with an apprenticeship, to be carried out either within companies in the IT sector (typically on topics such as software design and development, data analysis, artificial intelligence, systems and networks) or at the university, investigating advanced research issues in applied computer science and artificial intelligence within the academic environment. In both cases, the internship lasts about three months and requires that the student be offered a problem in the real world, to be solved through the elaboration of a project developed with a professional approach.

AAF2011 | Final exam2nd6ENG

Educational objectives

The programme completes with an apprenticeship, to be carried out either within companies in the IT sector (typically on topics such as software design and development, data analysis, artificial intelligence, systems and networks) or at the university, investigating advanced research issues in applied computer science and artificial intelligence within the academic environment. In both cases, the internship lasts about three months and requires that the student be offered a problem in the real world, to be solved through the elaboration of a project developed with a professional approach.

THREE-DIMENSIONAL MODELING
THREE-DIMENSIONAL MODELING

Optional groups

The student must acquire 18 CFU from the following exams
LessonYearSemesterCFULanguage
10595532 | Cybersecurity3rd1st6ENG

Educational objectives

General objectives:
The course aims at training professionals able to successfully face the challenges posed by the security problems of the information society.

Specific objectives:
The course includes the study of various models of access control, analysis of the main difficulties and resolutions of cryptographic problems and the main security protocols used in the network

Knowledge and understanding:
Upon passing the exam, the student will have knowledge and understanding of the bases of computer security and of the main technologies for the analysis and solution of security problems.

Apply knowledge and understanding:
The course enables students to apply their knowledge and understanding skills to solve IT security problems, with sufficient autonomy to deal with complex problems; and for the effective consultation of advanced scientific and technological documentation.

Autonomy of judgment:
The course aims to acquire autonomous interpretation skills to propose solutions to security problems congruent with the available technologies, and to continuously update the technological evolution, to formulate independent critical judgments contributing to the progress of system security.

Communication skills:
Students acquire the ability to present and to argue their ideas about the security problems faced and the solutions proposed, both with colleagues and with users

Next learning ability:
The course provides for the development of in-depth capabilities in the field of computer security both of methodological and technological aspects, to adapt to the progress of techniques and solutions to the most common security problems, and to continue autonomously to solve new problems. safety issues.

10595531 | Deep Learning3rd1st6ENG

Educational objectives

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

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

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

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

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

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

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

10595534 | Web and Software Architecture3rd1st6ENG

Educational objectives

General goals:
The aim of the course is the study of java language support to server side programming, for the realization of web based applications. The course will also provide a critical comparative analysis of several approaches to realize the same functionalities, for a series of problems common in the development of web applications.

Specific goals:
Server Side programming through Java Servlet and JSP.

Knowledge and understanding:
Through this course, students will comprehend how the java language supports the realization of web applications. In particular, students will focus on the motivation at the basis of all the implementation choices with reference to the client server –architecture and network protocols in use.

Applying knowledge and understanding:
Through this course, students will develop the capability to determine among potential solutions which is the most suitable in terms of performance, security, portability and efficiency.

Critical and judgmental abilities:
The course will provide students with sufficient tools and methodologies to perform a comparative analysis of different potential solution methodologies.

Communication skills:
Students will be able to motivate the solutions adopted to design a specific web application, and to provide a comparative analysis of the chosen solutions with respect to other potential approaches.

Learning ability:
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 Web applications.

10595535 | Human Computer Interaction3rd2nd6ENG

Educational objectives

General objectives:

At the end of the course the students know the theories, models and rules that guide the project and the development and validation of usable interfaces and interactive systems.
Students who pass the exam are able to design interactive systems following the criteria of human-computer interaction, analyzing the user's role, the scenarios and the main tasks, and taking into account the implementation constraints through project cycles and development very short.

Specific objectives:

Knowledge and understanding:
At the end of the course the students know the theories, the models and the rules that guide the project of interfaces and usable interactive systems.They also know the principles of agile design centered on the user.

Apply knowledge and understanding:
Students apply the knowledge gained in designing an interface as a group work for the exam.

Critical and judgmental skills:
Students, also through practical exercises, acquire skills in the evaluation and validation of human computer interfaces and develop judgment on the usability of an interface and therefore on the effects of the use of the interface in terms of effectiveness, efficiency and satisfaction. .

Communication skills:
The students support two presentations of their group work during the two revisions scheduled with the teacher. The first review is carried out in the classroom and the presentation is therefore aimed at all colleagues in order to exercise communication skills.

Learning ability:
The learning capacity is stimulated through 1) guided and autonomous supervised planning activities; 2) exposure to realistic design problems by stimulating the independent search for non-standard solutions; 3) the presentation of real cases and stimulating their critical discussion.

10595533 | Optimization3rd2nd6ENG

Educational objectives

General goals:
Introduction to mathematical modelization of optimization problems, Linear and Integer programming and their applications in real contexts.

Specific goals:
To learn:
1. Main problem modelling techniques using mathematical and logical language
2. Main theory properties and their practical applications for optimization problems
3. Linear programming and simplex algorithm and its applications.
4. Competences for software for modelling and optimization

Knowledge and understanding:
develop
1. the ability of conciseness, of logical reasoning and problem solving trhough quantitative models;
2. the ability to describe and solve e risolvere (also at high level) computationally hard problems;
3. the ability to use english written bibliography and software;
4. the ability to identify precisely optimization problems and when they are linear integer or non-linear;
5. the ability to design a implementable version of mathematical optimization problem model and finding solution
for the model using appropriate algorithms. Interpreting the solutions.

Applying knowledge and understanding:
1. Real applications of optimization problems (especially on networks)
2. Skills on using software for modelling and optimization

Critical and judgmental skills:
Enabling autonomous thinking in the student by deepening the ability of mathematical reasoning of the student through the development of logical language and problem solving abilities.

Communication skills:
Group work aimed at solving optimization problems drawn from everyday cases, develop communication abilities in explaining and focusing optimization problems on concrete working examples

Learning ability:
Skills and theoretical tools acquired during the course are basic for more advanced courses on topics concerning computational complexity, network algorithms, graph theory.

The student must acquire 6 CFU from the following exams
LessonYearSemesterCFULanguage
10595536 | Business and Computer Science3rd2nd6ENG

Educational objectives

General goals
The Business and Computer Science course analyses different types of information systems and how they can contribute to the success of a company's objectives. Also, it presents approaches and models to be used to assess the quality of ICT processes, software and services. Furthermore, it provides the basic knowledge to plan, manage and control IT projects.

Specific goals
• Knowledge and understanding
- Functional model and information structure of business processes
- integration and data control requirements of business information systems
- systems and technologies for developing and maintaining a successful e-business
- main areas of application of information systems in various market sectors
- IT organisation and IT quality assessment models
- basic background knowledge, techniques/methodologies and soft skills for ICT project management
- systems and technologies to develop&maintain a successful e-business
- main application areas of info systems in various industries
- ICT organisation and mainstream techniques (e.g. quality management)
- basic definitions (context), techniques/methodologies and soft skills for project management in ICT

• Application of knowledge and understanding
- Analyse different categories of requirements extracted from different categories of users (stakeholders) of information systems
- Select the appropriate model to assess the quality of ICT processes, software products and ICT services
- Develop a feasibility study by selecting the appropriate application and technology architecture
- Prepare, for a simple ICT project, a development plan respecting the constraints of time, cost, quality, and defining the appropriate organisation
- Monitor an ongoing ICT project, applying project management techniques
- Understand and evaluate lessons learnt in previous projects

• Critiquing and judgmental skills:
The combination of face-to-face theoretical lectures and practical exercises aimed at discussing and solving specific problems enables students to acquire the ability to assess the potential and limitations of approaches and models for the development of businesses and the achievement of their strategic objectives.

• Communication skills:
At the end of the course, students are able to illustrate and explain the main approaches to the management of the enterprise, its processes and ICT services to a variety of interlocutors who are heterogeneous in terms of background and professional role.

• Learning skills:
The student acquires the ability to independently conduct individual studies on specific topics related to information systems, process and service management. During the course, the student is stimulated to investigate topics of particular interest by consulting additional bibliographic material, such as academic articles, specialist books and websites. The acquisition of these skills is tested and assessed by analysing and solving new problems on the basis of the topics covered and the reference material distributed during the course.

10595537 | Law and Computer Science3rd2nd6ENG

Educational objectives

General Objectives:
The aim of the course is to deepen the main issues of legal regulation in information technologies, in companies and in the public administration, with reference to the topics of artificial intelligence, European regulation on the data processing and processing of personal data and electronic commerce and intellectual property relating to information technology. Legal instruments, protocols and standards of European cooperation in the use of artificial intelligence will also be presented. The course is structured in in-depth modules also with examination of practical cases.

Knowledge and understanding
At the end of the course the student is able to identify and develop the main legal knowledge in the field of data processing and artificial intelligence and therefore to operate effectively in public administrations. Furthermore, he is able to effectively participate in working groups on the use of artificial intelligence having clear the indispensable notions and legal responsibilities. The course allows the student to combine IT technological skills and economic and legal organizational skills regarding the use of IT/AI or IT/AI tools in the corporate and public sphere.

Ability to apply knowledge and understanding
For the realization of the training objectives, the teaching activities are divided into thematic in-depth modules, for the definition and intervention in specific contexts and to understand the needs of the operators.