channel 3
Chair (Coordinator) and Rapporteur: PAOLO GIULIO FRANCIOSA
Objectives
Learning goals.
The primary objective is to learn how to describe simple processes in a formal way, through the definition of algorithms, and to acquire a methodology to evaluate the complexity of an algorithm.
Students must be able to:
- unambiguously define a problem,
- identify precisely which data should be processed,
- how to represent such data,
- how to decompose a procedure in steps that solves the problem.
These skills are expressed through the use of the Java programming language.
Knowledge and understanding.
After attending the course the students know and understand the concept of algorithm and how an algorithm can be expressed using a programming language.
They use the basic constructs of the Java language and are aware of the possibility of solving the same problem with different computational complexity algorithms.
They also know various algorithms for solving basic problems, such as searching and sorting, and some numerical algorithms.
Applying knowledge and understanding.
At the end of the course students are able to formalize algorithms for simple problems, implement them in Java language, passing through all phases: design, writing the source code, compilation, debugging and execution. They know the notations that allow to express asymptotically the complexity of an algorithm.
They know how textual, numerical, and other information can be encoded.
Making judgements.
Students are able to appreciate the difference between solving a problem and formally describing a resolutive process.
They manage to evaluate how different implementation choices can lead to solutions with different efficiency characteristics, applying paradigms studied in the context of basic problems.
Through intense laboratory activities they acquire a greater awareness of the processes underlying the use of a computer.
Communication skills.
Students acquire the formal rigor necessary to use a programming language.
They are able to appreciate and foresee the repercussions, in terms of complexity, of the application of different resolution techniques.
They know how to apply decomposition techniques, in order to reduce the solution of complex problems to the solution of simpler problems.
Learning skills.
Students who pass the exam can analyze the structure of a program, even complex, can easily be productive using any other imperative or object-oriented programming language, can distinguish for which problems an automated solution may exist.
- Academic year2026/2027
- Degree program to which the course belongsStatistics, Economics, and Social Sciences
- Lesson code10626664
- Year and semester1st year - 1st semester
- Activity typeBasic educational activities
- Academic areaDiscipline Informatiche
- SSDINFO-01/A
- Mandatory presenceNo
- Languageita
- CFU9 CFU
- Total duration72 hours
- Hours distribution72 classroom hours