<center> ---+++ <font color=#B22222 size="+3"> Tecniche di Programmazione<br><br> Funzionale e Imperativa</font> <center> ---+++ <font color=#228B22 size="+2"> Prof. Ivano Salvo</font> </center> <font color=#222222 size="+2"> Corso di laurea in Informatica, 3zo anno</font><br> </center> ---+ <font color=#CC0000 size="+2"><b>Avvisi</b></font> *BREAKING 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)).<br> Le lezioni cominceranno *regolarmente*, *giovedì, 27 febbraio 2025* alle ore *11*. *BREAKING NEWS*: Per l'edizione *2025*, iscrivetevi al Classroom [[https://classroom.google.com/c/MjEyMzY0Nzg0MTVa?cjc=itdft22][TPFI-25]], codice *itdft22*. ---+ <font color=#990000 size="+2"><b>Vecchi Avvisi</b></font> *NEWS*: Finalmente ufficializzato l'orario del corso: lunedì 13-16 e giovedì 14-16.<br> Di norma la lezione del lunedì sarà 14-16 e occasionalmente si farà la V ora settimanale nell'ora 13-14.<br> 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 [[https://classroom.google.com/c/NjI4MTYwNDU4MTcx?cjc=rtnrezf][TPFI-24]], codice *rtnrezf*. ---+ <font color=#CC0000 size="+2"><b>Descrizione del Corso</b></font> Il corso mira a introdurre il paradigma di programmazione funzionale, attraverso lo studio del linguaggio Haskell.<br> Viene inoltre fatto un confronto con il paradigma imperativo e quello funzionale.<br> Vengono infine introdotti metodi per ragionare sulla correttezza dei programmi in entrambi i paradigmi.<br> ---+ <font color=#006400 size="+2"><b>[[Programma del Corso]]</b></font> *1. Programmazione Funzionale.* [14 lezioni] 1. Concetti base di Haskell: tipi, funzioni, definizioni ricorsive. 1. Polimorfismo, classi, tipi definiti dall'utente, funzioni di ordine superiore. 1. Call-by-name e valutazione lazy. Tipi di dato infiniti. 1. Trattamento di aspetti non-funzionali (IO, eccezioni, stato, etc.) in Haskell: Funtori, Applicativi e Monadi. 1. Sviluppo di programmi corretti e trasformazioni di programmi: ragionamento equazionale. *2. Programmazione Imperativa.* [7 lezioni] 1. Ripasso di programmazione base in C. 1. Gestione esplicita della memoria in C, alias, side-effects. 1. Confronti e contaminazioni I: programmazione funzionale in C. 1. Confronti e contaminazioni II: programmazione imperativa in Haskell. 1. 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. 1. e 4-6 perle di programmazione funzionale. ---+ <font color=#006400 size="+2"><b>[[MaterialiDidattici][Materiali Didattici]]</b></font> ---+++ <font color=#006400 size="+2"> <b>Orario delle Lezioni 2024/25 - II semestre</b> </font> | *lunedì* | ore 11:00-13:00 | aula 2L, Castro Laurenziano | | | *giovedì* | ore 12:00-15:00 | aula Magna, RM111 | | ---- ---- ---+ <font color=#006400 size="+2"><b>[[Diario delle Lezioni]]</b></font> ---- ---+ <font color=#006400 size="+2"><b>[[Modalita' d'Esame][Esami]]</b></font> ---- <!-- %DASHBOARD{ section="dashboard_start" }% %DASHBOARD{ section="banner" image="%PUBURL%/%SYSTEMWEB%/TWikiDashboardImages/golden-gate-sunset.jpg" title="%MAKETEXT{"Welcome to the Tecniche di Programmazione Funzionale e Imperativa web" args="<nop>%WEB%"}%" titlestyle="color:#800000;" }% %DASHBOARD{ section="box_start" title="Overview" }% Edit this topic to customize this dashboard. Change the boxes (tiles) to fit the needs of your team. * See [[TWiki.TWikiDashboardAddOn][TWiki Dashboard add-on]] docs. * Many [[TWiki.TWikiDashboardImages][banner images]] are available. %DASHBOARD{ section="box_end" }% %DASHBOARD{ section="box_start" title="%WEB% Web Links" contentstyle="overflow: hidden;" }% * Add useful links here %DASHBOARD{ section="box_end" }% %DASHBOARD{ section="box_start" title="[[%BASEWEB%.WebChanges][Recent Changes]]" contentstyle="overflow: hidden;" }% %INCLUDE{ "%SYSTEMWEB%.WebChangesRightBox" section="bullet_list" limit="30" }% %DASHBOARD{ section="box_end" }% %DASHBOARD{ section="box_start" title="Box 4" contentstyle="overflow: hidden;" }% Edit topic to customize %DASHBOARD{ section="box_end" }% %DASHBOARD{ section="box_start" title="Box 5" contentstyle="overflow: hidden;" }% Edit topic to customize %DASHBOARD{ section="box_end" }% %DASHBOARD{ section="box_start" title="%WEB% Web Utilities" contentstyle="overflow: hidden;" }% --> * icon:searchtopic [[WebSearch][Web search]] & [[WebSearchAdvanced][advanced search]] * icon:index [[WebTopicList][Web topic list]] - all topics * icon:mail [[WebNotify][Web notify]] - subscribe to e-mail alerts * icon:rss [[WebRss][RSS]] & [[WebAtom][ATOM]] feeds of topic changes * icon:statistics [[WebStatistics][Web statistics]] * icon:wrench [[WebPreferences][Web preferences]] - preferences of this web * icon:topmenu [[WebTopMenu]] - top menu definition %DASHBOARD{ section="box_end" }% <!--===== END ============================================--> %DASHBOARD{ section="dashboard_end" }%
This topic: TPFI
>
WebHome
Topic revision: r29 - 2025-02-22 - IvanoSalvo
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback