Dal problema al programma
Questo libro si propone di rispondere a una delle sfide più impegnative poste dai primi corsi di Programmazione nelle lauree di area scientifica e tecnologica: la necessità di acquisire non solo un nuovo strumento (il linguaggio, con la sua sintassi e le sue specificità), ma una nuova mentalità, una metodologia strutturata orientata alla risoluzione di problemi.
L’enfasi del testo è posta proprio sul “problem-solving”: dopo la presentazione di uno schema generale per la classificazione dei problemi computazionali, il lettore è guidato passo passo nella risoluzione delle diverse tipologie di problemi, dalla costruzione di un modello formale alla definizione di un algoritmo alla scrittura del programma.
Si presuppone la conoscenza sintattica dei principali costrutti del linguaggio C (che vengono comunque richiamati in un capitolo apposito). L’esposizione si basa in gran parte sugli esempi, svolti in notevole dettaglio, e su un gran numero di esercizi, molti dei quali corredati da soluzione.
Puntatori e strutture dati dinamiche
La programmazione come strumento per il problem- solving si appoggia su due grandi pilastri: gli algoritmi, che definiscono le operazioni da svolgere per trasformare i dati in ingresso nei dati in uscita, e le strutture dati, dove sono memorizzati i dati in ingresso, quelli in uscita e quelli intermedi generati durante la computazione.
Per la risoluzione di qualunque problema, tranne i più banali, conoscere le strutture dati e saperle implementare in un linguaggio di programmazione è di fondamentale importanza.
Questo libro analizza la progettazione e la realizzazione di strutture dati efficienti e modulari in linguaggio C.
Prima di affrontare le strutture dati, il testo approfondisce alcuni meccanismi propri di questo linguaggio, quali i puntatori e l’allocazione dinamica della memoria, fondamentali per una programmazione avanzata.
Puntatori e allocazione dinamica sono introdotti in stretta relazione alla rappresentazione dei dati in memoria, all’architettura e al funzionamento di un sistema di elaborazione basato sul modello di Von Neumann.
Ricorsione e problem-solving
Questo libro si pone in ideale continuità con “Dal problema al programma. Introduzione al problem-solving in linguaggio C” degli stessi autori.
L’enfasi, in questo caso, si sposta sulla ricorsione: uno degli strumenti più potenti a disposizione del programmatore impegnato nelle attività di problem-solving, e al tempo stesso uno degli argomenti più ostici per gli studenti.
Gli autori dapprima introducono il concetto di ricorsione mediante una serie di classici esempi di problemi ricorsivi, in ambito sia matematico che informatico; vengono poi introdotte le tecniche di esplorazione esaustiva dello spazio delle soluzioni, di ottimizzazione e di pruning. Ampio spazio è dedicato a esempi (interamente svolti) ed esercizi.
GLI AUTORI
Gianpiero Cabodi è professore associato
di Sistemi di elaborazione delle informazioni presso il Dipartimento di Automatica
e Informatica del Politecnico di Torino.Paolo Enrico Camurati è professore ordinario di Sistemi di elaborazione
delle informazioni presso il Dipartimento
di Automatica e Informatica del Politecnico
di Torino.
Paolo Pasini è iscritto al XXVIII ciclo
del Dottorato di Ricerca in Ingegneria Informatica e dei Sistemi
presso il Politecnico di Torino.
Denis Patti è iscritto al XXIX ciclo
del Dottorato di Ricerca in Ingegneria Informatica e dei Sistemi
presso il Politecnico di Torino.
Danilo Vendraminetto è iscritto al XXVII ciclo del Dottorato di Ricerca in Ingegneria Informatica e dei Sistemi presso
il Politecnico di Torino.
Solo gli utenti registrati possono scrivere recensioni. Accedi oppure Registrati