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

Curriculum(s) for 2024 - Informatics (29400)

Single curriculum

1st year

LessonSemesterCFULanguage
101226 | Differential Calculus1st6ITA

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.

SPECIFIC OBJECTIVES:

Knowledge and understanding:
at the end of the course, students will master the basic notions of Differential Calculus, in particular the notions of function, limit and derivative.

Applying knowledge and understanding:
students will be able to solve typical problems from Differential Calculus, such as the explicit calculation of derivatives, of maxima and minima of a function, and to plot an approximate graph of functions of a real variable.

Critical and judgment skills:
students will be able to use a graph as a tool to analyse concrete phenomena which admit a mathematical description.

Communication skills:
students will be able to fully understand a scientific text of moderate complexity and relate on the essential ideas contained in it.

Learning skills:
the notions and techniques learned will give students access to more advanced notions, either in a further course or in the form of self-study, concerning further aspects of Differential and Integral Calculus.
dge 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.

1015883 | Introduction to Computer Programming1st9ITA

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.

1020420 | Mathematical Methods in Computer Science1st6ITA

Educational objectives

General goals:
The course is aimed at acquiring the basic logical and set-up knowledge to tackle the study of other topics in mathematics and computer science.

Specific goals:

Knowledge and understanding:
At the end of the course student will have full understanding of the proposed logical-set-theoretical tools.

Apply knowledge and understanding:
Students will have acquired the ability to carry out a rigorous, even if elementary, mathematical reasoning, in particular with regard to the fundamental logical principles and the use of induction in all its forms.

Critical and judgmental skills:
Students will therefore be able to critically address the arguments proposed in other theoretical and applied teachings. In this regard, many examples are given from other lessons.

Communication skills:
Active participation in the classroom and the use of the oral exam serve to stimulate students in acquiring the proper language of mathematics and to transmit the knowledge and skills acquired appropriately .

Ability to continue the study:
Students will be able to deepen in the personal study the topics treated using what they have learned as a basis.

1015880 | Digital Systems1st6ITA

Educational objectives

General goals:
How to design combinational and sequential circuits.

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.

Knowledge and understanding:
Knowing and understanding the handling and processing of information on a computer-

Applying knowledge and understanding:
Show the ability of designing simple combinational and sequential circuits that perform specific tasks.

Critiquing and judgmental skills:
Being able to choose the best approach, among those considered, for solving a specific task.

Communication skills:
Being able to evaluate and motivate the choices taken in the design of a circuit.

Learning skills:
Understanding the differences and advantages of the different design techniques

1015881 | Computer Architecture2nd6ITA

Educational objectives

Obiettivi generali:
L’obiettivo dell'insegnamento di Architettura degli elaboratori è di far comprendere i principi che sono usati per progettare i calcolatori moderni. In particolare, il corso tratta la struttura interna del microprocessore e le idee che hanno permesso la straordinaria evoluzione della potenza di calcolo negli ultimi 30 anni. come pipelining, caching, branch prediction, e multi-processing.

Obiettivi specifici:
Il corso tratta i principi di base di organizzazione del microprocessore e le nozioni di pipelining, caching, branch prediction, virtualizzazione e multi-processing. Inoltre, il corso tratta la programmazione assembly.

Conoscenza e comprensione:
Lo studente acquisirà conoscenza sull’organizzazione del microprocessore MIPS, come implementazione delle idee generali che fanno parte degli obbiettivi del corso. Inoltre, lo studente acquisirà conoscenza su come si strutturano i programmi in assembly, incluse le strutture dati, i paradigmi standard di programmazione e la ricorsione.

Applicazione di conoscenza e comprensione:
Le conoscenze sono applicate sulla architettura MIPS, comprese in modo tale da poter capire le implicazioni delle scelte di programmazione sulla performance dei programmi su hardware specifico. Questa risultato è ottenuto tramite esercizi di programmazione e di valutazione delle prestazioni.

Autonomia di giudizio:
Lo studente sarà in grado di comprendere le problematiche relative alle prestazioni del software su hardware specifico e di valutarne autonomamente le caratteristiche.

Abilità comunicative:
Il corso non si propone espliciti obiettivi sulle capacità comunicative, eccetto di formare all'esposizione rigorosa degli argomenti tecnici.

Capacità di apprendimento successivo:
Il corso pone le basi per la comprensione dei moduli dell'insegnamento di Sistemi operativi e di tutti i corsi di programmazione, inclusa la programmazione di sistemi paralleli.

97796 | Integral Calculus2nd6ITA

Educational objectives

General goals:
The purpose of the course is to provide the student with basic mathematical analysis tools such as : the theory of series, integral calculusand differential equations.

Specific goals:
Students will be able to examine various techniques of integration and apply them to compute definite and indefinite integrals by using integration by substitution and the rule of integration by parts.Students will be able tocompute limits of sequences and discuss the convergence of number series, power seriesand Taylor series of elementary functions.

Knowledge and understanding:
At the end of this course the students will be able to calculate integrals and the solutions of some first order differential equationsand the solutions of second order linear differential equations with constant coefficientsLearning activities consists of lectures and exercise sessions. The lecture aim to introduce fundamental concepts, to explain them by showing examples.

Applying knowledge and understanding:
The exercise sessions aim to teach how to select and use calculation methods.

1015885 | Introduction to algorithms2nd6ITA

Educational 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 analyse 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 behaviour of the execution times of the studied algorithms, to design recursive solutions to problems and to analyse 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 high level, in pseudocode.

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

1015884 | Object-Oriented Programming2nd9ITA

Educational objectives

General goals:
Learning object-oriented programming concepts through the Java programming language.

Obiettivi specifici:
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.

Critical and judgmental abilities:
Ability to identify correct/effective and incorrect/ineffective instructions, constructs or patterns in Java.

Communication skills:
Ability to illustrate projects.

Learning ability:
Ability to learn and apply new programming techniques starting from those learned during the course.

AAF1101 | English language2nd3ENG

Educational objectives

General goals:
The student will be able to understand the main cores of texts on technical topics, both theoretical and concrete, such as the study of computer parts and their use. In particular, the student will develop the skill of specialized translation of a technical text from English into Italian and/or vice-versa through the knowledge of the scientific lexicon and the practice of linguistic functions semantically consistent with the field of computer science. The lessons will also develop through dialogic practice and peer comparison in the form of work groups and discussions in order to allow the student to develop a personal linguistic fluency.

Specific goals:
Grammar focus developped through the practical use and relative understanding of specialized texts relating to the following topics:
A concise history of computer;
Computer components: hardware and software;
An introduction to operating Systems and computer programming language;
Where and how are computers used;
Computer networks and the internet.

Knowledge and understanding
The student will demonstrate a knowledge of the English language equal to level B2 of the Common European Framework of Reference. To this aim, he/she will be exposed to passages in authentic language, both written and oral through audio aids, to the practice of reading and translating.

Applying knowledge and understanding

The student will be able to understand the main cores of texts on technical topics relating to information technology and the world of computers. In particular, he/she will develop a double reading ability, in relation to the type of text, and the information requested: skimming, rapid scrolling for a global understanding; scanning, for the identification of specific information in the text. He/she will also develop the specific translation skills of a technical text, from English into Italian.
The student will develop this ability through the knowledge of the scientific lexicon and the practice of linguistic functions that are semantically consistent with the field of computer science.

Critical and judgmental skills:
The student will have to demonstrate that he has acquired autonomy in sectorial critical judgment, the ability to express opinions and to motivate choices. This ability will be acquired through dialogic practice and peer comparison in the form of work groups and discussions.

Communication skills:
The student will be able to communicate in a fluid way in English and to produce clear and correct texts, using a vocabulary appropriate to the IT sector. He/she will also demonstrate to have acquired a correct pronunciation. To this aim, specialized texts will be read in the classroom by the teacher and/or there will be listening via audio support.

Learning ability:
The students will have to show that they have developped oral and written learning skills in a constantly evolving sector, and therefore to update their skills also in reference to new application scenarios.

2nd year

LessonSemesterCFULanguage
1015886 | Algebra1st9ITA

Educational objectives

At the end of the class, students will have a basic knowledge of:
- group theory,
- algebraic structure of some simple types of groups,
- resolution of systems of linear equations,
- diagonalisation of linear operators on finite dimensional vector spaces.

At the end of the class, students will be able to:
- make calculations inside a group,
- solve systems of linear equations,
- find eigenvalues and eigenvectors of linear operators.

