Per problema si può intendere qualsiasi questione o quesito proposto per cui è necessario trovare una soluzione.
La descrizione di un problema di solito comprende:
-
la situazione iniziale (dati del problema),
-
che cosa si desidera ottenere (risultati),
-
le risorse a disposizione.
La soluzione del problema (o processo risolutivo) è la descrizione del procedimento da seguire per ottenere i risultati desiderati.
In base alle risorse a disposizione si possono avere processi risolutivi molto diversi tra loro.
Per ottenere realmente una soluzione ci deve essere un esecutore che partendo dalla situazione iniziale e seguendo le istruzioni ottiene il risultato desiderato.
Il computer fa da esecutore del processo risolutivo.
Il computer può soltanto velocizzare le operazioni e padroneggiare una grande quantità di dati, ma esegue soltanto quello che gli viene detto esplicitamente; non è in grado di prendere delle iniziative in modo autonomo, quindi deve essere istruito in modo preciso.
Il processo risolutivo di un problema deve essere descritto in modo formale e richiede la descrizione dei dati relativi al problema e delle azioni da eseguire per risolvere il problema.
I dati che riguardano il problema sono tutte le informazioni disponibili all’inizio e quelle che si desiderano ottenere come soluzione del problema.
Le azioni che possono essere eseguite nel processo risolutivo sono le operazioni che il computer è in grado di eseguire.
La descrizione del processo risolutivo (dati necessari e operazioni da eseguire) costituisce l’algoritmo.