L'ALGORITMO
L'algoritmo è una sequenza finita di passi che devono essere eseguiti secondo un ordine prefissato per ottenere il risultato voluto. Quando c'è un problema, si può risolvere in due modi: in modalità EURISTICA o in modalità ALGORITIMICA.
EURISTICA ---> si fanno dei tentativi all'interno di un certo dominio di soluzioni esplorabili, ci porta ad avere sempre dei risultati corretti che non sempre sono le soluzioni efficienti.
ALGORITMICA ---> sfrutta un approccio metodologico, è un insieme di passi finito che consente di arrivare alla soluzione di un problema. L'algoritmo deve rispondere a delle regole di base: deve essere NON AMBIGUO (interpretabile in un unico modo); deve essere COMPLETO (non deve mancargli nulla); deve essere DETERMINISTICO (deve poter risolvere tutti i problemi della stessa tipologia); deve essere FINITO (deve avere un certo numero di passi specifico); infine deve essere GENERALE (deve poter rispondere a tutti i problemi dello stesso dominio/classe).
Alla risoluzione di un problema esistono due approcci: TOP-DOWN e BOTTOM-UP
TOP-DOWN ---> in cui divido il problema in tanti sottoproblemi e trovo una soluzione unica a tutti i problemi.
BOTTOM-UP ---> in cui si parte dalla soluzione per cercare di capire come si è arrivati al prodotto finale.