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.

Type D and Type F activities

Le attività formative di tipologia D sono a scelta dello studente, quelle di tipologia F sono ulteriori conoscenze utili all’inserimento nel mondo del lavoro (tirocini, competenze trasversali, project works, ecc.). In base al Regolamento Didattico del Corso, alcune attività possono essere scelte e inserite autonomamente a libretto, altre devono essere approvate da apposita commissione per verificarne la coerenza con il piano di studio. Le attività formative di tipologia D o F possono essere ricoperte dalle seguenti attività.

1. Insegnamenti impartiti presso l'Università di Verona

Comprendono gli insegnamenti sotto riportati e/o nel Catalogo degli insegnamenti (che può essere filtrato anche per lingua di erogazione tramite la Ricerca avanzata).

Modalità di inserimento a libretto: se l'insegnamento è compreso tra quelli sottoelencati, lo studente può inserirlo autonomamente durante il periodo in cui il piano di studi è aperto; in caso contrario, lo studente deve fare richiesta alla Segreteria, inviando a carriere.scienze@ateneo.univr.it il modulo nel periodo indicato.

2. Attestato o equipollenza linguistica CLA

Oltre a quelle richieste dal piano di studi, per gli immatricolati dall'A.A. 2021/2022 vengono riconosciute:

  • Lingua inglese: vengono riconosciuti 3 CFU per ogni livello di competenza superiore a quello richiesto dal corso di studio (se non già riconosciuto nel ciclo di studi precedente).
  • Altre lingue e italiano per stranieri: vengono riconosciuti 3 CFU per ogni livello di competenza a partire da A2 (se non già riconosciuto nel ciclo di studi precedente).

Tali cfu saranno riconosciuti, fino ad un massimo di 6 cfu complessivi, di tipologia F se il piano didattico lo consente, oppure di tipologia D. Ulteriori crediti a scelta per conoscenze linguistiche potranno essere riconosciuti solo se coerenti con il progetto formativo dello studente e se adeguatamente motivati.

Gli immatricolati fino all'A.A. 2020/2021 devono consultare le informazioni che si trovano qui.

Modalità di inserimento a librettorichiedere l’attestato o l'equipollenza al CLA e inviarlo alla Segreteria Studenti - Carriere per l’inserimento dell’esame in carriera, tramite mail: carriere.scienze@ateneo.univr.it

3. Competenze trasversali

Scopri i percorsi formativi promossi dal TALC - Teaching and learning center dell'Ateneo, destinati agli studenti regolarmente iscritti all'anno accademico di erogazione del corso https://talc.univr.it/it/competenze-trasversali

Modalità di inserimento a libretto: non è previsto l'inserimento dell'insegnamento nel piano di studi. Solo in seguito all'ottenimento dell'Open Badge verranno automaticamente convalidati i CFU a libretto. La registrazione dei CFU in carriera non è istantanea, ma ci saranno da attendere dei tempi tecnici.  

4. Contamination lab

Il Contamination Lab Verona (CLab Verona) è un percorso esperienziale con moduli dedicati all'innovazione e alla cultura d'impresa che offre la possibilità di lavorare in team con studenti e studentesse di tutti i corsi di studio per risolvere sfide lanciate da aziende ed enti. Il percorso permette di ricevere 6 CFU in ambito D o F. Scopri le sfide: https://www.univr.it/clabverona

ATTENZIONE: Per essere ammessi a sostenere una qualsiasi attività didattica, incluse quelle a scelta, è necessario essere iscritti all'anno di corso in cui essa viene offerta. Si raccomanda, pertanto, ai laureandi delle sessioni di dicembre e aprile di NON svolgere attività extracurriculari del nuovo anno accademico, cui loro non risultano iscritti, essendo tali sessioni di laurea con validità riferita all'anno accademico precedente. Quindi, per attività svolte in un anno accademico cui non si è iscritti, non si potrà dar luogo a riconoscimento di CFU.

Insegnamenti e altre attività che si possono inserire autonomamente a libretto valide per l'a.a. 2024/25

 

Teaching code

4S008895

Credits

12

Coordinator

Massimo Merro

Language

Italian

Scientific Disciplinary Sector (SSD)

ING-INF/05 - INFORMATION PROCESSING SYSTEMS

Courses Single

Authorized

The teaching is organized as follows:

Teoria

Credits

10

Period

Semester 1

Laboratorio

Credits

2

Period

Semester 1

Academic staff

Massimo Merro

Learning objectives

The course aims at providing the theoretical basis of programming languages ​​belonging to three different programming paradigms: imperative, functional and concurrent. In particular, the following issues are addressed: (i) techniques for the definition of formal syntax and semantics, (ii) logics for expressing formal properties of good behavior of programs, (iii) tools for static analysis of programs, (iv ) notions of behavioral equivalences between programs. At the end of the course, the student will be able to formally define a new programming language, also in a research context, through syntax, formal semantics and type systems for the static analysis of the correctness of programs written in the language. It will also be able to express programs' good behavior properties through logical languages. This knowledge will allow the student to: i) formally prove correctness properties of an arbitrary semantics using different induction techniques; ii) formally prove if a program satisfies a certain good behavior property; iii) formally prove the correctness of a type system; iv) master semantic behavioral equivalences in order to compare the behavior, at run time, of two different programs. At the end of the course, the student will be able to: i) compare different languages ​​and choose the most suitable one according to the context of use and make the most appropriate design choices when defining a new language; ii) continue studies in the programming languages ​​and software development independently.

Prerequisites and basic notions

Knowledge of at least one programming language, fundamentals of mathematical logic.

Program

First part.
• Introduction. Transition systems. The idea of structural operational semantics. Transition semantics of a simple imperative language. Language design options. Exercises.
• Types. Introduction to formal type systems. Typing for the simple imperative language. Statements of desirable properties.
• Induction. Review of mathematical induction. Abstract syntax trees and structural induction. Rule-based inductive definitions and proofs. Proofs of type safety properties. Exercises.
• Functions. Call-by-name and call-by-value function application, semantics and typing. Local recursive definitions. Exercises.
• Data. Semantics and typing for products, sums, records, references. Exercises.
• Subtyping. Record subtyping, function subtyping and simple object encoding. Exercises.
• Semantic equivalence. Semantic equivalence of phrases in a simple imperative language, including the congruence property. Examples of equivalence and non-equivalence. Exercises.
• Concurrency. Shared variable interleaving. Semantics for simple mutexes; a serializability property. Semantic equivalence for concurrent languages. Exercises.
Second part.
• Order, lattices, relations, fix-point theorems. Exercises.
• Denotational Semantics of an imperative language. Exercises.
• Program properties and specification languages (examples). Exercises.
• Hoare Logic (completeness & incompleteness of Hoare Logic), partial/total correctness. Exercises.
• Decidability, safety, liveness, security. Exercises.
• Trace semantics — Kripke structures. Exercises.
• Elements of Temporal Logic. Exercises.

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

Lectures and laboratory in the presence

Learning assessment procedures

The exam consists of a written test containing exercises together with a small project. The correct conduct of all exercises allows for a 30/30 vote.

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 student must show:
• to be able to define the operational semantics, denotational semantics, and type systems for some simple imperative, functional and interactive program language;
• to be able to prove properties of an operational semantics using various forms of induction (mathematical, structural, and rule-based);
• to be familiar with some operationally-based notions of semantic equivalence of program phrases and their basic properties.

Criteria for the composition of the final grade

The final grade is calculated as an average weighted on the CFU corresponding to the three modules of the course.

Exam language

Italiano