Mathematics and Foundations of Programming

A.Y. 2026/2027
21
Max ECTS
140
Overall hours
SSD
INFO-01/A MATH-03/A MATH-05/A
Language
Italian
Learning objectives
The cluster aims to provide students with foundational mathematical, methodological, and operational knowledge required for problem analysis and solution through mathematical modeling and subsequent algorithmic implementation.
The educational pathway introduces the formal language and core concepts of mathematics, which are essential for the description of data, relationships, and problems, alongside the fundamentals of programming and algorithms. In particular, the cluster provides initial software development skills, with reference to the basic mechanisms of computation and to algorithmic reasoning applied to mathematically formalized problems.
The cluster is designed to also support students with no prior background, guiding them progressively from problem formalization to the design of algorithmic solutions and their implementation. The educational objective is to build a solid and coherent foundation, which is preparatory to subsequent clusters, where the acquired mathematical and programming skills are reused and further developed in more complex application contexts.
The cluster is organized into the modules Programming and Algorithms I, Mathematics I, and Mathematics II, which are designed in an integrated manner. The modules jointly contribute to the achievement of the intended learning outcomes by combining mathematical foundations in both continuous and discrete domains with programming and algorithmic fundamentals, fostering skills in problem formalization, algorithm design, and solution implementation.
Expected learning outcomes
Knowledge and understanding
At the end of the cluster, the student acquires foundational knowledge of discrete mathematics and logic, as well as of the fundamentals of programming and algorithms, which is necessary for the formalization and rigorous description of problems, data, and relationships, using appropriate formal language and notation.
Applying knowledge and understanding
At the end of the cluster, the student is able to:
· analyze a problem and decompose it into sub problems, defining a solution through mathematical modeling and algorithmic design;
· translate a solution into an algorithm, justifying the adopted design choices;
· implement algorithmic solutions in an imperative programming language, using control structures, functions, and basic data structures;
· verify and improve the correctness of implemented solutions through elementary testing, debugging, and essential documentation.
Making judgements
The student develops the ability to:
· qualitatively assess the correctness of proposed solutions;
· estimate, in intuitive terms, the computational complexity of an algorithm (number of operations) and its scalability as the size of the data increases;
· compare alternative solutions with respect to simplicity, efficiency, and clarity of implementation.
Communication skills
At the end of the cluster, the student is able to communicate clearly and in a formally correct manner, also in written form, the addressed problem, the adopted model, the proposed algorithmic solution, and the obtained results, using language appropriate to the scientific and technical context.
Learning skills
The student acquires the ability to:
· independently identify, select, and use educational and in depth resources (textbooks, lecture notes, tutorials, technical documentation) to fill knowledge gaps and deepen mathematical and programming concepts;
· address problems and exercises not previously covered by formulating solution hypotheses, decomposing the problem into elementary components, and verifying the correctness and efficiency of the solutions;
· independently adopt development tools and practices (e.g., development environments, version control, and testing) to improve code quality, traceability, and maintainability.
Single course

This course cannot be attended as a single course. Please check our list of single courses to find the ones available for enrolment.

Course syllabus and organization

Single session

Modules or teaching units
Mathematics I
MATH-03/A - Mathematical Analysis - University credits: 4
MATH-05/A - Numerical Analysis - University credits: 2
: 10 hours
: 8.01 hours
: 22 hours

Mathematics II
MATH-03/A - Mathematical Analysis - University credits: 2
MATH-05/A - Numerical Analysis - University credits: 4
: 10 hours
: 8 hours
: 22 hours

Programming and Algorithms I
INFO-01/A - Informatics - University credits: 9
: 12 hours
: 16 hours
: 32 hours