Gli algoritmi

Un problema, non solo per la matematica, è qualcosa da risolvere. I procedimenti per risolvere i problemi sono sequenze di operazioni e si chiamano algoritmi. La parola algoritmo deriva dal nome Muhammad Ibn Musa al-Khuwarizmi, matematico persiano vissuto nel nono secolo a Baghdad, nell’attuale Irak.

Programmare è creare algoritmi risolutivi di problemi alla portata dei computer. Si comprende così perché è bene studiare programmazione fin dai primi anni di scuola, se intendiamo tale studio come il lavoro maieutico dell’insegnante per far prendere coscienza ai bambini della sequenza di cose da fare per ottenere un risultato e per aiutarli a divenire capaci di esprimere tali sequenze. Lo scopo non è quindi farli diventare dei piccoli sviluppatori di software, bensì aiutarli nel loro sviluppo intellettivo, sfruttando le valenze formative insite nell’arte della programmazione al computer.

I programmi che abbiamo visto fino ad ora in questo percorso/corso di programmazione per bambini/ragazzi e principianti assoluti che anche è Età dello “sviluppo” sono brevi e semplicissimi, ma, proprio in quanto programmi, sono esempi di sequenze ordinate di operazioni (comandi semplici al computer) tese a raggiungere un risultato. La volta scorsa, ad esempio, abbiamo visto un programma per far creare una casetta a Little Wizard.

Studiare la programmazione sviluppa sia il rigore formale che il pensiero procedurale. Un algoritmo può essere espresso, prima di diventare un programma, nella comune lingua di ogni giorno. Sono esempi di algoritmi espressi in lingue di uso comune le ricette di cucina e le istruzioni per l’uso degli elettrodomestici. Nelle ricette di cucina o nelle istruzioni per l’uso non dobbiamo essere necessariamente dettagliatissimi e rigorosi nella forma e facciamo riferimento a concetti di uso comune, appresi con l’esperienza. Quando intendiamo, invece, realizzare un algoritmo relativo a qualcosa che vogliamo che venga fatta da un computer dobbiamo rispettare alcune regole formali ed essere estremamente dettagliati, non lasciando nulla al non detto, all’implicito. Esistono delle regole formali basilari, generali, comuni ad ogni linguaggio di programmazione, e ne esistono di specifiche per ogni particolare linguaggio al computer.

Tra l’algoritmo espresso in linguaggio umano ed il programma al computer esistono delle rappresentazioni intermedie dello stesso algoritmo chiamate “diagramma di flusso” e pseudocodice. I diagrammi di flusso sono sequenze di simboli, convenzioni grafiche con cinque blocchi elementari: inizio, azione, input/output, controllo, fine. Qui di seguito possiamo vedere i cinque blocchi fondamentali.

Diagrammi di flusso


Massimo Messina