| 10628189 | Introduction to Computer Programming [INFO-01/A] [ITA] | 1st | 1st | 9 |
Educational objectives General objectives:
Introduction to programming through the Python language.
Specific objectives:
Introduction to programming through the Python language.
Data types, variables, assignments, control structures, functions, classes, modules and Input/Output.
Data structures: arrays, strings, lists, tuples and dictionaries.
Design and development of programs through procedural programming and object-oriented programming.
Recursive and iterative algorithms.
Python libraries for graphics, file handling, text/html processing and internet access.
Program debugging and testing.
Knowledge and understanding:
Understand and define a problem's requirements.
Choose how to represent the input and what data structures to use for intermediate computations and output.
Define the algorithm solving the problem.
Code the algorithm as a Python program.
Modularize the program as small separate functions/methods.
Test that the program satisfies the requirements.
Apply knowledge and understanding:
The student will work at home on a series of programming tasks, through the whole course, to practice and to show what has been learned.
At the end of the course, the exam will be based on a lab test where she should solve and program various programming exercises.
Critical and judgmental skills:
The student, at the end of the course, should be able to autonomously choose how to solve a programming task (analysis, implementation and test).
Communication skills:
It is very important that the student has good text comprehension abilities for the problem analysis and requirement definition phase.
Learning ability:
The ability to analyse a problem to define its requirements and design both the necessary data structures and the correct algorithm will be applicable to other programming languages and will be very useful for the following programming courses.
|
| 10629623 | Mathematical Methods for Computer Science [INFO-01/A] [ITA] | 1st | 1st | 6 |
Educational objectives Educational goals
The course is aimed at acquiring basic logical and set theory knowledge to address other topics in mathematics and computer science.
Knowledge and understanding
By the end of the course, students will have a full understanding of the mathematical tools covered:
set theory, inductive reasoning, and elementary mathematical logic.
Applying knowledge and understanding
Students will acquire the ability to conduct rigorous, yet elementary, mathematical reasoning, particularly regarding fundamental logical principles and the use of the inductive approach in all its forms.
Making judgements
Students will be able to critically address topics covered in other courses, both theoretical and applied. Numerous examples from other courses are provided.
Communication skills
Active participation in class and the practice of formalization serve to stimulate students' acquisition of mathematical language and to appropriately convey the knowledge and skills acquired.
Learning skills
The student will be able to deepen their personal study of the topics covered, using what they have learned as a foundation.
|
| AAF2511 | English level B2 [N/D] [ENG] | 1st | 1st | 6 |
Educational objectives GENERAL GOALS:
This course aims to develop B2-level communicative competence in English. Students will be able to understand and produce more complex texts autonomously and appropriately, on both concrete and abstract topics, across a variety of contexts. The course also aims to consolidate linguistic autonomy and promote active and conscious participation in foreign language communication.
SPECIFIC GOALS:
The course will focus on the main advanced grammatical and lexical structures required to develop the communicative functions defined at the B2 level.
These are the main communicative functions the course aims to develop:
- expressing well-structured opinions, giving reasons, and supporting arguments;
- understanding and participating in complex conversations, even in unfamiliar contexts;
- understanding and summarising the content of complex written and spoken texts.
KNOWLEDGE AND UNDERSTANDING:
By the end of the course, students will have acquired the main grammatical structures, vocabulary, and language functions corresponding to the upper-intermediate B2 level of the Common European Framework of Reference for Languages (CEFR).
APPLYING KNOWLEDGE AND UNDERSTANDING:
By the end of the course, students will be able to understand complex spoken and written texts on both concrete and abstract topics, including technical discussions in their areas of interest. They will also be able to write clear, organised texts and communicate effectively on a wide variety of subjects.
CRITICAL AND JUDGEMENTAL ABILITIES:
Students will be able to independently identify possible language mistakes and evaluate the accuracy and effectiveness of their oral and written texts. Through metacognitive processes, they will develop greater awareness of their language skills and of possible areas for improvement.
COMMUNICATION SKILLS:
Students will be able to communicate more fluently and accurately in various contexts, including formal ones. They will be able to interact with different interlocutors, adapting their language and register. They will know how to express complex ideas in a clear and structured way, both orally and in writing, on a wider range of topics.
LEARNING ABILITY:
The course will help students develop independent learning strategies by using various resources. They will learn to organise their study effectively by setting personal language goals and monitoring their own progress. They will also develop greater awareness of the similarities and differences between English and their native language.
|
| 10631195 | MATHEMATICAL ANALYSIS [MATH-03/A] [ITA] | 1st | 1st | 12 |
Educational objectives Educational goals
The course aims to provide a basic knowledge of Calculus and Mathematical Analysis techniques, covering fundamental concepts such as functions, limits, derivatives, integrals, numerical and power series, Taylor expansions, and ordinary differential equations. Particular attention is devoted both to theoretical tools and to their main applications, such as the study of function graphs, maxima and minima problems, and the solution of elementary differential equations.
By the end of the course, the student will be able to compute limits of functions and sequences, apply differentiation rules to the local and global study of functions, use integration methods (integration by parts and substitution) to calculate definite and indefinite integrals, discuss the convergence of numerical series, power series, and Taylor expansions of elementary functions, as well as solve first-order ordinary differential equations (separable and linear) and second-order linear differential equations with constant coefficients, both homogeneous and non-homogeneous.
Knowledge and understanding
The student will acquire the basic notions and fundamental results of Calculus and Mathematical Analysis, learning essential techniques for computing derivatives, integrals, and limits, for studying the graphs of real functions of one variable, for analyzing the convergence of sequences and series, and for solving simple ordinary differential equations.
Applying knowledge and understanding
Lectures and exercises will enable the student to tackle and solve practical problems, progressively consolidating the acquired skills.
Making judgements
The student will develop the ability to interpret and analyze concrete situations that can be described mathematically, to use graphs as analytical tools, and to autonomously apply the acquired methods to new problems encountered during studies or in professional contexts.
Communication skills
The student will be able to express themselves correctly using mathematical language, understand scientific texts of moderate complexity, and summarize their main concepts.
Learning skills
The knowledge acquired will provide the foundation for further studies, both individually and within more advanced courses, fostering autonomy in exploring additional aspects of Mathematical Analysis.
|
| MATHEMATICAL ANALYSIS I MODULE [MATH-03/A] [ITA] | 1st | 1st | 6 |
Educational objectives Educational goals
The course aims to provide a basic knowledge of Calculus and Mathematical Analysis techniques, covering fundamental concepts such as functions, limits, derivatives, integrals, numerical and power series, Taylor expansions, and ordinary differential equations. Particular attention is devoted both to theoretical tools and to their main applications, such as the study of function graphs, maxima and minima problems, and the solution of elementary differential equations.
By the end of the course, the student will be able to compute limits of functions and sequences, apply differentiation rules to the local and global study of functions, use integration methods (integration by parts and substitution) to calculate definite and indefinite integrals, discuss the convergence of numerical series, power series, and Taylor expansions of elementary functions, as well as solve first-order ordinary differential equations (separable and linear) and second-order linear differential equations with constant coefficients, both homogeneous and non-homogeneous.
Knowledge and understanding
The student will acquire the basic notions and fundamental results of Calculus and Mathematical Analysis, learning essential techniques for computing derivatives, integrals, and limits, for studying the graphs of real functions of one variable, for analyzing the convergence of sequences and series, and for solving simple ordinary differential equations.
Applying knowledge and understanding
Lectures and exercises will enable the student to tackle and solve practical problems, progressively consolidating the acquired skills.
Making judgements
The student will develop the ability to interpret and analyze concrete situations that can be described mathematically, to use graphs as analytical tools, and to autonomously apply the acquired methods to new problems encountered during studies or in professional contexts.
Communication skills
The student will be able to express themselves correctly using mathematical language, understand scientific texts of moderate complexity, and summarize their main concepts.
Learning skills
The knowledge acquired will provide the foundation for further studies, both individually and within more advanced courses, fostering autonomy in exploring additional aspects of Mathematical Analysis.
|
| MATHEMATICAL ANALYSIS II MODULE [MATH-03/A] [ITA] | 1st | 1st | 6 |
Educational objectives Educational goals
The course aims to provide a basic knowledge of Calculus and Mathematical Analysis techniques, covering fundamental concepts such as functions, limits, derivatives, integrals, numerical and power series, Taylor expansions, and ordinary differential equations. Particular attention is devoted both to theoretical tools and to their main applications, such as the study of function graphs, maxima and minima problems, and the solution of elementary differential equations.
By the end of the course, the student will be able to compute limits of functions and sequences, apply differentiation rules to the local and global study of functions, use integration methods (integration by parts and substitution) to calculate definite and indefinite integrals, discuss the convergence of numerical series, power series, and Taylor expansions of elementary functions, as well as solve first-order ordinary differential equations (separable and linear) and second-order linear differential equations with constant coefficients, both homogeneous and non-homogeneous.
Knowledge and understanding
The student will acquire the basic notions and fundamental results of Calculus and Mathematical Analysis, learning essential techniques for computing derivatives, integrals, and limits, for studying the graphs of real functions of one variable, for analyzing the convergence of sequences and series, and for solving simple ordinary differential equations.
Applying knowledge and understanding
Lectures and exercises will enable the student to tackle and solve practical problems, progressively consolidating the acquired skills.
Making judgements
The student will develop the ability to interpret and analyze concrete situations that can be described mathematically, to use graphs as analytical tools, and to autonomously apply the acquired methods to new problems encountered during studies or in professional contexts.
Communication skills
The student will be able to express themselves correctly using mathematical language, understand scientific texts of moderate complexity, and summarize their main concepts.
Learning skills
The knowledge acquired will provide the foundation for further studies, both individually and within more advanced courses, fostering autonomy in exploring additional aspects of Mathematical Analysis.
|
| 10629143 | Algorithms 1 [INFO-01/A] [ITA] | 1st | 2nd | 6 |
Educational objectives General goals
This course introduces the basic methods for designing and analyzing algorithms. Students will study various well-known algorithms that solve fundamental problems such as sorting and searching, together with the simplest tools for analyzing their efficiency.
Specific goals
Knowledge and understanding:
At the end of the course, students will be familiar with the basic methodologies for designing and analyzing iterative and recursive algorithms, elementary data structures, the main sorting algorithms, and the most basic implementations of dictionaries.
Applying knowledge and understanding:
At the end of the course, students will be familiar with the main basic data structures, particularly those implementing dictionaries. They will be able to explain their algorithms and analyze their complexity, highlighting how performance depends on the data structure used. They will be able to design new data structures and their associated algorithms by adapting existing ones; they will be able to explain the main sorting algorithms, illustrating the underlying design strategies and their complexity analyses; they will be able to compare the asymptotic behavior of the running times of the algorithms studied; and they will be able to design recursive solutions to problems and asymptotically analyze the resulting algorithms.
Critical and judgment skills:
Students will acquire the foundations needed to assess the quality of an algorithm and its associated data structures, both in terms of problem-solving effectiveness and computational efficiency. The exercises carried out in class and those assigned for independent work will help refine these skills.
Communication skills:
Students will acquire the ability to present their knowledge clearly and in an organized manner. This ability will be assessed through both written examinations and the oral examination. Students will be able to express an algorithmic idea rigorously and at a high level using pseudocode. The oral examination, which is an integral part of the assessment process, is intended to further develop these skills.
Learning skills:
The knowledge acquired will enable students to undertake the study of more advanced algorithmic techniques and data structures, either independently or within a master's degree program.
|
| 10629267 | Object-Oriented Programming [INFO-01/A] [ITA] | 1st | 2nd | 9 |
Educational objectives Educational goals:
Learning object-oriented programming concepts through the Java programming language.
Fundamentals of object oriented programming: classes and objects, encapsulation, inheritance, polymorphism, static and dynamic binding, design patterns. Functional programming. Tools and methodologies for software design through an object-oriented programming language. Java language.
Knowledge and understanding:
Knowledge of OOP constructs, with special reference to Java. Understanding a Java program. Ability to write a small- or medium-size Java programs.
Apply knowledge and understanding:
Ability to apply basic methodologies to face software system design of small and medium size. Ability to use the main development tools to implement such systems in Java.
Making judgements:
Ability to identify correct/effective and incorrect/ineffective instructions, constructs or patterns in Java.
Communication skills:
Ability to illustrate projects.
Learning skills:
Ability to learn and apply new programming techniques, starting from those learned during the course.
|
| 10629603 | Linear Algebra and geometry [MATH-02/A] [ITA] | 1st | 2nd | 6 |
Educational objectives Educational goals:
Acquire basic knowledge of systems of linear equations, vector spaces, linear mappings, affine spaces, and Euclidean spaces.
Knowledge and understanding:
By the end of the course, students will have acquired the basic concepts and results related to systems of linear equations, matrix calculus, the theory of vector spaces and linear mappings between them, affine spaces, Euclidean vector spaces, and affine Euclidean spaces.
Applying knowledge and understanding:
By the end of the course, students will be able to solve systems of linear equations, recognize mathematical problems modeled by linear mappings between vector spaces, and apply this knowledge to their solution. They will be able to work with matrices and determine the solvability of a linear system and the invertibility of a linear map by means of rank considerations and by computing the determinant of the associated matrices. They will be able to compute the eigenvalues of a linear endomorphism and determine its eigenspace decomposition. They will also be able to solve problems involving Euclidean inner products and affine and affine Euclidean spaces.
Making judgments:
Students will develop the ability to analyze the relationships between the topics covered and other areas of algebra (group theory, semigroup theory, discrete mathematics) and multivariable calculus.
Communication skills:
Ability to present the course content in the oral exam and in any theoretical questions included in the written exam.
Learning skills:
The knowledge acquired will enable students to study, independently or within a Master's degree program, more advanced topics in the theory of linear operators beyond finite-dimensional cases, the theory of families of vector spaces (vector bundles), eigenspace decompositions related to commutative algebras of endomorphisms, and Riemannian geometry.
|
| 10631195 | MATHEMATICAL ANALYSIS [MATH-03/A] [ITA] | 1st | 2nd | 12 |
Educational objectives Educational goals
The course aims to provide a basic knowledge of Calculus and Mathematical Analysis techniques, covering fundamental concepts such as functions, limits, derivatives, integrals, numerical and power series, Taylor expansions, and ordinary differential equations. Particular attention is devoted both to theoretical tools and to their main applications, such as the study of function graphs, maxima and minima problems, and the solution of elementary differential equations.
By the end of the course, the student will be able to compute limits of functions and sequences, apply differentiation rules to the local and global study of functions, use integration methods (integration by parts and substitution) to calculate definite and indefinite integrals, discuss the convergence of numerical series, power series, and Taylor expansions of elementary functions, as well as solve first-order ordinary differential equations (separable and linear) and second-order linear differential equations with constant coefficients, both homogeneous and non-homogeneous.
Knowledge and understanding
The student will acquire the basic notions and fundamental results of Calculus and Mathematical Analysis, learning essential techniques for computing derivatives, integrals, and limits, for studying the graphs of real functions of one variable, for analyzing the convergence of sequences and series, and for solving simple ordinary differential equations.
Applying knowledge and understanding
Lectures and exercises will enable the student to tackle and solve practical problems, progressively consolidating the acquired skills.
Making judgements
The student will develop the ability to interpret and analyze concrete situations that can be described mathematically, to use graphs as analytical tools, and to autonomously apply the acquired methods to new problems encountered during studies or in professional contexts.
Communication skills
The student will be able to express themselves correctly using mathematical language, understand scientific texts of moderate complexity, and summarize their main concepts.
Learning skills
The knowledge acquired will provide the foundation for further studies, both individually and within more advanced courses, fostering autonomy in exploring additional aspects of Mathematical Analysis.
|
| MATHEMATICAL ANALYSIS I MODULE [MATH-03/A] [ITA] | 1st | 2nd | 6 |
Educational objectives Educational goals
The course aims to provide a basic knowledge of Calculus and Mathematical Analysis techniques, covering fundamental concepts such as functions, limits, derivatives, integrals, numerical and power series, Taylor expansions, and ordinary differential equations. Particular attention is devoted both to theoretical tools and to their main applications, such as the study of function graphs, maxima and minima problems, and the solution of elementary differential equations.
By the end of the course, the student will be able to compute limits of functions and sequences, apply differentiation rules to the local and global study of functions, use integration methods (integration by parts and substitution) to calculate definite and indefinite integrals, discuss the convergence of numerical series, power series, and Taylor expansions of elementary functions, as well as solve first-order ordinary differential equations (separable and linear) and second-order linear differential equations with constant coefficients, both homogeneous and non-homogeneous.
Knowledge and understanding
The student will acquire the basic notions and fundamental results of Calculus and Mathematical Analysis, learning essential techniques for computing derivatives, integrals, and limits, for studying the graphs of real functions of one variable, for analyzing the convergence of sequences and series, and for solving simple ordinary differential equations.
Applying knowledge and understanding
Lectures and exercises will enable the student to tackle and solve practical problems, progressively consolidating the acquired skills.
Making judgements
The student will develop the ability to interpret and analyze concrete situations that can be described mathematically, to use graphs as analytical tools, and to autonomously apply the acquired methods to new problems encountered during studies or in professional contexts.
Communication skills
The student will be able to express themselves correctly using mathematical language, understand scientific texts of moderate complexity, and summarize their main concepts.
Learning skills
The knowledge acquired will provide the foundation for further studies, both individually and within more advanced courses, fostering autonomy in exploring additional aspects of Mathematical Analysis.
|
| MATHEMATICAL ANALYSIS II MODULE [MATH-03/A] [ITA] | 1st | 2nd | 6 |
Educational objectives Educational goals
The course aims to provide a basic knowledge of Calculus and Mathematical Analysis techniques, covering fundamental concepts such as functions, limits, derivatives, integrals, numerical and power series, Taylor expansions, and ordinary differential equations. Particular attention is devoted both to theoretical tools and to their main applications, such as the study of function graphs, maxima and minima problems, and the solution of elementary differential equations.
By the end of the course, the student will be able to compute limits of functions and sequences, apply differentiation rules to the local and global study of functions, use integration methods (integration by parts and substitution) to calculate definite and indefinite integrals, discuss the convergence of numerical series, power series, and Taylor expansions of elementary functions, as well as solve first-order ordinary differential equations (separable and linear) and second-order linear differential equations with constant coefficients, both homogeneous and non-homogeneous.
Knowledge and understanding
The student will acquire the basic notions and fundamental results of Calculus and Mathematical Analysis, learning essential techniques for computing derivatives, integrals, and limits, for studying the graphs of real functions of one variable, for analyzing the convergence of sequences and series, and for solving simple ordinary differential equations.
Applying knowledge and understanding
Lectures and exercises will enable the student to tackle and solve practical problems, progressively consolidating the acquired skills.
Making judgements
The student will develop the ability to interpret and analyze concrete situations that can be described mathematically, to use graphs as analytical tools, and to autonomously apply the acquired methods to new problems encountered during studies or in professional contexts.
Communication skills
The student will be able to express themselves correctly using mathematical language, understand scientific texts of moderate complexity, and summarize their main concepts.
Learning skills
The knowledge acquired will provide the foundation for further studies, both individually and within more advanced courses, fostering autonomy in exploring additional aspects of Mathematical Analysis.
|
| 10629075 | Computer Architecture 1 [INFO-01/A] [ITA] | 2nd | 1st | 6 |
Educational objectives Educational Goals
The course provides fundamental knowledge on information representation, combinational and sequential digital circuit design, and basic models of computation at the logic level. In particular, the course introduces number systems, numerical representations, Boolean algebra, synthesis and analysis of logic networks, and the principles of sequential system design and basic functional units.
Knowledge and Understanding
Students will acquire basic and advanced knowledge of information representation systems, binary arithmetic, and main numerical coding schemes. They will understand the fundamentals of Boolean algebra, logic functions, and design techniques for combinational and sequential circuits.
Applying Knowledge and Understanding
Students will be able to design, analyze, and simplify combinational and sequential logic circuits. They will apply Boolean function minimization techniques, design logic networks using Karnaugh maps, implement arithmetic circuits, and analyze finite state machines.
Making Judgements
Students will develop the ability to evaluate alternative design solutions for digital circuits, selecting among equivalent implementations based on efficiency, complexity, hardware cost, and performance criteria.
Communication Skills
Students will be able to clearly and rigorously describe problems and solutions in digital design, using appropriate technical terminology and formal representations such as truth tables, Boolean expressions, state diagrams, and circuit schematics.
Learning Skills
Students will develop autonomy in studying digital systems and logic design techniques, gaining the ability to independently deepen advanced topics such as digital architecture and complex sequential systems.
|
| 10628494 | Databases [INFO-01/A] [ITA] | 2nd | 1st | 9 |
Educational objectives Educational goals:
Expose students to solid methodologies for the design and implementation of databases in Third Normal Form, along with their related applications.
Introduce students to formal and scalable methodologies for identifying constraints, performing conceptual analysis, and translating into the relational logical model, leading to the design and implementation of normalized databases and the use of standard technologies for querying them and embedding queries in software applications.
Knowledge and understanding:
Students will acquire fundamental methodological knowledge for designing non-trivial databases, particularly in the phases of:
a) requirements gathering;
b) conceptual analysis of data and functionalities;
c) database and functionality design;
d) verification of normalization and correction of anomalies, if necessary.
They will also learn how to implement these designs using DBMS and standard languages for data definition, querying, and manipulation.
Applying knowledge and understanding:
Students will be able to effectively apply the knowledge described above to real-world projects involving non-trivial database applications.
Making judgments:
Students will be able to independently make rational decisions at all stages of the database and application design process and assess whether a relational schema conforms to Third Normal Form.
Communication skills:
Students will be able to interact effectively with clients (regarding requirements gathering) and with other analysts and designers (regarding the analysis and design of non-trivial software systems).
Learning skills:
Students will be able to independently expand their knowledge by consulting technical documentation as needed in the field of database application design.
|
| 10627280 | Algorithms 2 [INFO-01/A] [ITA] | 2nd | 1st | 6 |
Educational objectives General objectives
This course introduces students to methods for designing and analyzing algorithms. They will study various algorithmic techniques widely applicable, such as greedy technique, divide and conquer, dynamic programming, and backtracking. These techniques will be illustrated through classic algorithms such as Dijkstra's algorithm and the Bellman-Ford algorithm for finding shortest paths, Kruskal's algorithm or Prim's algorithm for the minimum spanning tree problem. Non-elementary data structures will also be covered.
Specific objectives
Knowledge and understanding
Upon completion of the course, students will be familiar with methodologies for designing and analyzing algorithms, non-trivial data structures, and key algorithms.
Apply knowledge and understanding
By the end of the course, students will have gained familiarity with major data structures. They will be able to explain algorithms and analyze their complexity, highlighting how performance depends on the data structure used. Faced with a new problem, they will have various algorithmic techniques at their disposal to reference when seeking an efficient algorithm to solve it.
Critical and judgment skills
Students will have the tools to analyze the quality of an algorithm and its associated data structures, both in terms of effectively solving the problem and the computational efficiency with which the problem is solved.
|
| 10628865 | Operating Systems [INFO-01/A] [ITA] | 2nd | 1st | 9 |
Educational objectives Educational goals
The course aims to introduce operating systems as an essential component of every computing system and as a paradigmatic example of the concept of abstraction, a theme that runs throughout the entire Computer Science curriculum. The primary objective is to provide students with a comprehensive understanding of how the process of virtualization of physical resources makes it possible to manage hardware complexity, offering a simplified environment for application software development and ensuring a high level of usability for the end user.
By the end of the course, students will have the methodological foundations to understand and analyze the challenges involved in designing complex software. Specifically, they will acquire competencies in:
- The primary functions of general-purpose operating systems (CPU, memory, and I/O management).
- Abstraction models for mobile devices (tablets/smartphones).
- Analysis of concepts independently of any specific operating system, with examples drawn from real systems (UNIX/Linux, Windows, Mac, Android, iOS).
Knowledge and understanding
Understanding the theoretical principles and architectures of modern operating systems. Knowledge of the mechanisms for CPU and memory virtualization, process management, memory hierarchies, concurrency issues, and access to I/O devices. Gaining an overview of the distinctive features of mobile operating systems.
Applying knowledge and understanding
Being able to apply abstraction concepts to analyze how software interacts with a system's physical resources. Being able to model and solve resource management problems (e.g., scheduling and address translation) in real-world usage scenarios, independently of the specific operating system.
Making judgements
The ability to critically evaluate the trade-offs between different resource management policies (e.g., efficiency vs. fairness in scheduling, or speed vs. fragmentation in memory management) in different technological contexts.
Communication skills
Being able to clearly and rigorously explain the fundamental concepts of operating systems, describing the different levels of abstraction that mediate the relationship between hardware and software.
Learning skills
Acquiring a solid conceptual foundation that enables independent study of emerging technologies or more complex systems (such as distributed systems and cloud computing).
|
| 10628307 | Computer Architecture 2 [INFO-01/A] [ITA] | 2nd | 2nd | 6 |
| 10629056 | Fundamentals of Internet [INFO-01/A] [ITA] | 2nd | 2nd | 9 |
Educational objectives Educational goals
The course aims to provide students with fundamental knowledge of the operation of the Internet and computer networks, with particular emphasis on the TCP/IP protocol stack. The course introduces the main protocols and mechanisms that enable host-to-host communication, packet forwarding, reliability and congestion control, name resolution, and medium access in local and wireless networks. Modern transport protocols, including QUIC, will also be presented, highlighting their role in the evolution of the Internet architecture. The course also includes practical activities aimed at configuring, observing, and analyzing the behavior of networks and protocols.
Knowledge and understanding
By the end of the course, students will have acquired solid knowledge of the principles underlying computer networks and the Internet architecture. They will be able to understand the role of the different layers of the TCP/IP stack, from application-layer protocols to transport, network, and medium access mechanisms. Students will understand the operation of fundamental protocols such as IP, TCP, UDP, and DNS, as well as the main routing mechanisms and issues related to reliability, congestion control, fragmentation, addressing, and channel sharing. In addition, they will acquire basic knowledge of wireless networks and the CSMA/CA protocol, and will understand the motivations and main characteristics of modern transport protocols such as QUIC.
Applying knowledge and understanding
Students will be able to analyze the operation of a TCP/IP network, identifying the role of the different protocols involved in end-to-end communication. They will be able to interpret communication scenarios, compute fundamental quantities such as delay, throughput, channel utilization, and transmission window sizes, and evaluate the behavior of transport and network protocols under congestion, losses, or bandwidth constraints. They will also be able to configure simple network scenarios, observe packet exchanges, and interpret the results obtained through analysis tools and practical laboratory activities.
Making judgements
The course aims to develop students’ ability to critically evaluate the behavior of network protocols in different application contexts. Students will be able to discuss the advantages and limitations of the main architectural solutions adopted in the Internet, considering aspects such as scalability, reliability, efficiency, delay, security, mobility, and interoperability. They will also be able to compare traditional and modern protocols, such as TCP and QUIC, understanding the design motivations behind their evolution and evaluating the impact of different protocol choices on overall network performance.
Communication skills
Students will acquire the ability to clearly and rigorously describe the operation of the main Internet protocols and the mechanisms that regulate communication between devices. They will be able to use appropriate technical language to explain concepts such as encapsulation, addressing, routing, flow control, congestion control, name resolution, and medium access. The course also promotes the ability to present and discuss results derived from exercises, protocol analysis, and practical activities.
Learning skills
By the end of the course, students will have developed the skills needed to independently explore advanced topics in computer networks and the evolution of the Internet. They will be able to read technical documentation, understand protocol specifications, interpret experimental results, and update their knowledge with respect to the development of new protocols, architectures, and network technologies.
|
| 10629527 | Advanced Programming [INFO-01/A] [ITA] | 2nd | 2nd | 9 |
Educational objectives Educational goals:
The course focuses on the concepts, structure, and mechanisms of operating systems and some advanced programming languages. It will cover fundamental features present in even the most traditional systems, as well as peculiarities of modern systems that arise as a result of recurring technological evolution. The two most widely used system programming languages will be introduced: C and Rust. Finally, the programming interface between software developers and the kernel for accessing Linux operating system resources will be covered, using C and Rust.
Knowledge and understanding:
A thorough understanding of how operating systems support the execution of user programs and the management of a computer's hardware peripherals. Fundamental methods and techniques for representing processes in memory and efficiently managing multiprogramming (multiple processes running simultaneously on a system with limited resources). Knowledge of the internals of the Linux operating system. Knowledge of the Bash shell. Fundamentals of the C and Rust languages. Knowledge of the main Linux system calls.
Applying knowledge and understanding:
Design user- and system-level programs efficiently and securely. Ability to create Bash scripts that solve practical problems. Ability to write C and Rust programs that leverage Linux system calls to optimize resource usage.
Making judgments:
Ability to predict the resource usage of a program, detect potential deadlocks in a multiprogram system, ensure mutual exclusion between processes, and ensure protected access to sensitive memory areas or resources. Ability to evaluate the most appropriate solution to achieve a given result, using individual shell commands, a Bash script, or a C or Rust program based on Linux system calls.
Communication skills:
Ability to clearly and precisely communicate the characteristics of operating systems and their software/hardware support mechanisms. Ability to communicate and document Bash scripts and C and Rust programs based on Linux system calls.
Learning skills:
Ability to apply acquired knowledge to the design of systems and user programs. Be able to apply this knowledge to learning the properties of more complex systems, such as distributed and cloud systems. Be able to apply concepts learned in advanced courses for business systems engineers, or in any advanced courses that require interaction with Linux, such as systems programming, cloud computing, distributed systems, and cybersecurity.
|
| 10628255 | [MATH-03/B] [ITA] | 2nd | 2nd | 9 |
| 10627559 | AUTOMATA COMPUTABILITY AND COMPLEXITY [INFO-01/A] [ITA] | 3rd | 1st | 6 |
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.
|
| 10628857 | Software Engineering [INFO-01/A] [ITA] | 3rd | 1st | 9 |
Educational objectives Educational objectives
General objectives:
The course explains the fundamentals of methodologies and tools for managing software processes. Particular attention is given to methods and tool for modelling and analysis of requirements and architectures.
Specific objectives:
Introduction to software engineering approaches and software life cycle, in-depth analysis of the specific activities, analysis, design, and testing of software systems, techniques for process management, with particular reference to the management of quality and risks, and cost analysis.
Knowledge and understanding:
At the end of the course, students will have acquired knowledge of the main models of the software life cycle, metrics for sizing effort, and techniques for describing the components of a software project. Knowledge about the use of UML language will have been acquired. Finally, they will also become familiar with the scientific literature in the field.
Application of knowledge and understanding:
At the end of the course, students will be able to work on the activities of analysis, design, documentation, and management of medium-sized software projects. Students will have learned to understand and produce UML-based documentation, focusing on the main types of diagrams. Finally, they will be able to produce simulation models for system architectures and requirements.
Judgment skills:
Students will develop the analytical skills necessary to evaluate alternatives during the software development process, with particular reference to architectural choices and project risks.
Communication skills:
Students will learn to document their software design choices. They will also have acquired the ability to prepare presentations related to scientific topics.
Learning ability:
Knowledge of the formal rigor aspects underlying the software engineering discipline will allow students to quickly gain confidence in techniques beyond those considered in the course, based on general principles.
|
| [N/D] [ITA] | 3rd | 2nd | 12 |
| AAF1053 | Internship [N/D] [ITA] | 3rd | 2nd | 15 |
Educational objectives The internship is carried out under the guidance of a manager and can be external (performed at companies or external bodies) or internal (carried out within the degree course). 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.
|
| AAF1001 | FINAL EXAM [N/D] [ITA] | 3rd | 2nd | 3 |
Educational objectives The final exam consists in the drafting, presentation and discussion of a written dissertation, prepared independently by the student, which documents in an organic and detailed way the problem faced in the training internship and all the activities performed to reach the solution.
|
| Optional group: New group | | | |
| Optional group: Artificial Intelligence and Machine Learning | | | |