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

Curriculum(s) for 2024 - Informatics (29923)

Optional groups

The student must acquire 6 CFU from the following exams
LessonYearSemesterCFUSSDLanguage
1022264 | Programming Languages3rd1st6INF/01ITA

Educational objectives

General objectives:
The course investigates the foundations of programming languages. Special attention is given to static and dynamic semantics (type theory, operational and axiomatic semantics) and to formal tools for software specification and verification.

Specific objectives:
Inductive algebras are studied as foundations to abstract syntax, data structures and simple (equational) program logics. Elements of co-induction in connection with lazy structures the semantics of concurrency. Comparing lazy vs. eager languages, static vs. dynamic binding within different programming paradigms: imperative, functional and object-oriented. Type theory, ML- and Java-style polymorphism.

Knowledge and understanding:
The student will acquire foundational knowledge on programming languages and their paradigms, and will be able to picture in a coherent conceptual map some of the main research areas of theoretical computer science.

Application of knowledge and understanding:
At the end of the course students will be familiar with different programming paradigms and program logics. Functional programming will be introduced and a basic knowledge of SML and its type theory will be acquired.

Judgment skills:
Students will acquire notions necessary to develop quality software and to understand the modern developments of programming languages.

Communication skills:
Students will learn to use mathematics and logics to describe, develop and analyze software, and to integrate the formal approach with an intuitive presentation of ideas.

Learning ability:
The use of mathematics in the theory and practice of programming helps developing logical and analytical skills and a deeper understanding of programming languages.

10593235 | EMBEDDED AND MULTICORE SYSTEMS PROGRAMMING3rd1st6INF/01ITA

Educational objectives

General goals:
The course is aimed at training students on fundamental algorithmic and programming techniques suited for modern multicore and embedded plaftorms.

Specific goals:

Knowledge and understanding:
At the end of the course, students will have a deep understanding of the main programming issues posed by parallel systems, as well as of programming abstractions and techniques useful to write scalable code.

Apply knowledge and understanding:
Students will be able to design, program and implement embedded systems (single core/multi core) and will have an understanding of the OS used in such systems.

Critical and judgmental skills:
Students will be able to face the challenges arising in the design of embedded and multicore systems and in the implementation of efficient and scalable programs for such systems taking into account the characteristics of different computational plaftorms.

Communication skills:
The students will be able to communicate effectively, summarizing the main ideas in the design of software for embedded and multicore systems clearly and presenting accurate technical information.

Ability of learning:
The goal for the class is to introduce the basic principles behind the design of software for embedded and multicore systems, making it possible for the students to extend their knowledge independently according to technological changes and evolution.

97597 | Physics3rd1st6FIS/01ITA

Educational objectives

Knowledge acquired
The main purpose of this course is to teach the scientific method. For each topic under scrutiny, the experimental (or numerical) observations about the physical phenomenon to be understood are presented. The process of reductionism, with its approximations, is then illustrated, leading to a model sufficiently simple to be treated mathematically. Finally, the physical laws that allow the explanation of the observed phenomenon are introduced, while highlighting the regime of validity of such laws and their limitations.

Skills acquired
At the end of this course, the student should have learned the scientific method and should be able to apply it to any scientific problem she/he faces. In practice, she/he should have developed the problem solving skills that are in high demand in any technical-scientific discipline. She/He should have also acquired a wealth of basic physical laws, which allow her/him to understand many of the natural phenomena and technological devices that surround her/him.

10606972 | Data Science and Law3rd1st6INF/01ITA
1022262 | Artificial Intelligence3rd2nd6INF/01ITA

Educational objectives

General goals:
The course aims at introducing students to a wide-spectrum presentation of Artificial Intelligence (AI).

Specific goals:
The course aims at making students proficient in the theoretical comprehension of a wide set of AI techniques and in the practical use of such techniques within the design of intelligent software systems.

Knowledge and understanding:
A wide-spectrum introduction to the foundational principles and the different branches of Artificial Intelligence (AI), knowledge about problem solving by searching, logic inference, planning, automated reasoning, learning.

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

Critical and judgmental skills:
Students will be able to take autonomous and rational decisions on the most effective AI techniques to employ in the design of intelligent software systems.