1015887 | Databases1st12ITA

Educational objectives

General goals:
To be able to design/evaluate the properties, storage structure and protocols of a database management system.

Specific goals:
Knowledge of the properties of a database schema and of a decomposition. Ability to retrieve information in a relational database using relational algebra. Ability to evaluate the cost of data access operations. Knowledge of protocols for concurrency control.

Knowledge and understanding:
Fundamentals of relational database design and querying (relational algebra). Main data structures for storage of data on secondary memory. Main techniques for concurrency control.

Applying knowledge and understanding:
To design relational schemes with “good properties”. To formulate queries in relational algebra. To evaluate costs of basic operations on a file with a given physical organization.

Critical and judgmental skills:
To be able to assess the properties of a relational schema and of a decomposition. To be able to choose an appropriate storage structure for the information in a schema.

Communication skills:
To be able to communicate/share che qualitative/quantitative characteristics of the relational structure of a database.

Learning skills:
To be able to use the learned concepts in the following module of the course and in a possible advanced course on Databases.

Module I1st6ITA

Educational objectives

General goals:
To be able to design/evaluate the properties, storage structure and protocols of a database management system.

Specific goals:
Knowledge of the properties of a database schema and of a decomposition. Ability to retrieve information in a relational database using relational algebra. Ability to evaluate the cost of data access operations. Knowledge of protocols for concurrency control.

Knowledge and understanding:
Fundamentals of relational database design and querying (relational algebra). Main data structures for storage of data on secondary memory. Main techniques for concurrency control.

Applying knowledge and understanding:
To design relational schemes with “good properties”. To formulate queries in relational algebra. To evaluate costs of basic operations on a file with a given physical organization.

Critical and judgmental skills:
To be able to assess the properties of a relational schema and of a decomposition. To be able to choose an appropriate storage structure for the information in a schema.

Communication skills:
To be able to communicate/share che qualitative/quantitative characteristics of the relational structure of a database.

Learning skills:
To be able to use the learned concepts in the following module of the course and in a possible advanced course on Databases.

1020421 | Probability1st9ITA

Educational objectives

General objectives:
to acquire basic knowledge in probability theory.

Specific objectives:

Knowledge and understanding:
at the end of the course, students will be able to use basic notions in combinatorics to solve math problems, derive laws for discrete random variables.

Applying knowledge and understanding:
at the end of the course, students will be able to solve simple problems in discrete probability, problems concerning discrete random vectors and random numbers represented by continuous random variables. They will understand the role of indipendence and conditioning in discrete models and understand the meaning of some limit theorems, like the law of large numbers.

Critical and judgmental skills:
students will have the bases to analize and to build simple probabilistic models for physics, biology and technology, simulate discrete probability distribution, as well as the Gaussian distribution and understand the use of some elementry 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 skills:
the acquired knowledge will allow a study, individual or given in a course related to more specialized aspects of probability theory.

1020422 | Operating Systems1st12ITA

Educational objectives

General goals:
Our goal in this class is to unfold the concepts, structure, and mechanisms of modern operating systems. We will provide a thorough discussion of the fundamental characteristics that apply consistently throughout systems, and relate them to newer features raising from the recurrent development of technology and user necessities.

Specific goals:
The class will cover the characteristics and concepts of modern operating systems, with a particular reference to Unix and Linux. We will start off with a description of the evolution of the operating systems in time. Then, we will continue with fundamental concepts like processes, deadlock detection, mitigation, and prevention, concurrency and mutual exclusion, memory, processor, and I/O management, file systems, and security.

Knowledge and understanding
Deep understanding of how an operating system supports the execution of user programs and handles hardware peripherals of a computer. Techniques and fundamental methodologies to represent processes in main and secondary memory and to handle multiprogramming— multiple processes executed simultaneously in a systems with limited resources.

Applying knowledge and understanding
Being able to design user and system level programs in an efficient and secure way.

Critical and judgmental skills:
Being able to evaluate and foresee how programs will require and use system resources, uncover possible deadlock and livelock conditions in a multiprogramming system, guarantee the mutual exclusion among processes and protected access of sensitive memory and resources.

Communication skills:
Know how to communicate clearly and in a precise way the characteristics and support mechanisms provided by the operating systems.

Learning capability:
Being able to exploit the knowledge acquired in order to design system modules, user and system level programs in the second module of the course. Leveraging this knowledge to better understand more complex systems like distributed and cloud ones.

Module I1st6ITA

Educational objectives

General goals:
Our goal in this class is to unfold the concepts, structure, and mechanisms of modern operating systems. We will provide a thorough discussion of the fundamental characteristics that apply consistently throughout systems, and relate them to newer features raising from the recurrent development of technology and user necessities.

Specific goals:
The class will cover the characteristics and concepts of modern operating systems, with a particular reference to Unix and Linux. We will start off with a description of the evolution of the operating systems in time. Then, we will continue with fundamental concepts like processes, deadlock detection, mitigation, and prevention, concurrency and mutual exclusion, memory, processor, and I/O management, file systems, and security.

Knowledge and understanding
Deep understanding of how an operating system supports the execution of user programs and handles hardware peripherals of a computer. Techniques and fundamental methodologies to represent processes in main and secondary memory and to handle multiprogramming— multiple processes executed simultaneously in a systems with limited resources.

Applying knowledge and understanding
Being able to design user and system level programs in an efficient and secure way.

Critical and judgmental skills:
Being able to evaluate and foresee how programs will require and use system resources, uncover possible deadlock and livelock conditions in a multiprogramming system, guarantee the mutual exclusion among processes and protected access of sensitive memory and resources.

Communication skills:
Know how to communicate clearly and in a precise way the characteristics and support mechanisms provided by the operating systems.

Learning capability:
Being able to exploit the knowledge acquired in order to design system modules, user and system level programs in the second module of the course. Leveraging this knowledge to better understand more complex systems like distributed and cloud ones.

1015887 | Databases2nd12ITA

Educational objectives

General goals:
To be able to design/evaluate the properties, storage structure and protocols of a database management system.

Specific goals:
Knowledge of the properties of a database schema and of a decomposition. Ability to retrieve information in a relational database using relational algebra. Ability to evaluate the cost of data access operations. Knowledge of protocols for concurrency control.

Knowledge and understanding:
Fundamentals of relational database design and querying (relational algebra). Main data structures for storage of data on secondary memory. Main techniques for concurrency control.

Applying knowledge and understanding:
To design relational schemes with “good properties”. To formulate queries in relational algebra. To evaluate costs of basic operations on a file with a given physical organization.

Critical and judgmental skills:
To be able to assess the properties of a relational schema and of a decomposition. To be able to choose an appropriate storage structure for the information in a schema.

Communication skills:
To be able to communicate/share che qualitative/quantitative characteristics of the relational structure of a database.

Learning skills:
To be able to use the learned concepts in the following module of the course and in a possible advanced course on Databases.

Module II2nd6ITA

Educational objectives

General goals:
To introduce students to scalable methodologies for the design and development of database software applications.

Specific goals:
To introduce students to formalised and scalable methodologies for the conceptual analysis and design of database applications, and to standard technologies for the development of databases.

Knowledge and understanding:
Students will acquire fundamental methodological skills in the design of medium-large database applications (in particular for what concerns: a) requirements elicitation; b) conceptual analysis; c) database design and main use-cases), and their development (using DBMSs and standard languages for defining, manipulating and querying data).

Applying knowledge and understanding:
Students will be able to proficiently apply the acquired skills in the actual design of medium-large database applications.

Critical and judgmental abilities:
Students will be able to take autonomous and rational decisions during the various phases of the design process of an actual database application.

Communication skills:
Students will be able to interact proficiently with final customers (for what concerns requirements elicitation) and with other designers (for what concerns the design process of medium-large software systems).

Learning capabilities:
Students will be able to extend their skills in the subjects of this course, by the autonomous reading of technical documentation concerning the design of database applications.

1015888 | Algorithm Design2nd9ITA

Educational objectives

General objectives:
Acquire basic knowledge on fundamental algorithm design techniques and techniques to analyze the correctness and the complexity of an algorithm.

Specific objectives:

Knowledge and understanding:
At the end of the course, the student knows:
- fundamental algorithm design techniques,
- techniques to analyze the correctness and the efficiency of an algorithm.

Apply knowledge and understanding:
At the end of the course, the student is able to:
- analyze the complexity of a problem using rigorous mathematical tools,
- analyze existing algorithms and data structures,
- design and analyze new algorithms and data structures for simple real-life-problems.

