Materiali Didattici

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:
Thinking in C++ (2nd Edition)
Prentice Hall, 2000.

Probabilmente, la pietra miliare per imparare la programmazione funzionale è il seguente libro (facilmente reperibile on-line):

Richard Bird, Philip Wadler:
Introduction to Functional Programming.
Prentice Hall, 1988.

Slides e registrazioni

  • Didattica Blended ai tempi della pandemia 2020:
    • Lezione 1: Introduzione al Corso e ai Linguaggi Funzionali: lezione 1 (registrazione non disponibile)
    • Lezione 2: Introduzione ad Haskell: lezione 2
    • Lezione 3: Introduzione ai linguaggi OOP e C++: lezione 3
    • Lezione 4: Sottotipaggio e Dynamic Binding in C++. Programmazione su liste in Haskell: lezione 4
    • Lezione 5: Programmazione su liste in Haskell (2). Pensare le soluzioni a oggetti: lezione 5
    • Lezione 6: Templates in C++. Valutazione lazy in Haskell lezione 6
    • Lezione 7: Definizione e uso di iteratori in C++. Uso di STL nell'applicazione Scacchi. Hamming numbers in Haskell lezione 7
    • Lezione 8: Perle di Laziness in Haskell: numeri di Hamming, di Ulams e Primi. lezione 8
    • Lezione 9: Ancora sulle STL: consultare i manuali. References e copy-constructor. lezione 9
    • Lezione 10: Definizioni di tipi e classi in Haskell. Input/output. lezione 10
    • Lezione 11: Eccezioni in C++. Miscellanea: Ereditarietà Multipla e Run-Time Type Identification. lezione 11

  • Le registrazioni delle lezioni 2020 sono disponibili su Google Drive. Mandatemi una mail se volete che vi condivida la cartella.

Materiali Web

Potete trovare un'enorme quantità di tutorial e materiali di studio su Haskell,
sull'Haskell Wiki

Personalmente, trovo molto comodo (per consultazione), l'Haskell Wiki Book

Letture

Ovviamente, per un corso di 3 crediti non si può pretendere un impegno troppo oneroso da parte degli studenti.
Tuttavia, per gli eventuali studenti interessati a titolo personale ad approfondire i temi del corso,
verranno nel seguito elencate alcune letture interessanti, in generale scritti programmatici su alcuni paradigmi di programmazione.

Why Functional Programming Matters?
John Hughes, 1989
Interessante articolo sulle virtù composizionali della programmazione funzionale,
con particolare accento all'ordine superiore e alla lazy evaluation. Da leggere.

The Design Principles Behind SmallTalk
Dan Ingalls, 1981
Quali sono le caratteristiche di un buon linguaggio di programmazione?
E quali sono le metafore sulle quali sono fondati i linguaggi OOP?

Codici dei Programmi visti a Lezione

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.

Anni Accademici Precedenti

-- IvanoSalvo - 10 Dec 2016

Edit | Attach | Watch | Print version | History: r20 < r19 < r18 < r17 < r16 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r20 - 2020-12-15 - 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-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