Communication skills:
Students will be able to interact proficiently with other AI researchers on a wide set of AI topics.

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

1022265 | Modelling and Optimization3rd2nd6INF/01ITA

Educational objectives

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

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

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

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

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

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

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

1022268 | Introduction to Information Security3rd2nd6INF/01ITA

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.

10589652 | Functional and Imperative Programming Techniques3rd2nd6INF/01ITA

Educational objectives

General objectives:
Acquire functional programming paradigm and advanced aspects of imperative programming in C. Acquire techniques of reasoning about programs, to drive both correctness proofs or program testing.
Comparison among different programming language paradigms (imperative, functional, and object--oriented) to speed-up learning of new programming languages.

Specific objectives:

Knowledge and understanding:
Advanced aspects of C language (mainly, explicit pointers and memory (de)allocation, efficiency of C programming). Basic and advanced knowledge of functional programming in Haskell (polymorphic types,
laziness, higher-order functions, monads).

Apply knowledge and understanding:
Apply different programming methodologies (peculiar to each programming paradigm) to problem solving.

Critical Judgmental skills:
The comparative study of several programming languages paradigm allows students to evaluate, for example, which is the most suitable language to use to develop a given software application.
Reasoning about programs techniques can drive both program development and program testing.

Communication skills:
Students are stimulated, especially in their final presentation to expose concisely but precisely ideas behind programs as well as program analysis.

Learning ability:
The comparative study of several programming languages paradigm gives students the ability to focus on fondamental aspects of programming languages (parameter passing rules, type systems, language semantics) and this greatly improve their ability to learn new programming languages.
Also the ability to learn technical aspects (such as libraries, use of developer tools) will benefit from this studies.

1021828 | Discrete mathematics3rd2nd6MAT/03ITA

Educational objectives

General goals:
The course aims to give students an introduction to discrete mathematics, which is one of the most innovative areas of mathematics, developed since the second half of the twentieth century, full of challenging problems and extremely useful for applications.

Specific goals
During the course, students will meet with a number of issues and problems of a type completely different from those encountered in other traditional mathematics courses, and develop, through a systematic effort aimed at “problem solving”, a practical approach to the study of problems of great educational value, especially for future careers.

Knowledge and comprehension
At the end of the course , the successful student
• will have learned the methods, the problems, and the possible applications of discrete mathematics.
• will be able to understand, tackle and solve simple problems related to discrette mathematics.
• through written essays and possible oral presentations he/she will develop appropriate capacity of judgement and criticism.
• at the same time he/she will exercise his/her ability to present and transmit what he/she has learned.
• personal, individual study will train his/her capacity of independent and autonomous learning activity.

The student must acquire 12 CFU from the following exams
LessonYearSemesterCFUSSDLanguage
1022264 | Programming Languages3rd1st6INF/01ITA

Educational objectives

General objectives:
The course investigates the foundations of programming languages. Special attention is given to static and dynamic semantics (type theory, operational and axiomatic semantics) and to formal tools for software specification and verification.

Specific objectives:
Inductive algebras are studied as foundations to abstract syntax, data structures and simple (equational) program logics. Elements of co-induction in connection with lazy structures the semantics of concurrency. Comparing lazy vs. eager languages, static vs. dynamic binding within different programming paradigms: imperative, functional and object-oriented. Type theory, ML- and Java-style polymorphism.

Knowledge and understanding:
The student will acquire foundational knowledge on programming languages and their paradigms, and will be able to picture in a coherent conceptual map some of the main research areas of theoretical computer science.

Application of knowledge and understanding:
At the end of the course students will be familiar with different programming paradigms and program logics. Functional programming will be introduced and a basic knowledge of SML and its type theory will be acquired.

Judgment skills:
Students will acquire notions necessary to develop quality software and to understand the modern developments of programming languages.

Communication skills:
Students will learn to use mathematics and logics to describe, develop and analyze software, and to integrate the formal approach with an intuitive presentation of ideas.

Learning ability:
The use of mathematics in the theory and practice of programming helps developing logical and analytical skills and a deeper understanding of programming languages.

10593235 | EMBEDDED AND MULTICORE SYSTEMS PROGRAMMING3rd1st6INF/01ITA

