---++ <font color="#993333" size="+3">Materiali Didattici<br /></font> Un buon libro per impadronirsi del linguaggio C++ venendo dal C è il seguente, che ha il vantaggio di essere facilmente reperibile on-line: Bruce Eckel:<br /> <b>Thinking in C++ (2nd Edition)</b><br /> Prentice Hall, 2000. Probabilmente, la pietra miliare per imparare la programmazione funzionale è il seguente libro (facilmente reperibile on-line): Richard Bird, Philip Wadler:<br /> <b>Introduction to Functional Programming.</b><br /> Prentice Hall, 1988. ---++ <font color="#339933" size="+2">Slides e registrazioni</font> * *Didattica Blended* ai tempi della pandemia *2020*: * *Lezione 1*: Introduzione al Corso e ai Linguaggi Funzionali: [[%ATTACHURL%/lezione1.pdf][lezione 1]] (registrazione non disponibile) * *Lezione 2*: Introduzione ad Haskell: [[%ATTACHURL%/lezione2.pdf][lezione 2]] * *Lezione 3*: Introduzione ai linguaggi OOP e C++: [[%ATTACHURL%/lezione3.pdf][lezione 3]] * *Lezione 4*: Sottotipaggio e Dynamic Binding in C++. Programmazione su liste in Haskell: [[%ATTACHURL%/lezione4.pdf][lezione 4]] * *Lezione 5*: Programmazione su liste in Haskell (2). Pensare le soluzioni a oggetti: [[%ATTACHURL%/lezione5.pdf][lezione 5]] * *Lezione 6*: Templates in C++. Valutazione lazy in Haskell [[%ATTACHURL%/lezione6.pdf][lezione 6]] * *Lezione 7*: Definizione e uso di iteratori in C++. Uso di STL nell'applicazione Scacchi. Hamming numbers in Haskell [[%ATTACHURL%/lezione7.pdf][lezione 7]] * *Lezione 8*: Perle di Laziness in Haskell: numeri di Hamming, di Ulams e Primi. [[%ATTACHURL%/lezione8.pdf][lezione 8]] * *Lezione 9*: Ancora sulle STL: consultare i manuali. References e copy-constructor. [[%ATTACHURL%/lezione9.pdf][lezione 9]] * *Lezione 10*: Definizioni di tipi e classi in Haskell. Input/output. [[%ATTACHURL%/lezione10.pdf][lezione 10]] * *Lezione 11*: Eccezioni in C++. Miscellanea: Ereditarietà Multipla e Run-Time Type Identification. [[%ATTACHURL%/lezione11.pdf][lezione 11]] * Le *registrazioni* delle lezioni 2020 sono disponibili su Google Drive. Mandatemi una mail se volete che vi condivida la cartella. <!-- * *Lezione 4*: Alias, side effects e Ricorsione: [[%ATTACHURL%/lezione04.pdf][slides Lezione 4]] e [[https://drive.google.com/open?id=1wJl4DJtYe5SG0h3X2_Fem4LfabGh6UPa][registrazione]]. * *Lezione 5*: Vettori in C. Il problema del baricentro. [[%ATTACHURL%/lezione05.pdf][slides Lezione 5]] e [[https://drive.google.com/open?id=13WAKdUuagHuoi8QMKQbGQKhK09p_hovb][registrazione]] * *Lezione 6*: Vettori variabili e vettori dinamici. Allocazione di Memoria. [[%ATTACHURL%/lezione06.pdf][slides Lezione 6]] e [[https://drive.google.com/open?id=1LWf_9RBTqysyLhsk22q6ogS05qypKnoQ][registrazione]] --> ---++ <font color="#339933" size="+2">Materiali Web</font> Potete trovare un'enorme quantità di tutorial e materiali di studio su Haskell, <br> sull'<a href="https://wiki.haskell.org/Haskell"><i>Haskell Wiki</i></a><br> Personalmente, trovo molto comodo (per consultazione), l'<a href="https://en.wikibooks.org/wiki/Haskell"><i>Haskell Wiki Book</i></a><br> ---++ <font color="#339933" size="+2">Letture</font> Ovviamente, per un corso di 3 crediti non si può pretendere un impegno troppo oneroso da parte degli studenti.<br> Tuttavia, per gli eventuali studenti interessati a titolo personale ad approfondire i temi del corso, <br> verranno nel seguito elencate alcune letture interessanti, in generale scritti programmatici su alcuni paradigmi di programmazione. <blockquote> <a href="http://www.cse.chalmers.se/~rjmh/Papers/whyfp.pdf"><i>Why Functional Programming Matters?</i></a> <br><b>John Hughes, 1989</b><br> Interessante articolo sulle virtù composizionali della programmazione funzionale, <br>con particolare accento all'ordine superiore e alla lazy evaluation. Da leggere. </blockquote> <blockquote> <a href="https://www.cs.virginia.edu/~evans/cs655/readings/smalltalk.html"> <i>The Design Principles Behind SmallTalk</i></a> <br><b>Dan Ingalls, 1981</b><br> Quali sono le caratteristiche di un buon linguaggio di programmazione?<br> E quali sono le metafore sulle quali sono fondati i linguaggi OOP? </blockquote> ---++ <font color="#336699" size="+2">Codici dei Programmi visti a Lezione</font> * File con il progetto Scacchi: [[%ATTACHURL%/scacchi.zip][Scacchi in C++]]. Contiene i files ==casella.cpp==, ==colore.cpp==, ==scacchiera.cpp==, ==pezzi.cpp==, e ==scacchi.cpp== e relativi ==.h==. Compila con il comando ==g++ colore.cpp scacchiera.cpp pezzi.cpp scacchi.cpp -o scacchi== (l'ordine è rilevante!), che genera l'eseguibile ==scacchi==. Il formato delle mosse può essere consultato vedendo le due partite di esempi, nella sottodirectory ==esempi==. Ad esempio, dopo la compilazione, ==./scacchi < esempi/esempio1.txt== esegue la prima partita di esempi. Non implementa le mosse speciali, arrocco, presa en-passant e promozione di un pedone, nè verifica i casi di patta. Gli studenti sono invitati a segnalare al docente ogni eventuale errore riscontrato. * Progettazione di tipi di dato con definizione di iteratori: [[%ATTACHURL%/stackStudenti.cpp][Stack e Iteratori]]. ---++ <font color="#663399" size="+1">Anni Accademici Precedenti</font> * Progettazione di tipi di dato: [[%ATTACHURL%/raz.cpp][Razionali]]. * Esempio di ereditarietà: [[%ATTACHURL%/cell.cpp][Cella di Memoria]]. * Esempio di binding dinamico: [[%ATTACHURL%/punti.cpp][Punti e Punti Colorati]]. -- Users.IvanoSalvo - 10 Dec 2016
This topic: LDPMat
>
WebHome
>
LibriDiTesto
Topic revision: r20 - 2020-12-15 - 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