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.

CURRICULUM TIPO:
Modules Credits TAF SSD
Between the years: 1°- 2°- 3°
English B2
3
E
-
Between the years: 2°- 3°

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.




S Placements in companies, public or private institutions and professional associations

Teaching code

4S009862

Credits

12

Coordinator

Nicola Bombieri

Language

Italian

Scientific Disciplinary Sector (SSD)

INF/01 - INFORMATICS

Courses Single

Authorized

The teaching is organized as follows:

Teoria

Credits

8

Period

Semester 1 , Semester 2

Academic staff

Nicola Bombieri

Programming languages and programing tools with laboratory [Matricole dispari]

Credits

4

Period

Semester 1 , Semester 2

Academic staff

Roberto Di Marco

Laboratorio [Matricole pari]

Credits

4

Period

Semester 1 , Semester 2

Academic staff

Maurizio Boscaini

Learning objectives

The course aims to provide the basic knowledge for writing programs in an imperative procedural language (e.g., C Language), with emphasis on the relationship between the program and the architecture of the computer running the program, on the concept of recursion and on the implementation of data structures. At the end of the course the students will have to demonstrate that they are able to translate an algorithm into a program written with an imperative procedural language by organizing the related data structures and to be able to optimize it through debugging and profiling techniques. The students must also demonstrate that they have the necessary skills to continue their studies independently in the field of programming and software development.

Prerequisites and basic notions

None

Program

Theory:
------------
• Introduction.
• Fundamental concepts: programming, high-level languages, operating systems, program compiling.
• Compiling and execution of the first program: first program compiling, first program execution, first program description, variable visualization, comments.
• Variables, data types and arithmetic expressions: operating with variables, data types and constants, operating with arithmetic expressions, combining operations with assignment – assignment operators.
• Iteration: for instruction, while instruction, do instruction.
• Taking decisions: if instruction, switch instruction, Boolean variables, conditional statement.
• Statements with arrays: array definition, array initialization, arrays of chars, multidimensional arrays.
• Functions: function definition, arguments and local variables, returning results of a function, functions that call functions that calling functions…, top-down programming, functions and arrays, global variables, automatic and static variables, recursive functions.
• Structures: a structure for data storing, functions and structures, structure initialization, array of structures, structures containing structures, structures containing arrays, variants of structures.
• Strings of chars: arrays of chars, strings of chars of variable length, escape sequences, other information of constant strings, char strings, structures and arrays, operations with chars.
• Pointers: pointer definition, using pointers in expressions, pointers and structures, pointers and functions, pointers and arrays, operations on pointers, pointers and memory addresses.
• The preprocessing: #define directive, #include directive, conditional compiling.
• Input/Output operations: I/O of chars – getchar and putchar, printf and scanf
• Advanced characteristics: comma operator, dynamic memory allocation.
Laboratory:
-----------------
• Introduction, file system, bash, editor.
• Practical programming in lab by applying all the arguments explained in the theory part: examples, exercises.
• Code debugging: gdb, ddd, and CodeBlocks.

Bibliography

Visualizza la bibliografia con Leganto, strumento che il Sistema Bibliotecario mette a disposizione per recuperare i testi in programma d'esame in modo semplice e innovativo.

Didactic methods

Frontal lessons for the theory part.
Lessons at the computer desktop for the lab part.

Learning assessment procedures

Programming exercises in lab

Students with disabilities or specific learning disorders (SLD), who intend to request the adaptation of the exam, must follow the instructions given HERE

Evaluation criteria

To pass the exam, the students have to show:
- they have understood the principles related to the programming in C language;
- they are able to develop C code and to analyze its correctness and problems through debugging;
- they are able to apply the acquired knowledge to implement algorithms in C code by starting from specifications given as exercises.
The emphasis in the evaluation will be given to the ability to organize algorithms and data structures and to translate them into the C language.

Criteria for the composition of the final grade

The exam is unified with the Laboratory part. It consists of two partials. The first partial (maximum 32 points) will take place approximately in February and the second partial (maximum 32 points) in June. The exam will be considered passed if both partials are sufficient (>= 18/32). The final grade will be obtained by averaging the grades of the two partial exams ((partial_grade_1+partial_grade_2)/2). In addition to the partials, students have the normal 4 annual total exam sessions available, starting from the one in June, in which exams will be held on the entire program. The tasks (partial or total) consist of writing computer programs.

Exam language

Italiano