Critical and judgmental skills:
The student, at the end of the course, should be able to autonomously choose which algorithmic technique is best suited for a given problem and to evaluate among several algorithmic solutions for a certain problem which one should prefer.

Communication skills:
The student will acquire the ability to express an algoritmic idea throught the use of a pseudocode.

Learning ability:
The student will acquire the ability to analyse a problem, and to design the necessary data structures and the correct and efficient algorithms for the problem.

1015889 | Computer Networks2nd9ITA

Educational objectives

General goals:
- Learn the fundamentals of modern computer networks and Internet

Specific goals:
Knowledge and understanding:
- Application, transport, network, and data-link protocols of the TCP/IP model

Applying knowledge and understanding:
- Understand any protocol involved with TCP/IP communications
- Grasp powerful network troubleshooting tools and techniques
- Ability to use network services like DNS and DHCP that help make computer networks run

Autonomy of judgment:
- Detect network problems
- Evaluate the design of new services

Communication skills:
- Ability to describe computer networks in terms of a five-layer model

Learning ability:
- The course provides the fundamentals to learn notions related to wireless systems and Internet of Things

1020422 | Operating Systems2nd12ITA

Educational objectives

General goals:
Our goal in this class is to unfold the concepts, structure, and mechanisms of modern operating systems. We will provide a thorough discussion of the fundamental characteristics that apply consistently throughout systems, and relate them to newer features raising from the recurrent development of technology and user necessities.

Specific goals:
The class will cover the characteristics and concepts of modern operating systems, with a particular reference to Unix and Linux. We will start off with a description of the evolution of the operating systems in time. Then, we will continue with fundamental concepts like processes, deadlock detection, mitigation, and prevention, concurrency and mutual exclusion, memory, processor, and I/O management, file systems, and security.

Knowledge and understanding
Deep understanding of how an operating system supports the execution of user programs and handles hardware peripherals of a computer. Techniques and fundamental methodologies to represent processes in main and secondary memory and to handle multiprogramming— multiple processes executed simultaneously in a systems with limited resources.

Applying knowledge and understanding
Being able to design user and system level programs in an efficient and secure way.

Critical and judgmental skills:
Being able to evaluate and foresee how programs will require and use system resources, uncover possible deadlock and livelock conditions in a multiprogramming system, guarantee the mutual exclusion among processes and protected access of sensitive memory and resources.

Communication skills:
Know how to communicate clearly and in a precise way the characteristics and support mechanisms provided by the operating systems.

Learning capability:
Being able to exploit the knowledge acquired in order to design system modules, user and system level programs in the second module of the course. Leveraging this knowledge to better understand more complex systems like distributed and cloud ones.

Module I2nd6ITA

Educational objectives

General goals:
Our goal in this class is to unfold the concepts, structure, and mechanisms of modern operating systems. We will provide a thorough discussion of the fundamental characteristics that apply consistently throughout systems, and relate them to newer features raising from the recurrent development of technology and user necessities.

Specific goals:
The class will cover the characteristics and concepts of modern operating systems, with a particular reference to Unix and Linux. We will start off with a description of the evolution of the operating systems in time. Then, we will continue with fundamental concepts like processes, deadlock detection, mitigation, and prevention, concurrency and mutual exclusion, memory, processor, and I/O management, file systems, and security.

Knowledge and understanding
Deep understanding of how an operating system supports the execution of user programs and handles hardware peripherals of a computer. Techniques and fundamental methodologies to represent processes in main and secondary memory and to handle multiprogramming— multiple processes executed simultaneously in a systems with limited resources.

Applying knowledge and understanding
Being able to design user and system level programs in an efficient and secure way.

Critical and judgmental skills:
Being able to evaluate and foresee how programs will require and use system resources, uncover possible deadlock and livelock conditions in a multiprogramming system, guarantee the mutual exclusion among processes and protected access of sensitive memory and resources.

Communication skills:
Know how to communicate clearly and in a precise way the characteristics and support mechanisms provided by the operating systems.

Learning capability:
Being able to exploit the knowledge acquired in order to design system modules, user and system level programs in the second module of the course. Leveraging this knowledge to better understand more complex systems like distributed and cloud ones.

3rd year

LessonSemesterCFULanguage
1041727 | AUTOMATA COMPUTABILITY AND COMPLEXITY1st6ITA

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.

Criticaland 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.

1022301 | Software Engineering1st6ITA

Educational objectives

General objectives:
The course explains the fundamentals of the methodologies and tools for the management of software processes. Particular attention is given to object-oriented analysis and design methodologies, and to their management and documentation through UML.

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 all 'cost analysis.

Knowledge and understanding:
At the end of the course students will have acquired knowledge about the main models of the software life cycle, the metrics for the sizing of the effort, the techniques for describing the different components of a software project. Knowledge about the use of UML language will have been acquired. Finally, they will also have 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 as a team in the activities of analysis, design, documentation and management of medium-sized software projects. Students will have learned to produce documentation based on UML, relative to the main types of diagrams: use cases, classes, interaction, status and activities, also through the use of professional software environments oriented to the systematic development of software projects. Finally, they will be able to produce an evaluation of the effort based on Function Points and Use Case Points.

Judgment skills:
Students will develop the analytical skills necessary to evaluate various alternatives during the software development process, with particular reference to the evaluation of architectural choices and project risks.

Communication skills:
Students will learn to document their choices, also through the use of documentation generation tools, in particular by exploiting diagrammatic notations. They will also have acquired the ability to prepare presentations related to scientific topics.

Learning ability:
The knowledge of the formal rigor aspects underlying the software engineering discipline will allow students to quickly gain confidence with techniques, in addition to those considered in the course, based on general principles.

Elective course1st6ITA
Elective course2nd6ITA
AAF1004 | Final exam2nd6ITA

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 the problem faced in the training internship and all the activities performed to reach the solution.

AAF1053 | Internship2nd15ITA

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.

THREE-DIMENSIONAL MODELING
THREE-DIMENSIONAL MODELING

Optional groups

The student must acquire 12 CFU from the following exams
LessonYearSemesterCFULanguage
1022263 | Human-Computer Interaction3rd1st6ITA

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.

1022267 | Web Programming3rd2nd6ITA

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.

1047674 | GAMIFICATION E GAME DESIGN3rd2nd6ITA

Educational objectives

General objectives:
The course aims at training, both at the theoretical-methodological and technical-practical levels, the professional figures destined to operate in the field of design of games, videogames, digital simulations and gamification applications. The course includes the fundamentals of the methodologies and tools used for game and gamification design and for the design of the models that underpin videogames and simulations.
At the end of the course the student will have acquired knowledge about the reference scenario, both endogenous (the game itself) and exogenous (the recipients, the market, the production and target technologies) as well as the techniques for drawing up game design documents, project management applied to the video game industry and methods of conducting and analyzing playtests.

Specific objectives:
The course deals specifically with the constituent elements of a game, simulation and application of gamification and in particular the mechanics, the setting and the supports. It analyzes videogames and more generally all games (games) and gamification solutions intended as the possible applications of elements (mechanical and dynamic) of games and simulations for practical purposes in social and business (for training, training, assessment, communication, marketing, process governance, prediction, etc.).

Judgment skills:
Students will develop the analytical skills necessary to identify, evaluate and design different types of game / simulation (and gamification solutions) through the most suitable mechanics to achieve the desired gameplay. The acquired design skills will allow to evaluate also different options related to the type of product, the prototyping and testing process as well as the most suitable development environments.

Communication skills:
Students will learn to share and represent their projects both to potential clients and to the different professional figures involved in the design, design and development teams.

Ability of learning :
The course will allow student to master the analysis and design tools as well as the techniques related to the different domains considered including both the formal (logical and mathematical) that subtend the mechanical component (models) of games and simulations as those related to the evocative component (setting) and those related to the technological component of the product (software components and multimedia resources depending on the destination platforms).

1022268 | Introduction to Information Security3rd2nd6ITA

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.

10600494 | VERIFICATION AND VALIDATION OF INTELLIGENT SYSTEMS3rd2nd6ITA

Educational objectives

General goals:
The course aims at presenting basic methods and tools for modelling, analysis and design of intelligent systems.

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

Knowledge and understanding:
A wide-spectrum introduction to the foundational principles of modelling, analisys and design of intelligent systems modelled as continuous time or discrete time dynamical systems.

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

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

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

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

1022262 | Artificial Intelligence3rd2nd6ITA
The student must acquire 6 CFU from the following exams
LessonYearSemesterCFULanguage
1022263 | Human-Computer Interaction3rd1st6ITA

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.

10596283 | Business Startup 3rd1st6ITA

Educational objectives

The course of Organization and Management for the Company Start-Up intends to provide students with the knowledge and the "fundamentals" for the analysis and understanding of the main organizational problems that characterize the start-up and management of businesses in the digital age and a wide range of useful tools for their resolution.

In particular, once the basic concepts relating to the company and the business dynamics have been addressed, the course deepens the main issues related to the start-up, such as organizational planning, strategic planning, evaluation of the business idea and its feasibility financial.

These issues are addressed within an educational path that unfolds chronologically following the functional steps for the preparation of a business plan. More precisely, the teaching alternates frontal lessons with laboratory activities, in which students, divided into groups, will be guided didactically in the creation of a business plan relating to a digital business idea. This path allows students to examine firsthand the characteristics of the start-up process, and helps them understand the fundamental variables (and levers) of the organization, on which the company management can act to improve performance and improve the achievement of competitive advantage over competitors.

There are no particular prerequisites, in terms of previous knowledge of an economic-business nature, for the attendance of the course and for taking the exam tests.

Specific objectives
Objectives: the first part will describe and analyze the characteristics, the basic elements and the actors that characterize the company, as well as the phases of its life cycle. Furthermore, the relationships existing between the organization and the management of the company will be deepened, introducing the concept of economic "balance" as a fundamental law at the basis of the company's ability to survive over time.

Objectives: in the second part the didactic path will begin to provide the necessary knowledge to proceed with the realization of the business plan. We will start by examining the opportunities for generating start-ups in the digital age, highlighting the differences with the start-up of traditional businesses. The fundamentals of the strategy will be examined, with the transition from the business idea to the formalization of the business model, the basic contents of the organizational design, with particular regard to the relationship between organization, environment and strategy, the techniques for analyzing market feasibility and the economic-financial one, the considerations underlying the choice of the legal form, as well as those for identifying the most appropriate forms of financing.

Objectives: in the third part, the role and structure of the business plan will be explored. More precisely, the students, appropriately divided into groups, will be didactically guided through the process of drafting a business plan. In this part, therefore, the business plan will be considered as the final objective of the course which, in addition to representing a valid project work for the purposes of the final evaluation, will be presented as part of a real contest at the end of the course.

These objectives will be pursued through the adoption of an appropriate mix of lectures, testimonials from the originThe course of Organization and Management for the Company Start-Up intends to provide students with the knowledge and the "fundamentals" for the analysis and understanding of the main organizational problems that characterize the start-up and management of businesses in the digital age and a wide range of useful tools for their resolution.

There are no particular prerequisites, in terms of previous knowledge of an economic-business nature, for the attendance of the course and for taking the exam tests.

Knowledge and understanding.
At the end of the course, students will be able to recognize and analytically address the organizational problems that characterize the start-up phase, relying on a broad theoretical background and a toolkit appropriate to their solution. More precisely, an understanding of the links between environmental, strategic and organizational variables will allow them to approach the development of the business idea by seeking the coherence of the strategic-organizational elements with the reference market, in compliance with the company's economic conditions. In addition, thanks to the acquisition of the tools necessary for the design of a digital start-up and the knowledge gained in the process of drafting the business plan, at the end of the course students will be able to develop an entrepreneurial idea and evaluate its feasibility, as well as formalizing it within a business plan to proceed with its concrete implementation.

This knowledge will be acquired by alternating frontal lectures aimed at providing the cognitive tools necessary for understanding the various topics, with group laboratory activities, in which students, divided into groups, will be guided didactically by the teacher in the realization of a business plan. There will also be testimonials from the business world capable of representing practical and exemplary case studies of what has been dealt with from a theoretical point of view.

Ability to apply knowledge and understanding.
Through individual and group work, students will be put in a position not only to understand the origin, nature and type of the various organizational problems, but to develop shared solutions using techniques, models and analysis tools transferred during the frontal lessons.

The presentation by the students of the results of the group work will allow the development of reflection and argumentation skills, together with the ability to exchange, share and present the results achieved.

