<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: 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*. *BREAKING NEWS*: Per l'edizione *2024*, iscrivetevi al Classroom [[https://classroom.google.com/c/NjI4MTYwNDU4MTcx?cjc=rtnrezf][TPFI-24]], codice *rtnrezf*. ---+ <font color=#990000 size="+2"><b>Vecchi Avvisi</b></font> Le lezioni si sposteranno in aula *S1*, Regina Elena, *edificio E* (seminterrato) da *giovedì 23 febbraio*, <br> con l'esclusione delle lezioni del *13 marzo*, *22* e *29 maggio* in cui torneranno in aula G0. Le lezioni cominceranno regolarmente *lunedì 20 febbraio* ore *14*, aula *G0*, Regina Elena, *edificio G*. Per l'edizione *2023*, iscrivetevi al Classroom [[https://classroom.google.com/c/NTgzMjE5OTcyNDgz?cjc=657xyb3][TPFI-23]], codice *657xyb3*. *Avviso*: Per l'edizione *2022*, iscrivetevi al Classroom [[https://classroom.google.com/c/NDY5MzQyMjg4Njgz?cjc=nqsvha3][TPFI-22]], codice *nqsvha3*. *Avviso*: Gli studenti interessati a seguire il corso nel *2022*, oltre a iscriversi al Classroom, sono pregati di inviare una mail al docente e specificare se intendono seguire il corso in presenza o da remoto. *Avviso*: Eventuali studenti che non avessero seguito il corso, ma intendono sostenere l'esame, sono pregati di contattare il docente. ---+ <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 2023/24 - II semestre</b> </font> | *lunedì* | ore 14:00-16:00 | aula S1, RM113 | (occasionalmente ore 13:00) | | *giovedì* | ore 14:00-16:00 | aula S1, RM113 | | ---- ---- ---+ <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: r28 - 2024-02-12 - IvanoSalvo
Copyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback