Modules | Area | Type | Hours | Teacher(s) | |
PARADIGMI DI PROGRAMMAZIONE | INF/01 | LEZIONI | 72 |
|
L'insegnamento si propone di fornire un modell concettuale per confrontare e analizzare la moltitudine di linguaggi di programmazione, e paradigmi nel panorama della programmazione modern. aAl termine dell'insegnamento lo studente avrà acquisito conoscenze relative allla progettazione, realizzazione e uso dei lin guaggi di progreammazione
The course seeks to provide a conceptual model on how to compare and analyze the multitude of programming languages and paradigms in the modern programming landscape. At the end of the course studenst will have acquired basic knowledge and skills on the design, implementation and use of programming languages.
Per l'accertamento delle conoscenze saranno svolte delle prove scritte che includurenni anche aspetti di sperimentazione sulla progettazione e uso di molteplici paradigmi linguistici di programmazione.
For the assessment of knowledge, written tests will be carried out. This written tests will also include experimental activities on the design and use of multiple programming language paradigms.
Al termine del corso
At the end of the course
Durante le attività di esercitazione saranno svolte sia attività pratiche di programamzione che attivita' atte alla modelizzazione foirmale dei linguaggi di programmazione. Nella prova scritta gli studenti saranno chiamati a preparare semplici relazioni sulla modellazione formale di concetti di programmazione.
Training activities will address exprimental programming tasks as well as tasks aimed at formal modelling of programming language concepts.The written exam will require that students prepare and submit written reports on formal modelling of programming concepts.
Abilità nel lavoro di gruppo (team work)
Skill in team work
Verra' valutata la corretteza e la desriziomne delle domande della prova scritta.
The correctness and design of the questions in the written test will be assessed.
Conoscenza della programmazione e delle tecniche algoritmiche di base.
Knowledge of programming and basic algorithmic techniques.
Lo studio dei linguaggi di programmazione è isuddiviso sistematicamente bilanciando teoria e pratica. La comprensione rigorosa della struttura e della semantica del linguuaggio di programmazione permette un ragionamento formale sul comportamento e le proprietà dei sistemi complessi del mondo reale.
La frequenza non e' obbligatoria ma e' fortemente consigliata. Il corso e' pensato ed organizzato per una frequenza attiva e continua.
The study of programming languages is equal parts systems and theory, looking at how a rigorous understanding of the syntax, structure, and semantics of computation enables formal reasoning about the behavior and properties of complex real-world systems.
Attendance is not compulsory but strongly recommended. The course is designed and organised for active and continuous attendance.
Modelli formali dei linguaggi di programmazione: il lambda calcolo
Il lambda calcolo: semantica operazionale
Il lambda calcolo tipato semplice
Il paradigma funzionale: concetti e caratteristiche di base.
Un caso di studio: il linguaggio OCAML
I sistemi di tipo nel linguaggi di programmazione.
Polimorfismo e inferenza di tipo
Il paradigma orientato a oggetti: concetti e caratteristiche di base.
Linguaggi Object-based e class based.
Esempi: Javascript, Ocaml
Un caso di Studio: Java
Eredetarieta' singola e multipla
Il paradigma della programmazione concorrente. Concetti e caratteristiche di base,
Esempi
Un caso di studio: Rust
Formal models of programming languages: the lambda calculus
The lambda calculus: operational semantics
The simple typed lambda calculus
The functional paradigm: basic concepts and characteristics.
A case study: the OCAML language
Type systems in programming languages.
Polymorphism and type inference
The object-oriented paradigm: concepts and basic characteristics.
Object-based and class-based languages.
Examples: Javascript, Ocaml
A case study: Java
Single and multiple inheritance
The paradigm of concurrent programming. Basic concepts and characteristics,
Examples
A case study: Rust
Ulteriore materiale didattico e' disponibile nella classroom dell'insegnamento:
Further teaching material ia available in the classromm associted to teh course
The final assessment consists of a written test and an oral discussion.
The written test consists of a series of practical and formal modelling exercises.
Non e' presente una pagina web ma una classroom
https://teams.microsoft.com/l/team/19%3aEikjQ7EGlCVE5JlQkFVL3idgEr8Os17EuIpfTMg5px01%40thread.tacv2/conversations?groupId=32fd2f18-eac5-4578-8f1a-8e933cbcbcf9&tenantId=c7456b31-a220-47f5-be52-473828670aa1
The course classroom
https://teams.microsoft.com/l/team/19%3aEikjQ7EGlCVE5JlQkFVL3idgEr8Os17EuIpfTMg5px01%40thread.tacv2/conversations?groupId=32fd2f18-eac5-4578-8f1a-8e933cbcbcf9&tenantId=c7456b31-a220-47f5-be52-473828670aa1