Finally, the testimonies of the organization experts from leading business organizations and the discussion of the related topics with the students will allow to corroborate - also with practical feedback - the ability to apply the techniques and the results achieved by the students themselves, and to learn from any mistakes made.

Making judgments.
The teaching of Business Organization, through mixed methods of content delivery (frontal lessons, group work, company testimonials), while dedicating adequate space to the main theoretical models consolidated in the reference literature, intends to stimulate students to achieve their own vision of organizational phenomena throughout the teaching path, encouraging independent judgment and the creative solution, albeit oriented and guided by the teacher, of the consequent problems.

In particular, the process of drafting the business plan at the basis of the group work was designed precisely to increase critical skills, reflection and independent processing of judgments, including that aimed at avoiding the prejudices that characterize in this area the phases of the decision-making processes oriented towards problem-solving, also with regard to the ethical and social repercussions that distinguish the organizational choices.

Communication skills.
The performance of group laboratory activities and the presentation of the results achieved represents an important tool, adopted in the teaching of Business Organization, for the development of communication skills. In particular, on the one hand, the discussions during group activities are specifically built to allow students to learn to interact and communicate, simulating knowledge sharing and consensus building activities typical of real work contexts; on the other hand, the presentation of the business plan in the context of the final contest was designed precisely to allow students to experience firsthand a real presentation of their business idea in front of potential investors.

These skills represent a "natural" component of the coursein question, given that the issue of organizational communication is the subject of specific discussion within the course.

Learning skills.
Given the high transversal and multidisciplinary nature of the topics covered, the contents of which can easily be translated into organizational contexts other than businesses (albeit characterized by an orientation towards respect for the conditions of economic management), the teaching of Business Organization will enable students to acquire a theoretical, conceptual and application basis that can be used for a multiplicity of educational and practical courses following that of the three-year degree.

In addition to the natural continuation towards a master's degree program, not only of a managerial or business type, students will acquire skills that can be further developed, even independently, and can be used in companies, consultancy companies and other organizations, as well as for the establishment of innovative and high-tech start-ups.

1047674 | GAMIFICATION E GAME DESIGN3rd2nd6ITA

Educational objectives

General objectives:
The course aims at training, both at the theoretical-methodological and technical-practical levels, the professional figures destined to operate in the field of design of games, videogames, digital simulations and gamification applications. The course includes the fundamentals of the methodologies and tools used for game and gamification design and for the design of the models that underpin videogames and simulations.
At the end of the course the student will have acquired knowledge about the reference scenario, both endogenous (the game itself) and exogenous (the recipients, the market, the production and target technologies) as well as the techniques for drawing up game design documents, project management applied to the video game industry and methods of conducting and analyzing playtests.

Specific objectives:
The course deals specifically with the constituent elements of a game, simulation and application of gamification and in particular the mechanics, the setting and the supports. It analyzes videogames and more generally all games (games) and gamification solutions intended as the possible applications of elements (mechanical and dynamic) of games and simulations for practical purposes in social and business (for training, training, assessment, communication, marketing, process governance, prediction, etc.).

Judgment skills:
Students will develop the analytical skills necessary to identify, evaluate and design different types of game / simulation (and gamification solutions) through the most suitable mechanics to achieve the desired gameplay. The acquired design skills will allow to evaluate also different options related to the type of product, the prototyping and testing process as well as the most suitable development environments.

Communication skills:
Students will learn to share and represent their projects both to potential clients and to the different professional figures involved in the design, design and development teams.

Ability of learning :
The course will allow student to master the analysis and design tools as well as the techniques related to the different domains considered including both the formal (logical and mathematical) that subtend the mechanical component (models) of games and simulations as those related to the evocative component (setting) and those related to the technological component of the product (software components and multimedia resources depending on the destination platforms).

1022267 | Web Programming3rd2nd6ITA

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.

1022268 | Introduction to Information Security3rd2nd6ITA

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.

10600494 | VERIFICATION AND VALIDATION OF INTELLIGENT SYSTEMS3rd2nd6ITA

Educational objectives

General goals:
The course aims at presenting basic methods and tools for modelling, analysis and design of intelligent systems.

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

Knowledge and understanding:
A wide-spectrum introduction to the foundational principles of modelling, analisys and design of intelligent systems modelled as continuous time or discrete time dynamical systems.

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

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

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

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

1022262 | Artificial Intelligence3rd2nd6ITA