Testi Consigliati

Home

 

Docenti Programma Testi Consigliati Documentazione Downloads Esercitazioni Autovalutazione Esami Comunicazioni Corso a.a. 2008/09 Corso disattivato (fino al 2007/08)

La scelta del libro

 

Parlando di programmazione e' fondamentale ricordare due cose:

- a differenza di altre materie (e molto piu' che per altre materie) le fonti di apprendimento non si riducono ai libri "didattici": esistono numerosi corsi in formato elettronico e documentazione varia disponibile su Internet (e questo e' specialmente vero per Java). Inoltre ogni ambiente di sviluppo e' di solito corredato da documentazione cartacea e (piu' spesso) elettronica. Alcuni hanno addirittura dei tutorial che rappresentano dei veri e propri corsi interattivi. Considerare il libro come unica o principale fonte di apprendimento puo' essere limitativo.

- in ogni caso la programmazione non e' solo una materia che si studia. L'analogia con il nuoto e' in questo caso illuminante: ci sono due estremi. Un noto metodo per insegnare a nuotare e' buttare l'allievo nell'acqua alta e vedere cosa succede. In un modo o nell'altro l'allievo (se sopravvive) trova un proprio modo di stare a galla e muoversi nell'acqua, caratterizzato da modi di fare "personali" (a volte anche sbagliati o strani) che spesso poi si porta dietro per il resto della vita. All'altro estremo, imparare a nuotare dai libri e' poco praticabile: si puo' benissimo studiare una teoria di come muoversi in acqua, respirare, etc. etc. ma tutte queste nozioni rischiano di rimanere lettera morta e anche sostanzialmente incomprese finche' non ci si confronta con l'acqua. Questo confronto e' necessariamente individuale, perche' e' innegabile che nessuno puo' imparare al nostro posto. Solo grazie all'esperienza pratica e' possibile capire in modo non superficiale i concetti generali che possono venire presentati in una lezione o su un libro.

Va anche detto che chi passa da una prima fase di apprendimento di tipo "acqua alta" ad uno studio piu' sistematico puo' manifestare una specie di crisi di rigetto nei confronti di quest'ultimo.

La sensazione che "io so gia' fare" e quindi non vale la pena di seguire un corso perche' non "ho quasi piu' niente da imparare" e' rischiosa.
Il confronto e il riesame di concetti che si ritiene (a torto o a ragione) di possedere gia', costituiscono comunque un'utile verifica all'inizio di un corso universitario e possono permettere di correggere (almeno parzialmente) dei difetti e delle idee sbagliate che altrimenti potrebbero trascinarsi molto a lungo.

Detto questo, si puo' affermare che un buon libro e' sicuramente molto utile, pur se non sufficiente, per l'apprendimento della programmazione: si tratta di scegliere quale.

Anche in questo caso, pero', la scelta non e' assolutamente facile: va infatti considerato che un libro puo' essere piu' o meno utile a seconda delle caratteristiche del lettore. Senza toccare la questione dei gusti personali (che comunque e' importante), ci sono svariati fattori, a livello individuale, che possono essere determinanti per rispondere alla domanda "Quale libro comprare ?".

Ne elenchiamo alcuni di seguito, ma chiaramente la lista non e' esaustiva:

1) Conoscenza della lingua inglese: molti ottimi testi sono disponibili solo in lingua inglese. Inoltre in certi casi le traduzioni italiane di testi in lingua inglese lasciano a desiderare.

Per chi conosce ad un discreto livello la lingua inglese (almeno l'inglese tecnico) dotarsi di un testo in lingua originale e' sicuramente consigliabile (non va inoltre dimenticato che l'apprendimento dell'inglese tecnico e' da considerarsi praticamente indispensabile per un professionista serio in qualunque settore dell'ingegneria).

Per chi ha seri problemi con l'inglese, acquistare un libro in lingua originale puo' costituire una via per colmare le proprie lacune e migliorare le proprie conoscenze linguistiche, ma potrebbe anche rivelarsi una seria perdita di tempo senza particolari benefici.

2) Conoscenze precedenti: alcuni testi sono esplicitamente concepiti per principianti, altri per lettori dotati di precedenti esperienze di programmazione (piu' o meno vaste), altri ancora si rivolgono ipoteticamente a tutti i potenziali lettori (a volte col rischio di non soddisfarne nessuno). Di solito i testi rivolti a lettori esperti forniscono piu' informazioni ed entrano maggiormente in certi dettagli, ma sono piu' sbrigativi sui concetti base (la cui comprensione e' particolarmente importante) e pertanto possono risultare ostici per chi e' alle prime armi.

