Cos’è un algoritmo? A cosa serve? 

In questo articolo vi parlerò di un corso on line che risponde proprio a queste domande e ne approfitterò per fare alcune riflessioni più generali.

Confesso che, in questo periodo, sono “entrato in fissa” con questi corsi, anche detti MOOC (Massive Open Online Courses) ,  e questa malattia (seconda per me solo a quella delle serie TV) mi porta a seguirne tanti e tutti insieme.

Vi avviso che, così come si fa nei blog che commentano le puntate delle serie TV,  potreste trovare degli SPOILER delle lezioni. Non trattandosi di telefilm siamo sicuri che non corriamo il rischio di svelarvi  il nome dell’assassino o di anticiparvi la morte del vostro personaggio preferito.

Figura 1: in questa immagine è mostrato l'esempio dell'algoritmo che ricerca la connessione fra due punti P e Q.

Figura 1: in questa immagine è mostrato l’esempio dell’algoritmo che ricerca, se esiste, la connessione fra due punti P e Q. Pensateci…la cosa non è banale e per certi aspetti è legata a come Facebook suggerisce potenziali amici.

Vi rimando ad un mio  precedente  post per una riflessione  su questa tipologia di corsi.

Il MOOC che tratto questa volta è disponibile sulla piattaforma Coursera ed    ha il seguente titolo: “Algorithms, Part I”.

Il corso è di assoluta qualità visto che è  realizzato dai
docenti Kevin Wayne, Robert Sedgewick dell’università di Princeton.

Se non siete pratici di algoritmi ricordiamo che questi altro non sono che dei procedimenti  che risolvono un particolare problema attraverso un numero finito di passi. Se volete iniziare a conoscerli o se semplicemente siete un po’ arrugginiti su questo fronte, “Algorithms, Part I” è il corso che fa per voi!

Durante le sue lezioni verranno, infatti, illustrati, diversi tipi di algoritmi (per esempio vedi figura 1)  insieme con  le strutture dati, ovvero i modi con cui organizzare i dati necessari, attraverso degli esempi scritti con un linguaggio  di programmazione (in questo caso Java).

Algorithms are all around us!

Nella lezione introduttiva di questo corso il prof. Sedgewick mostra alcuni possibili campi di applicazione degli algoritmi. Come potete vedere dalla Figura 2, non c’è

algorithms_why

Figura 2: Slide del corso “Algorithms Part I” che illustra alcune delle possibile applicazione degli algoritmiInizio con questo post la serie di articoli dedicata a recensire alcuni MOOC di ambito matematico.

 

praticamente campo di applicazioni in cui non capiti di dovere utilizzare degli algoritmi.

I lavoro di molti matematici applicati è spesso proprio quello di sviluppare procedimenti per risolvere problemi e questi procedimenti 99 volte su 100 vengono trasformati in righe di codice da dare in pasto ad un computer.

Detto in altri termini: gli algoritmi sono tutto intorno a noi e sono la croce e delizia di tanti matematici, fisici, ingegneri, informatici…

Mentre seguivo questa lezione introduttiva mi è venuta spontanea la seguente riflessione: dell’importanza degli algoritmi c’è traccia nella scuola italiana?

 Insegnando in un liceo mi sono risposto di no!  Non c’è praticamente neanche l’ombra dell’importanza degli algoritmi nel normale programma che viene in genere svolto da un professore di matematica e fisica.

Io stesso, per esempio, mi sono trovo ogni anno a dover  insegnare argomenti tipo le odiatissime formule di prostaferesi e Werner  (alzi la mano chi se le ricorda!!) pur essendo convinto che questi argomenti si potrebbero tranquillamente non svolgere.

Nel frattempo, nella scuola Italiana, c’è stata la riforma Gelmini che ha comportato una modifica dei Licei e degli Istituti Tecnici e la stesura delle Indicazioni Nazionali relative, senza entrare troppo nel tecnico, agli argomenti che dovrebbero essere trattati da ogni materia.

In queste indicazioni, nonostante il fatto che la riduzione  dell’importanza di alcuni argomenti (trigonometria, radicali,…), non è stato dato uno spazio significativo agli algoritmi ed alla loro, eventuale realizzazione al computer! (anche perché la materia “informatica” è stata spesso accorpata in “matematica” segnandone quasi ovunque la sua scomparsa)

La conclusione un po’ triste che si potrebbe trarre da questo ragionamento è la seguente: il  prof. Sedgewick (e tanti altri insieme con lui) afferma che gli algoritmi sono “all around us”;  gran parte delle scuole italiane rispondono, invece, che è meglio che questi algoritmi  restino fuori dalle loro mura!

Science algorithm based: Modelli computazionali stanno sostituendo i modelli matematici?

Algoritmi: i modelli computazionali stanno sostituendo i modelli matematici?

Figura 3: slide del corso in cui si evidenzia l’idea che i modelli computazionali stanno sostituendo i modelli matematici

 Un altro spunto molto interessante della lezione introduttiva che vorrei qui condividere , è la seguente affermazione fatta dal prof. di Princeton:  “i modelli computazionali stanno sostituendosi ai modelli matematici nella ricerca scientifica”.

Tradotto all’importanza della descrizione della realtà per mezzo di formule si sta sempre di più affiancando (secondo Sedgewick addirittura sostituendo) quella che fa uso di programmi che implementano attraverso un linguaggio di programmazione degli algoritmi.

La scienza del XXI secolo sta diventando sempre più fondata su algoritmi (algorithm based) piuttosto che sulle formule (formula based).

Sono sicuro che queste affermazioni faranno saltare sulla sedia più di qualche matematico e fisico.  Almeno io un piccolo sobbalzo l’ho fatto.

Voi che ne pensate?

Vi invitiamo a lasciare un commento su questa ultima riflessione e sullo spazio che dovrebbero avere gli algoritmi nella scuola italiana.

Per approfondire: 

Le indicazioni nazionali  derivanti dalla riforma Gelmini

– La voce Computational model su wikipedia

– Un esempio delle dispense di un corso di algoritmi e strutture dati

 

 

CC BY-NC-SA 4.0
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.