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.

This information is intended exclusively for students already enrolled in this course.
If you are a new student interested in enrolling, you can find information about the course of study on the course page:

Bachelor's degree in Computer Science - Enrollment from 2025/2026

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.

activated in the A.Y. 2025/2026
ModulesCreditsTAFSSD
12
B
INF/01
12
B
INF/01
6
A
FIS/01
6
C
MAT/01
Modules Credits TAF SSD
Between the years: 2°- 3°
Training
6
F
-
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

4S012331

Credits

6

Language

Italian

Scientific Disciplinary Sector (SSD)

INF/01 - INFORMATICS

Courses Single

Authorized

The teaching is organized as follows:

Teoria

Credits

5

Period

II semestre

Academic staff

Isabella Mastroeni

Laboratorio

Credits

1

Period

II semestre

Academic staff

Michele Pasqua

Learning objectives

The course aims to provide specific skills in the field of programming languages and their main characteristics. In particular, the course provides skills relating to the design and implementation of programming languages, with particular attention to the basics of operation and design of an interpreter. At the end of the course, the student will have to: Demonstrate knowledge and understanding of the fundamental notions of the programming language and the process of designing and implementing a programming language; Know how to apply the knowledge acquired to design and implement a programming language interpreter; Be able to choose and/or design the programming language according to what you need to develop; Knowing how to argue in a technical way the choice and use of a specific programming language according to the development context; Be able to continue the studies independently in the field of programming languages and software analysis and development.

Prerequisites and basic notions

Knowledge of mathematical logic and programming. Java programming skills.

Program

------------------------
UL: Teoria
------------------------
Virtual machines: interpreters and compilers. Syntactical descriptions of programming languages: context free grammars. Structured operational semantics.
Memory management: scoping rules, functions, procedures, parameter passing, stack of activation records, heap.
Control: structuring of statements, abstraction, exceptions.
Data and types: data types, base types, structured types, type systems, type inference and polymorphism.
Examples of programming paradigms.
------------------------
UL: Laboratorio
------------------------
Introduction of tools for making exercise on the techniques of interpretation of programming languages.

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

------------------------
UL: Theory
------------------------
Lectures
------------------------
UL: Laboratory
------------------------
Lectures

Learning assessment procedures

------------------------ UL: Theory ------------------------ Pretest to verify knowledge of the basic concepts of the course. Only if this pretest is sufficient will you be able to take the written exam. Written exam with exercises covering the entire course syllabus (with oral exam, also covering the entire syllabus, possible only for those who pass the written exam with a grade higher than 26/30, but mandatory for a grade higher than 26/30). ------------------------ UL: Laboratory ------------------------ The laboratory will consist of a project that will be evaluated separately with a grade out of 30.

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

------------------------
UL: Teoria
------------------------
The objective of the written test is to ascertain an adequate understanding of the contents and the ability to re-elaborate such contents. A sufficient capacity for formal reasoning on the semantics of programming languages is also ascertained through the resolution of exercises. The objective of the oral exam is to ascertain an advanced understanding of the contents that allows a critical analysis and a reworking of the concepts and results studied, also by ascertaining the knowledge of theorems and proofs.
------------------------
UL: Laboratorio
------------------------
It will be verified the quality and the effective understanding of the structures implemented and delivered.

Criteria for the composition of the final grade

The final grade consists of the sum of the marks out of thirtieths obtained in the individual modules weighted according to the respective CFU: 5/6 of the grade of the written test relating to the theory only (possibly (if above 26) averaged with the grade of the oral exam) added to 1/6 of the grade of the laboratory project (which therefore remains optional).

Exam language

Italiano