In ogni caso il consiglio e': NON sopravvalutarsi.

 

3) Durata nel tempo: l'utilizzo di un libro puo' andare ben oltre la preparazione di un singolo esame. Ci sono testi la cui utilita' si estende su piu' di un esame grazie alla loro ampiezza e completezza, altri testi risultano comunque utili come riferimento e fonte di informazioni anche nell'attivita' professionale. In linea di massima (ma con potenziali eccezioni), si puo' dire che i testi di natura piu' didattica (cioe' pensati per principianti) sono di maggiore utilita' per l'apprendimento iniziale (che e' naturalmente l'obiettivo fondamentale di un corso del primo anno) ma possono risultare non del tutto adeguati per gli usi futuri.

D'altra parte testi di taglio piu' professionale, e quindi potenzialmente piu' utili a lungo termine, possono risultare ostici e di difficile comprensione in fase iniziale per poi "rivalutarsi" nel tempo.

Dopo tutte queste premesse dovrebbe risultare chiaro che non esiste IL testo adottato e fermamente consigliato a TUTTI per il corso di Fondamenti di Informatica B. Il corso non segue rigidamente nessun testo particolare e, nella sua preparazione, si e' cercato anzi di "prendere il meglio" dagli svariati testi esaminati.

Vi sono tuttavia alcune indicazioni che si possono dare, lasciando poi la scelta del testo (o dei testi) da acquistare a ciascuno singolarmente. Come dovrebbe essere chiaro, gli obiettivi didattici del corso possono anche essere raggiunti senza utilizzare alcun testo (ma questo e' in generale SCONSIGLIABILE) e sono sicuramente raggiungibili utilizzando uno qualunque dei testi segnalati (ulteriori segnalazioni sono sicuramente gradite).

1) Per chi ha esperienze precedenti di programmazione limitate o nulle: in questo caso il testo consigliabile e' Concetti di Informatica e Fondamenti di Java (quarta o quinta edizione) di Cay Horstmann, un ottimo testo introduttivo esplicitamente concepito per guidare l'avvio all'attivita' di programmazione. Va comunque tenuto conto che, proprio per questo motivo, il testo copre una porzione limitata del linguaggio Java, sufficiente per gli scopi del corso del primo anno, ma insufficiente per usi successivi.

Titolo: Concetti di Informatica e Fondamenti di Java

Autore: Cay Horstmann

Casa editrice: Apogeo

Siti: http://horstmann.com/bigjava.html

       Scheda sul sito dell'editore italiano (quarta edizione)

       Scheda sul sito dell'editore italiano (quinta edizione)

 

2) Esperienze precedenti di programmazione significative. Per chi avesse precedenti nozioni di programmazione un ottimo testo e' Thinking in Java di Bruce Eckel - quarta edizione (i primi capitoli sono disponibili gratuitamente in forma elettronica in inglese).

Titolo: Thinking in Java

Autore: Bruce Eckel

Sito: http://mindview.net/Books/TIJ4

La casa editrice Pearson distribuisce una traduzione italiana in tre volumi della quarta edizione:

Thinking in Java Volume 1- I fondamenti

Thinking in Java Volume 2 - Tecniche avanzate

Thinking in Java Volume 3 - Concorrenza e interfacce grafiche

 

3) Esperienze precedenti di programmazione molto significative: chi, essendo molto esperto, volesse dotarsi di un testo che offre una trattazione estensiva molto dettagliata puo' preferire Core Java (pubblicato in due volumi)

Titolo: Core Java
           Volume I - Fondamenti
           Volume II - Tecniche Avanzate

Autori: Cay Horstmann, Gary Cornell

Casa editrice: Pearson Prentice Hall.

Siti: http://horstmann.com/corejava.html

       Scheda sul sito dell'editore italiano - Volume I

       Scheda sul sito dell'editore italiano - Volume II