Educational objectives

General goals:
The course is aimed at training students on fundamental algorithmic and programming techniques suited for modern multicore and embedded plaftorms.

Specific goals:

Knowledge and understanding:
At the end of the course, students will have a deep understanding of the main programming issues posed by parallel systems, as well as of programming abstractions and techniques useful to write scalable code.

Apply knowledge and understanding:
Students will be able to design, program and implement embedded systems (single core/multi core) and will have an understanding of the OS used in such systems.

Critical and judgmental skills:
Students will be able to face the challenges arising in the design of embedded and multicore systems and in the implementation of efficient and scalable programs for such systems taking into account the characteristics of different computational plaftorms.

Communication skills:
The students will be able to communicate effectively, summarizing the main ideas in the design of software for embedded and multicore systems clearly and presenting accurate technical information.

Ability of learning:
The goal for the class is to introduce the basic principles behind the design of software for embedded and multicore systems, making it possible for the students to extend their knowledge independently according to technological changes and evolution.

1022262 | Artificial Intelligence3rd2nd6INF/01ITA

Educational objectives

General goals:
The course aims at introducing students to a wide-spectrum presentation of Artificial Intelligence (AI).

Specific goals:
The course aims at making students proficient in the theoretical comprehension of a wide set of AI techniques and in the practical use of such techniques within the design of intelligent software systems.

Knowledge and understanding:
A wide-spectrum introduction to the foundational principles and the different branches of Artificial Intelligence (AI), knowledge about problem solving by searching, logic inference, planning, automated reasoning, learning.

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

Critical and judgmental skills:
Students will be able to take autonomous and rational decisions on the most effective AI techniques to employ in the design of intelligent software systems.

Communication skills:
Students will be able to interact proficiently with other AI researchers on a wide set of AI topics.

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

1022265 | Modelling and Optimization3rd2nd6INF/01ITA

Educational objectives

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

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

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

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

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

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

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

1022268 | Introduction to Information Security3rd2nd6INF/01ITA

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.

10589652 | Functional and Imperative Programming Techniques3rd2nd6INF/01ITA

Educational objectives

General objectives:
Acquire functional programming paradigm and advanced aspects of imperative programming in C. Acquire techniques of reasoning about programs, to drive both correctness proofs or program testing.
Comparison among different programming language paradigms (imperative, functional, and object--oriented) to speed-up learning of new programming languages.

Specific objectives:

Knowledge and understanding:
Advanced aspects of C language (mainly, explicit pointers and memory (de)allocation, efficiency of C programming). Basic and advanced knowledge of functional programming in Haskell (polymorphic types,
laziness, higher-order functions, monads).

Apply knowledge and understanding:
Apply different programming methodologies (peculiar to each programming paradigm) to problem solving.

Critical Judgmental skills:
The comparative study of several programming languages paradigm allows students to evaluate, for example, which is the most suitable language to use to develop a given software application.
Reasoning about programs techniques can drive both program development and program testing.

Communication skills:
Students are stimulated, especially in their final presentation to expose concisely but precisely ideas behind programs as well as program analysis.

Learning ability:
The comparative study of several programming languages paradigm gives students the ability to focus on fondamental aspects of programming languages (parameter passing rules, type systems, language semantics) and this greatly improve their ability to learn new programming languages.
Also the ability to learn technical aspects (such as libraries, use of developer tools) will benefit from this studies.

1047635 | MACHINE LEARNING3rd2nd6INF/01ITA
The student must acquire 6 CFU from the following exams
LessonYearSemesterCFUSSDLanguage
1022264 | Programming Languages3rd1st6INF/01ITA

Educational objectives

General objectives:
The course investigates the foundations of programming languages. Special attention is given to static and dynamic semantics (type theory, operational and axiomatic semantics) and to formal tools for software specification and verification.

Specific objectives:
Inductive algebras are studied as foundations to abstract syntax, data structures and simple (equational) program logics. Elements of co-induction in connection with lazy structures the semantics of concurrency. Comparing lazy vs. eager languages, static vs. dynamic binding within different programming paradigms: imperative, functional and object-oriented. Type theory, ML- and Java-style polymorphism.

Knowledge and understanding:
The student will acquire foundational knowledge on programming languages and their paradigms, and will be able to picture in a coherent conceptual map some of the main research areas of theoretical computer science.

Application of knowledge and understanding:
At the end of the course students will be familiar with different programming paradigms and program logics. Functional programming will be introduced and a basic knowledge of SML and its type theory will be acquired.

Judgment skills:
Students will acquire notions necessary to develop quality software and to understand the modern developments of programming languages.

Communication skills:
Students will learn to use mathematics and logics to describe, develop and analyze software, and to integrate the formal approach with an intuitive presentation of ideas.

Learning ability:
The use of mathematics in the theory and practice of programming helps developing logical and analytical skills and a deeper understanding of programming languages.

10593235 | EMBEDDED AND MULTICORE SYSTEMS PROGRAMMING3rd1st6INF/01ITA

Educational objectives

General goals:
The course is aimed at training students on fundamental algorithmic and programming techniques suited for modern multicore and embedded plaftorms.

Specific goals:

Knowledge and understanding:
At the end of the course, students will have a deep understanding of the main programming issues posed by parallel systems, as well as of programming abstractions and techniques useful to write scalable code.

Apply knowledge and understanding:
Students will be able to design, program and implement embedded systems (single core/multi core) and will have an understanding of the OS used in such systems.

Critical and judgmental skills:
Students will be able to face the challenges arising in the design of embedded and multicore systems and in the implementation of efficient and scalable programs for such systems taking into account the characteristics of different computational plaftorms.

Communication skills:
The students will be able to communicate effectively, summarizing the main ideas in the design of software for embedded and multicore systems clearly and presenting accurate technical information.

Ability of learning:
The goal for the class is to introduce the basic principles behind the design of software for embedded and multicore systems, making it possible for the students to extend their knowledge independently according to technological changes and evolution.

1022262 | Artificial Intelligence3rd2nd6INF/01ITA

Educational objectives

General goals:
The course aims at introducing students to a wide-spectrum presentation of Artificial Intelligence (AI).

Specific goals:
The course aims at making students proficient in the theoretical comprehension of a wide set of AI techniques and in the practical use of such techniques within the design of intelligent software systems.

Knowledge and understanding:
A wide-spectrum introduction to the foundational principles and the different branches of Artificial Intelligence (AI), knowledge about problem solving by searching, logic inference, planning, automated reasoning, learning.

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

Critical and judgmental skills:
Students will be able to take autonomous and rational decisions on the most effective AI techniques to employ in the design of intelligent software systems.

Communication skills:
Students will be able to interact proficiently with other AI researchers on a wide set of AI topics.

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

1022265 | Modelling and Optimization3rd2nd6INF/01ITA

Educational objectives

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

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

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

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

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

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

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

1022268 | Introduction to Information Security3rd2nd6INF/01ITA

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.

10589652 | Functional and Imperative Programming Techniques3rd2nd6INF/01ITA

Educational objectives

General objectives:
Acquire functional programming paradigm and advanced aspects of imperative programming in C. Acquire techniques of reasoning about programs, to drive both correctness proofs or program testing.
Comparison among different programming language paradigms (imperative, functional, and object--oriented) to speed-up learning of new programming languages.

Specific objectives:

Knowledge and understanding:
Advanced aspects of C language (mainly, explicit pointers and memory (de)allocation, efficiency of C programming). Basic and advanced knowledge of functional programming in Haskell (polymorphic types,
laziness, higher-order functions, monads).

Apply knowledge and understanding:
Apply different programming methodologies (peculiar to each programming paradigm) to problem solving.

Critical Judgmental skills:
The comparative study of several programming languages paradigm allows students to evaluate, for example, which is the most suitable language to use to develop a given software application.
Reasoning about programs techniques can drive both program development and program testing.

Communication skills:
Students are stimulated, especially in their final presentation to expose concisely but precisely ideas behind programs as well as program analysis.

Learning ability:
The comparative study of several programming languages paradigm gives students the ability to focus on fondamental aspects of programming languages (parameter passing rules, type systems, language semantics) and this greatly improve their ability to learn new programming languages.
Also the ability to learn technical aspects (such as libraries, use of developer tools) will benefit from this studies.

1047635 | MACHINE LEARNING3rd2nd6INF/01ENG
The student must acquire 6 CFU from the following exams
LessonYearSemesterCFUSSDLanguage
1022263 | Human-Computer Interaction3rd1st6INF/01ITA

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 3rd1st6SECS-P/08ITA

Educational objectives

General goals:

The course of Start-Up Organization and Management 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 economical- financial feasibility .

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 lectures with laboratory activities, in which the students, divided into groups, will be guided didactically in the realization of a business plan related to an idea of digital enterprise. This path allows students to personally examine 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 goals
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 business world and group workshop activities.

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. Testimonials from the business world will also be introduced, 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 enabled 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 teaching in question, given that the issue of organizational communication is the subject of specific discussion within the same.

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

10606972 | Data Science and Law3rd1st6INF/01ITA
1031337 | Computational Biology3rd2nd6INF/01ITA

Educational objectives

General goals:
The general objective of the course is to transfer to the students knowledge of the state of the art of computational biology following the advent of massive sequencing technologies for the production of genomic and proteomic data. These bases are then necessary to allow students to achieve the skills for a proper analysis of the problems of their area and the ability to design and implement a software suitable for solving the proposed problem. Therefore the course is aimed at shaping a professional figure who is able to intervene in the resolution and management of IT projects in the biomolecular field.
Specific goals:
The course aims at training experts in biomedical data analysis and software systems designers who possess the basic knowledge of molecular biology and the technologies used to deal with the management of the enormous flow of data generated in this sector. These professional figures must be able, starting from the experimental data production platform (the problems arising from the data produced with massive sequencing will be particularly detailed), to establish which are the algorithms of interest for the analysis of the project raw data. They will also have to acquire a critical sensitivity and openness to the ability to define the data analysis protocol taking into account the available computing resources and optimize the analysis accordingly. At the end of the course, students will also present the management, integration and interrogation of the enormous amounts of data produced by the analyzes in order to obtain biological end results, effective and usable, and the production of software systems for the bioinformatics community.
Knowledge and understanding:
The training objectives are realized through lectures, laboratory activities and exercises in which simulations of work projects, classroom development or discussion with direct participation of students on problems and analysis of case studies are provided. During the exercises the students will learn how to plan and develop
• a bioinformatic analysis pipeline for processing raw data provided by Next Generation Sequencing platforms (NGS)
• the automatization and optimization of the NGS analysis pipeline
• a software system for managing and querying the data produced by the analysis
• the docking and molecular dynamics simulations of biological macromolecules in High-Performance-Computing environment.
Critical and judgmental skills:
Course students will acquire the ability to process complex and / or fragmentary information (for example, they will have to handle partially annotated sequences, ie only some of them will be associated with a chromosomal interval of a sequenced organism, and often annotated standard) and must arrive at a modeling of the data conceived in an original and autonomous way, chosen coherently with the biological scope of its experimental project.
Communication skills:
Students will be able to communicate with researchers in the biomedical area, in a clear, logical and effective way, using the methodological tools acquired during the course and through their own terms of computational biology. The acquisition of these skills will be tested through an oral examination and some projects developed in the laboratory.
Learning ability:
Students must have acquired the critical, original and autonomous ability to relate to problems of the computational biology projects and to independently apply the knowledge acquired during the course in view of a possible continuation of studies at a higher level (specialist degree) or in the broader perspective of cultural and professional analysis in the case of employment in the biomedical / bioinformatics area.

1041761 | LANGUAGES AND COMPILERS3rd2nd6INF/01ITA

Educational objectives

General goals:
Studenta will learn the inner workings of a compiler from both a theoretical and a practical standpoint.

Specific goals:

Knowledge and comprehension:
In order to build a solid foundation on the inner workings of a compiler, selected topics on Formal Languages and Automata Theory will be presented in this course.

Application of knowledge and comprehension:
Students will learn how to use well-known tools for building compilers, e.g. Lex and YACC.

Capabilities of critiquing and assessing:
A non-mandatory part of the final exam will require the creation of a compiler for a simple high-level programming language.

Capabilities of communication:
The course is not concerned with explicit objectives on communication skills, except to instruct on the rigorous presentation of formal topics.

Capability of learning
The theoretical foundations and the widely used practical tools presented in this course will form a solid base for more advanced studies in this field.

1022267 | Web Programming3rd2nd6INF/01ITA

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.

10600494 | VERIFICATION AND VALIDATION OF INTELLIGENT SYSTEMS3rd2nd6INF/01ITA

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.

The student must acquire 6 CFU from the following exams
LessonYearSemesterCFUSSDLanguage
1022263 | Human-Computer Interaction3rd1st6INF/01ITA

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.

1031337 | Computational Biology3rd2nd6INF/01ITA

Educational objectives

General goals:
The general objective of the course is to transfer to the students knowledge of the state of the art of computational biology following the advent of massive sequencing technologies for the production of genomic and proteomic data. These bases are then necessary to allow students to achieve the skills for a proper analysis of the problems of their area and the ability to design and implement a software suitable for solving the proposed problem. Therefore the course is aimed at shaping a professional figure who is able to intervene in the resolution and management of IT projects in the biomolecular field.
Specific goals:
The course aims at training experts in biomedical data analysis and software systems designers who possess the basic knowledge of molecular biology and the technologies used to deal with the management of the enormous flow of data generated in this sector. These professional figures must be able, starting from the experimental data production platform (the problems arising from the data produced with massive sequencing will be particularly detailed), to establish which are the algorithms of interest for the analysis of the project raw data. They will also have to acquire a critical sensitivity and openness to the ability to define the data analysis protocol taking into account the available computing resources and optimize the analysis accordingly. At the end of the course, students will also present the management, integration and interrogation of the enormous amounts of data produced by the analyzes in order to obtain biological end results, effective and usable, and the production of software systems for the bioinformatics community.
Knowledge and understanding:
The training objectives are realized through lectures, laboratory activities and exercises in which simulations of work projects, classroom development or discussion with direct participation of students on problems and analysis of case studies are provided. During the exercises the students will learn how to plan and develop
• a bioinformatic analysis pipeline for processing raw data provided by Next Generation Sequencing platforms (NGS)
• the automatization and optimization of the NGS analysis pipeline
• a software system for managing and querying the data produced by the analysis
• the docking and molecular dynamics simulations of biological macromolecules in High-Performance-Computing environment.
Critical and judgmental skills:
Course students will acquire the ability to process complex and / or fragmentary information (for example, they will have to handle partially annotated sequences, ie only some of them will be associated with a chromosomal interval of a sequenced organism, and often annotated standard) and must arrive at a modeling of the data conceived in an original and autonomous way, chosen coherently with the biological scope of its experimental project.
Communication skills:
Students will be able to communicate with researchers in the biomedical area, in a clear, logical and effective way, using the methodological tools acquired during the course and through their own terms of computational biology. The acquisition of these skills will be tested through an oral examination and some projects developed in the laboratory.
Learning ability:
Students must have acquired the critical, original and autonomous ability to relate to problems of the computational biology projects and to independently apply the knowledge acquired during the course in view of a possible continuation of studies at a higher level (specialist degree) or in the broader perspective of cultural and professional analysis in the case of employment in the biomedical / bioinformatics area.

1041761 | LANGUAGES AND COMPILERS3rd2nd6INF/01ITA

Educational objectives

General goals:
Studenta will learn the inner workings of a compiler from both a theoretical and a practical standpoint.

Specific goals:

Knowledge and comprehension:
In order to build a solid foundation on the inner workings of a compiler, selected topics on Formal Languages and Automata Theory will be presented in this course.

Application of knowledge and comprehension:
Students will learn how to use well-known tools for building compilers, e.g. Lex and YACC.

Capabilities of critiquing and assessing:
A non-mandatory part of the final exam will require the creation of a compiler for a simple high-level programming language.

Capabilities of communication:
The course is not concerned with explicit objectives on communication skills, except to instruct on the rigorous presentation of formal topics.

Capability of learning
The theoretical foundations and the widely used practical tools presented in this course will form a solid base for more advanced studies in this field.

1022267 | Web Programming3rd2nd6INF/01ITA

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.

10600494 | VERIFICATION AND VALIDATION OF INTELLIGENT SYSTEMS3rd2nd6INF/01ITA

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.