Descrizione
Non è l’ennesimo manuale introduttivo all’uso del C++, né tantomeno una introduzione alla programmazione object oriented.
Il suo scopo è un altro: presentare il paradigma della programmazione imperativa, ristretto ai soli programmi iterativi e piano piano, partendo da semplici esercizi, mettere in grado anche coloro che non hanno mai scritto una riga di codice, ma che hanno una sufficiente maturità intellettuale, di scrivere algoritmi via via più complessi.
L’esperienza ci ha mostrato che la maggior difficoltà che si presenta agli studenti, anche volenterosi, è l’incapacità di analizzare l’algoritmo o il programma da essi stessi scritto per rilevarne eventuali errori o convincersi della sua correttezza. In altri termini nel rileggere il programma, restano legati all’intuizione iniziale che li ha spinti a scriverlo, e non riescono a simulare nella loro mente ciò che effettivamente farà la macchina astratta definita dal linguaggio nell’eseguirlo.
È vero che una tale capacità si acquista col tempo e con l’esperienza, tuttavia oggi è possibile fornire allo studente, fin dall’inizio, opportuni strumenti metodologici che possono aiutarlo a sviluppare le sue capacità di astrazione.
Nei primi due capitoli del testo si introducono i principali costrutti della programmazione iterativa e gli array come usati nel C, fornendo numerosi semplici esercizi, ma sempre mantenendo la distinzione fra l’algoritmo scritto in pseudo codice ed il corrispondente programma scritto in C++.
È sull’algoritmo che deve concentrarsi in primo luogo lo studente, svincolandosi dalle particolari caratteristiche del linguaggio di programmazione. Chi è in grado di scrivere algoritmi corretti non avrà difficoltà a tradurli in un qualsiasi linguaggio di programmazione imperativo.
Infine prima di affrontare algoritmi un poco più complessi, si introduce la metodologia top down dei raffinamenti successivi.
Questa metodologia si sposa perfettamente con l’esigenza di rendere modulari i programmi ed è per questo che il terzo capitolo, interamente dedicato alle function del C++ risulta cruciale.
Ancora una volta l’attenzione è incentrata sull’algoritmo che nella fase di progettazione è presentato come una successione di opportune chiamate a sottoprogrammi di ognuno dei quali si sa certamente cosa dovrebbe fare, ma non necessariamente come lo fa.
Anche importante è il quarto capitolo che dovrebbe far capire allo studente come si ragiona su un programma per verificarne la correttezza. Si ritorna sui costrutti di controllo per ragionarci sopra, si introduce il concetto di invariante di loop, si illustrano diversi schemi di algoritmi. Capire indipendentemente dai dettagli del problema in esame quale è lo schema di algoritmo da applicare è una capacità che lo studente deve sviluppare se vuole diventare non solo un buon programmatore, ma anche un buon progettista.
Infine, il quinto capitolo è dedicato ai file di tipo testo ed il sesto ritorna sugli array, sempre fornendo numerosi schemi di algoritmi.
Il libro contiene molti esercizi che dovrebbero aiutare lo studente a verificare se si è impadronito delle tecniche suggerite. Esso è propedeutico ad un secondo volume in cui illustrare, con la stessa metodologia, argomenti più avanzati quale la ricorsione, i puntatori e le strutture legate, la programmazione basata sugli oggetti.
Qualche parola è infine necessaria per giustificare l’uso del C++ quale linguaggio di implementazione. Noi pensiamo che il linguaggio più adatto per raggiungere gli scopi che il libro si propone sia il Pascal per la sua semplicità e l’uso rigido dei tipi. Tuttavia, l’introduzione della laurea breve ed il fatto che ogni buon informatico deve conoscere il C ed il C++ ci ha portato alla scelta del C++; un buon compromesso perché il C++ mantiene l’uso rigido dei tipi e nello stesso tempo permette in maniera naturale l’implementazione dei tipi astratti.
DISPONIBILE ANCHE IN E-BOOK
Recensioni
Ancora non ci sono recensioni.