Tags:
create new tag
view all tags

Tecniche di Programmazione

Funzionale e Imperativa

Prof. Ivano Salvo

Corso di laurea in Informatica, 3zo anno

Avvisi 2025-26

BREAKING NEWS: This year, if any foreign student (for example from ACSAI) attends the course, the lessons will be held in English.
In any case, course material will be translated in english.

If some italian student would prefer to have course material in italian, please subscribe to the 2025 classroom (see below), where you can find the most updated italian versions.

BREAKING NEWS: Per l'edizione 2026, iscrivetevi al Classroom TPFI-26, codice za6betxk. Le lezioni cominceranno regolarmente, martedì, 24 febbraio 2026 alle ore 10.

BREAKING NEWS: Orario del corso (2026):

  • martedì 10-13 (aula Magna della palazzina C di viale Regina Elena (RM111)) e
  • giovedì 11-13 (aula Magna della palazzina C di viale Regina Elena (RM111)).

Vecchi Avvisi

NEWS: Finalmente ufficializzato l'orario del corso:
  • giovedì 11-13 (aula 2L di Castro Laurenziano) e
  • venerdì 12-15 (aula Magna della palazzina C di viale Regina Elena (RM111)).

Le lezioni cominceranno regolarmente, giovedì, 27 febbraio 2025 alle ore 11.

NEWS: Per l'edizione 2025, iscrivetevi al Classroom TPFI-25, codice itdft22. NEWS: Finalmente ufficializzato l'orario del corso: lunedì 13-16 e giovedì 14-16.
Di norma la lezione del lunedì sarà 14-16 e occasionalmente si farà la V ora settimanale nell'ora 13-14.
Le lezioni sono in aula S1, nella palazzina E di viale Regina Margherita 295 (RM113).

Le lezioni cominceranno regolarmente, lunedì, 26 febbraio 2024 alle ore 14.

NEWS: Per l'edizione 2024, iscrivetevi al Classroom TPFI-24, codice rtnrezf.

Descrizione del Corso

Il corso mira a introdurre il paradigma di programmazione funzionale, attraverso lo studio del linguaggio Haskell.
Viene inoltre fatto un confronto con il paradigma imperativo e quello funzionale.
Vengono infine introdotti metodi per ragionare sulla correttezza dei programmi in entrambi i paradigmi.

Programma del Corso

1. Programmazione Funzionale. [14 lezioni]

  1. Concetti base di Haskell: tipi, funzioni, definizioni ricorsive.
  2. Polimorfismo, classi, tipi definiti dall'utente, funzioni di ordine superiore.
  3. Call-by-name e valutazione lazy. Tipi di dato infiniti.
  4. Trattamento di aspetti non-funzionali (IO, eccezioni, stato, etc.) in Haskell: Funtori, Applicativi e Monadi.
  5. Sviluppo di programmi corretti e trasformazioni di programmi: ragionamento equazionale.

2. Programmazione Imperativa. [7 lezioni]

  1. Ripasso di programmazione base in C.
  2. Gestione esplicita della memoria in C, alias, side-effects.
  3. Confronti e contaminazioni I: programmazione funzionale in C.
  4. Confronti e contaminazioni II: programmazione imperativa in Haskell.
  5. Sviluppo di programmi corretti in C: asserzioni logiche. Limiti di questa metodologia nella programmazione imperativa.

3. Perle di Programmazione Funzionale e Imperativa. [5 lezioni]

  1. Ogni anno verranno selezionate 4-6 perle di programmazione imperativa.
  2. e 4-6 perle di programmazione funzionale.

Materiali Didattici

Orario delle Lezioni 2024/25 - II semestre

lunedì ore 10:00-13:00 aula Magna, RM111  
giovedì ore 11:00-13:00 aula Magna, RM111  


Diario delle Lezioni


Esami


Edit | Attach | Watch | Print version | History: r30 < r29 < r28 < r27 < r26 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r30 - 2026-02-14 - IvanoSalvo






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2026 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback