Studying at the University of Verona
Here you can find information on the organisational aspects of the Programme, lecture timetables, learning activities and useful contact details for your time at the University, from enrolment to graduation.
Study Plan
The Study Plan includes all modules, teaching and learning activities that each student will need to undertake during their time at the University.
Please select your Study Plan based on your enrollment year.
1° Year
| Modules | Credits | TAF | SSD |
|---|
Mathematical analysis
2° Year It will be activated in the A.Y. 2026/2027
| Modules | Credits | TAF | SSD |
|---|
3° Year It will be activated in the A.Y. 2027/2028
| Modules | Credits | TAF | SSD |
|---|
One module to be chosen among the following| Modules | Credits | TAF | SSD |
|---|
Mathematical analysis
| Modules | Credits | TAF | SSD |
|---|
| Modules | Credits | TAF | SSD |
|---|
One module to be chosen among the following| Modules | Credits | TAF | SSD |
|---|
Legend | Type of training activity (TTA)
TAF (Type of Educational Activity) All courses and activities are classified into different types of educational activities, indicated by a letter.
Programming for cyber-physical systems (2025/2026)
Teaching code
4S012702
Credits
12
Language
Italian
Scientific Disciplinary Sector (SSD)
INF/01 - INFORMATICS
Courses Single
Authorized
The teaching is organized as follows:
Teoria
Laboratorio
Learning objectives
The course aims to provide basic problem solving knowledge through the design of algorithms and the programming of computing architectures for cyber-physical systems.
It provides the basic knowledge for writing programs in C language, with emphasis on solution algorithms and their complexity with relative impact on performance and energy consumption, on the relationship between the program and the architecture of the computer that executes the program, on the creation of data structures. At the end of the course the student will have to demonstrate that they know how to translate an algorithm into a program written in C language by organizing the related data structures, that they know how to measure performance, that they know how to optimize using debugging and profiling techniques as well as compiling for different architectures (cross- compilation). The student must also demonstrate that they have the necessary skills to continue their studies independently in the field of programming and software development for cyber-physical systems.
Prerequisites and basic notions
Basic knowledge of algebra and mathematical analysis
Program
1. Introduction 2. Fundamentals 3. Compiling and running your first program 4. Variables, data types, and arithmetic expressions 5. Loops in programs 6. Decision structures ("making decisions") 7. Arrays 8. Functions and recursion 9. Data structures 10. Character strings 11. Pointers 12. The preprocessor 13. In-depth analysis of data types 14. Larger programs 15. Input/output operations in C 16. Various and advanced features 17. Debugging programs 18. Lists, trees, and graphs, dynamic memory allocation 20. Complexity, sorting algorithms
Books: Programming in C / Stephen G. Kochan ; edited by Luca Bernardinello Programming in C : a guide to the language through solved and commented exercises / Marco Liverani
Didactic methods
Frontal lectures for the theory part. Computer lectures for the laboratory part.
Learning assessment procedures
The assignments (partial or full) consist of writing C programs, typically three exercises with a maximum score of 11 points each.
The exam is administered on the course's Moodle platform, using the CodeRunner plugin and the integrated code editor (ACE).
Before the exam, students will have the opportunity to practice with these tools and familiarize themselves with the automatic code evaluation methods, which can also be verified at runtime through CodeRunner. The exam is considered passed if the program's output matches that expected by CodeRunner. The final score also includes an evaluation of the code's readability (layout), optimization of the code and the quality of the comments provided.
Evaluation criteria
To pass the exam, students must demonstrate that they:
- understand the principles underlying C programming;
- are able to develop C code and analyze its correctness;
- are able to apply the knowledge acquired to implement resolution algorithms;
The ability to organize the algorithm and data structures and translate them into C language will be assessed.
Criteria for the composition of the final grade
The exam consists of two partial exams.
The first partial exam will take place approximately in February and the second partial exam in June.
The exam will be considered passed if both partial exams are sufficient (grade >= 18/32).
The final grade will be calculated by averaging the grades of the two partial exams ((partial grade 1 + partial grade 2)/2).
In addition to the partial exams, students have access to the standard five annual comprehensive exam sessions, starting in June, which will include exams covering the entire program.
The assignments (partial or comprehensive) consist of writing computer programs.
Exam language
Italiano
