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
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/2026The 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 |
|---|
Algebra and Foundations of Mathematics
Mathematical analysis
2° Year activated in the A.Y. 2025/2026
| Modules | Credits | TAF | SSD |
|---|
3° Year activated in the A.Y. 2026/2027
| Modules | Credits | TAF | SSD |
|---|
Un insegnamento a scelta| Modules | Credits | TAF | SSD |
|---|
Algebra and Foundations of Mathematics
Mathematical analysis
| Modules | Credits | TAF | SSD |
|---|
| Modules | Credits | TAF | SSD |
|---|
Un insegnamento a scelta| 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 languages and interpreters (2026/2027)
Teaching code
4S012331
Credits
6
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 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
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.
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
