10595529 | Calculus 2 | 1st | 6 | ENG |
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 Analysis | 1st | 12 | ENG |
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 2 | 1st | 6 | ENG |
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 | Probability | 1st | 6 | ENG |
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 Networking | 1st | 12 | ENG |
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 1 | 1st | 6 | ENG |
Unit 2 | 1st | 6 | ENG |
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 | 2nd | 12 | ENG |
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 1 | 2nd | 6 | ENG |
Unit 2 | 2nd | 6 | ENG |
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 NLP | 2nd | 6 | ENG |
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 Analysis | 2nd | 12 | ENG |
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 1 | 2nd | 6 | ENG |
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 | Statistics | 2nd | 6 | ENG |
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.
|