I proff Luccio (primo a sinistra) e Ferragina (ultimo a destra) durante la presentazione di uno di un loro testo sulla crittografia

I proff Luccio (primo a sinistra) e Ferragina (ultimo a destra) durante la presentazione di uno di un loro testo sulla crittografia

Pubblichiamo la seconda parte dell’intervista a Paolo Ferragina e Fabrizio Luccio autori del libro “Il pensiero computazionale. Dagli algoritmi al coding”. La prima parte è disponibile qui.

Questa volta le domande verteranno su tematiche più ampie come la scuola, l’orientamento universitario e la divulgazione scientifica.


Parte 2:

Veniamo ora a domande più generali.

– I lettori del nostro sito sono formati da un pubblico variegato di laureati in discipline scientifiche e giovani studenti dell’università o della scuola. Che consigli dareste a questi ultimi che magari sono intenzionati a scegliere facoltà scientifiche (in particolare nel vostro caso quella di informatica)?

PF: Credo che l’orientamento sia un momento importante per i nostri giovani, spesso

Il libro "Il pensiero computazionale"

Il libro “Il pensiero computazionale”

sottostimato nella sua importanza e quindi intrapreso con leggerezza. Li inviterei a valutare con attenzione gli esami e i programmi dei primi due anni delle lauree di loro interesse, partendo dalle loro attitudini e passioni sviluppate durante il periodo scolastico, e poi parlare con dei giovani colleghi che hanno già intrapreso degli studi in un certo settore. Studiare Informatica non vuol dire capire come funzionano i video giochi o Word, né tanto meno significa diventare esperti nell’uso dei Social Network. Si tratta altresì di un corso di laurea che si sviluppa nella ex Facoltà di Scienze e quindi ha un impianto formativo scientifico con una profonda base logico-matematica dalla quale non si può prescindere. Il nostro libro illustra nei suoi primi capitoli i contenuti delle prime lezioni del corso fondamentale di Algoritmi, del primo anno, e nei successivi capitoli descrive sommariamente i contenuti di altre materie; quindi può dare un’idea di cosa gli studenti studieranno a Informatica. Il Problem Solving sarà un leitmotiv del corso di studi, al quale si accompagneranno l’apprendimento di tecniche e metodologie per modellare,problem-solving progettare e realizzare sistemi software sofisticati, come quelli che oramai ci circondano. Più recentemente l’Informatica, e più in generale l’ICT, sono diventate “tecnologie abilitanti” per molti altri ambiti e gli studi inter-disciplinari stanno crescendo in ampiezza e numero al punto che l’Informatico si trova oramai a lavorare sempre più a contatto con biologi, medici, economisti, sociologi, agronomi,,… grazie alla digitalizzazione di varie sorgenti di informazioni (Big Data) che può aiutare e potenziare le ricerche svolte in questi campi.

– Quali sono i campi secondo voi più promettenti che consigliereste di intraprendere a studenti universitari ai primi anni di facoltà come informatica, ingegneria informatica?

PF: Sono dell’idea che sia importante acquisire una solida formazione logico-matematica e informatica, quale quella che viene erogata nei primi anni della nostra laurea triennale. Anche perché i settori evolvono velocemente e, come spesso si dice, i temi “di moda” all’inizio della propria carriera universitaria saranno obsoleti il giorno della laurea. Per cui occorre formarsi per essere pronti ad affrontare con successo le sfide che si presenteranno nel prossimo futuro durante la vita professionale; e mantenere una curiosità viva e disposta al continuo apprendimento, necessario per rimanere al passo con le evoluzioni scientifiche e tecnologiche che si stanno oramai presentando con una sempre maggiore frequenza. Se uno crede che con la laurea abbia finito di studiare Informatica, sbaglia di grosso, è bene che si rivolga a discipline più statiche !

– Da più parti sembra evidenziarsi l’emergere di nuove figure professionali (per esempio quella dei cosiddetti “data scientist”) in cui sono richieste una ampia varietà di competenze e fra queste ottime conoscenze di matematica e informatica? Cosa ne pensate? Ritenete che le competenze matematiche di un universitario che esce dalle facoltà scientifiche italiane siano sufficienti?

PF: Secondo l’Economist il data scientist è il “mestiere più interessante del secolo”. L’Università di Pisa è stata tra le prime in Italia a offrire un Master di secondo livello in Data Science, svolto in collaborazione con la Scuola Normale, la Scuola Sant’Anna e il CNR, e che vede il supporto e la partecipazione per gli stage di numerose edata_scientist prestigiose aziende, non solo informatiche. Questo Master, alla sua quarta edizione, è rivolto a laureati magistrali di tutte le discipline e si pone l’obiettivo di formare i data scientist, ossia professionisti dotati di un mix di competenze multidisciplinari, che saranno in grado non solo di acquisire dati ed estrarne conoscenza, ma anche di raccontare storie attraverso questi dati e di gestirne le ripercussioni etiche e legali.

Per ritornare alla sua domanda, queste competenze multi-disciplinari (e quindi non solo matematiche) sono difficilmente offerte da un unico corso di laurea, per cui il Master ha l’obiettivo di completare la preparazione e, inoltre, offrire interessanti opportunità di lavoro grazie al tirocinio che si svolge in aziende prestigiose che sono alla spasmodica ricerche di queste nuove figure professionali.

– In base alla vostra esperienza come pensate che sia il livello di preparazione degli studenti all’uscita della scuola superiore?

PF: In media molto buono, con alcune punte di eccellenza. Ritengo che sia necessario, come accennato precedentemente, potenziare l’orientamento in entrata all’Università per evitare scelte errate che potrebbero inevitabilmente pregiudicare il futuro dei nostri ragazzi e ragazze. Ben vengano le fiere dell’orientamento, ma credo sia anche necessario “avvicinare” l’Università alla Scuola portando, per esempio, in classe giovani ricercatori che possano descrivere meglio delle brochure cosa sono le varie discipline oggi. Troppo spesso i nostri giovani ricevono una descrizione dei vari corsi di laurea che è cristallizzata al periodo in cui studiarono i loro genitori. All’Università di Pisa abbiamo tentato questo approccio con un certo successo nel passato, ciò richiede ovviamente un grande impegno organizzativo e personale dei docenti. Comunque potrebbe essere valorizzato nell’ambito della cosiddetta Terza Missione dell’Università: quale migliore missione per noi universitari quella di aiutare le nuove generazioni a scegliere al meglio la “loro strada” e quindi le loro opportunità formative, prima ancora che formarli?

– Qual è la vostra opinione su iniziative quali quella dell’”ora del codice” o la creazione di CoderDojo in cui bambini possano apprendere i primi rudimenti del coding?

PF: Sono iniziative pregevolissime e ammiro i giovani che contribuiscono con grandecoderdojopisa-all dedizione e passione a mandare avanti in modo del tutto volontaristico queste associazioni e queste attività. Anche Pisa dispone di un CoderDojo molto attivo al quale partecipano numerosi nostri dottorandi di Informatica. Peraltro alcuni di loro ci hanno aiutato nella redazione del sito Web che accompagna il nostro libro e contiene le versioni Python degli algoritmi proposti.

Recentemente, abbiamo vinto un Google Educator Award con il quale realizzeremo un percorso formativo per docenti delle scuole secondarie, caratterizzato da 10 lezioni frontali e 10 moduli laboratoriali. Le lezioni frontali avranno come obiettivo quello di presentare esempi di problemi e algoritmi di risoluzione per essi, che potranno essere subito trasferiti in una classe di scuola. L’approfondimento e il perfezionamento di questi esempi avverrà nei moduli laboratoriali, ove i partecipanti potranno progettare con l’aiuto dei docenti e di tutor moduli didattici da sviluppare in classe. I partecipanti in possesso di conoscenze pregresse di coding potranno scegliere di svolgere moduli laboratoriali più tecnici, usando Python per realizzare le soluzioni algoritmiche viste nelle lezioni frontali. La scelta tra queste due modalità laboratoriali sarà lasciata ai singoli docenti. Tutto il materiale didattico (slide e video) sarà reso disponibile gratuitamente e pubblicamente. Per quanto riguarda le attività di coding, al fine di estendere la loro fruibilità anche a docenti di altre province e regioni ci avvarremo del supporto del CoderDojo Pisa, e di altri COP CoderDojo che si renderanno disponibili in altre città per progettare e organizzare attività in-loco equivalenti alle attività che si svolgeranno da noi. Ulteriori informazioni su questo percorso formativo che risulta del tutto innovativo per i contenuti proposti, sono disponibili al sito: http://ilpensierocomputazionale.di.unipi.it/

– Ritenete che l’utilizzo di strumenti come Scratch che hanno un approccio visuale possano essere validi a tutte le età o che già a livello di scuola media sia più utile introdurre dei linguaggi in cui il codice sia “scritto” e non realizzato usando blocchi grafici?

PF: Non ho esperienza diretta di questi strumenti a livello di scuole medie, se non comescratch genitore. Ma, dalla velocità con cui imparano i nostri ragazzi/e, forse si potrebbe tentare di introdurre qualcosa di Python anche a livello di scuole medie così da conoscere la sintassi del linguaggio e i suoi costrutti basilari prima di arrivare al liceo, lasciando poi più spazio al Problem Solving e quindi alla progettazione e valutazione degli algoritmi e dei loro utilizzi in applicazioni interessanti possibilmente inter-disciplinari. Questo permetterebbe così di coinvolgere nella scuola superiore docenti di varie materie organizzando moduli inter-disciplinari di sicuro interesse per gli studenti: penso alla Bio-Informatica, alla Chimica Computazionale, alle applicazioni della matematica o della linguistica ai Motori di ricerca, ecc. Come peraltro proponiamo nel nostro libro e poi svilupperemo con il percorso formativo premiato da Google e su menzionato.

– Pensate che la scuola possa fare di più per fornire delle basi di “pensiero computazionale” ad una ampia fetta della popolazione italiana ?

FL: Certamente, e confido che si proceda in questa direzione che è attualmente anche una priorità espressa dal Ministero. Ma l’operazione non è semplice e comunque non sarà rapida perché ovviamente dovrà essere preceduta da una preparazione dei professori e dalla loro sensibilità in proposito. Anzitutto queste basi dovrebbero apparire tra quelle fondanti di tutte le discipline scientifiche perché l’impiego di algoritmi è oggi fondamentale al loro interno. Paradossalmente solo alcuni settori della matematica pura potrebbe prescinderne, ma non vi è altra attività scientifica o tecnologica che possa oggi rinunciare alla formalizzazione di molti problemi in forma algoritmica. Innumerevoli attività confermano ciò che sto dicendo: fatemi citare solo un esempio. L’effetto di una chemioterapia in un malato di tumore si può oggi seguire per passi attraverso prelievi del sangue in cui si rilevano particolari geni e se ne analizzano le mutazioni nel tempo. Ma l’individuazione e la “lettura” di questi geni sotto forma di porzioni della sequenza di DNA del malato si eseguono attraverso macchine comandate da formidabili algoritmi di analisi di sequenze che oggi rendono queste operazioni non solo possibili ma inaspettatamente economiche. Ciò che era impensabile dieci anni fa, e sarebbe stato costosissimo cinque anni dopo, è oggi economica routine.

Voglio aggiungere che è auspicabile che il pensiero computazionale si sviluppi anche in discipline umanistiche, per dar luogo a programmi multidisciplinari che sempre più diverranno importanti nelle attività umane.

– Cosa ne pensate della divulgazione scientifica italiana? In particolare per i temi a voi più vicini (come quelli del pensiero computazionale, degli algoritmi e del coding). Pensate che si faccia abbastanza?  Ritenete che nei media italiani si parli abbastanza di scienza? E quando se ne parla viene fatto, secondo voi, nel modo giusto?

FL: Spero di non dispiacere a nessuno, ma reputo che la divulgazione scientifica in Italia sia molto carente. Per quanto riguarda i giornali, a mia conoscenza esiste un’ottima scuola di giornalismo scientifico a Trieste e forse ve ne sono altre, ma a giudicare da quanto poi appare i testi pubblicati sono insufficienti e a volte, ahimè, erronei. Penso che la situazione sia destinata a migliorare perché l’interesse del largo pubblico per la scienza sembra in aumento, ma oggi le notizie giornalistiche si dirigono quasi esclusivamente a grandi eventi che generano sensazione (per esempio, tra gli ultimi, l’individuazione di onde gravitazionali). In questo campo siamo lontanissimi da quanto avviene per esempio in USA, Regno Unito e Francia ove la divulgazione scientifica sui giornali è in media di livello molto alto.

Come professore universitario devo ammettere che parte della responsabilità di un’insufficiente divulgazione ricade sulla categoria cui appartengo, tendenzialmente proiettata verso il futuro senza fermarsi a riflettere. A parte il libro presente, personalmente ho scritto tre libri di divulgazione su argomenti che sono stati parte dei miei studi, due pubblicati in Italia e uno negli USA, cercando così di tranquillizzare la mia coscienza. Ma l’ho fatto quando ormai ero decisamente vecchio e quindi più propenso a esaminare all’indietro tutta la mia attività.

Per quanto poi riguarda gli algoritmi, la parola stessa, sconosciuta ai più fino a pochi anni or sono, è divenuta di gran moda e se ne fa oggi un uso spesso banale o assurdo senza alcuna seria conoscenza del fenomeno. In questo affianca altre espressioni appartenenti al linguaggio scientifico, come per esempio l’abusatissima “crescita esponenziale” citata di solito senza alcuna comprensione di cosa veramente significhi.

– Secondo voi la scuola dovrebbe fornire un bagaglio culturale scientifico differente? In particolare, dal vostro punto di vista, osservate che dovrebbero essere trattati con maggiore attenzione alcuni temi piuttosto che altri?

FL: A parte il pensiero computazionale di cui abbiamo abbondantemente parlato e che si impone come novità, a mio parere la scuola italiana già fornisce in media un’ottima educazione in campo scientifico (e anche umanistico), ed è spesso bersaglio di critiche stupide e ingiuste. Questo è un parere di ex studente, di genitore e di nonno, ma lo verifichiamo spesso all’università per confronto con studenti stranieri che approdano in Italia con il progetto Erasmus.

Aggiungo che non sono un professore di scuola primaria o secondaria e non ho quindi l’arroganza di indicare ai colleghi che vi insegnano cosa dovrebbero fare. Ma dal mio punto di osservazione come professore universitario seguo con orgoglio i numerosissimi successi che i nostri laureati raccolgono in giro per il mondo, e che non sarebbero possibili senza un’ottima educazione in tutti i livelli dei loro studi.

– Quale è, secondo voi, la consapevolezza di un cittadino medio italiano dell’importanza degli algoritmi nella vita quotidiana?

FL: Il cittadino medio italiano è bersagliato da affermazioni sugli algoritmi che possono condizionare e dirigere la nostra vita, generando una sensazione di insicurezza. È un problema molto serio cui probabilmente gli addetti ai lavori non hanno in origine destinato un’attenzione sufficiente, e riguarda in particolare gli algoritmi basati sul cosiddetto deep learning che appartengono al campo dell’intelligenza artificiale di cui il nostro libro non tratta. Questi algoritmi possono giustamente destare qualche preoccupazione perché la quantità elevatissima di dati acquisiti in genere per stabilire le proprietà statistiche di un fenomeno, e successivamente elaborati in modo complicato, causa la creazione di matrici di enormi dimensioni impossibili da esaminare per l’uomo che così può perdere cognizione di come effettivamente procede il calcolo.

– Per concludere: c’è un algoritmo che per la sua importanza vorreste fosse noto a tutti ?

FL: È arduo rispondere a una domanda come questa. Parlando di algoritmi in senso lato

Tony Hoare

Tony Hoare

vorrei che tutti conoscessero (e rispettassero) le procedure che assicurano comportamenti intelligenti e onesti. Parlando di computazione, come ovviamente richiesto qui, non so scegliere un algoritmo da consigliare a tutti, ma posso indicarne uno che ha avuto un’importanza fondamentale nella crescita professionale di tutti coloro che, come me, hanno iniziato a studiare questo campo nel periodo in cui cominciava la sua travolgente crescita. Si tratta dell’algoritmo di ordinamento QUICKSORT descritto formalmente nel nostro ultimo capitolo, che fu proposto nel 1960 dall’inglese Tony Hoare e si è affermato come il metodo di ordinamento tutt’ora più utilizzato. Cercherò di illustrarlo semplicemente a parole chiedendo al lettore un piccolo sforzo finale.

Per ordinare un vettore di numeri in ordine crescente:

  1. se ne sceglie uno a caso, diciamo s, definito come perno;
  2. si confronta s con tutti gli altri spostando via via gli elementi nel vettore per porre tutti quelli minori di s a sinistra di esso, seguiti da s, seguito questo dagli elementi maggiori di s;
  3. si ripete lo stesso algoritmo sulle due porzioni di vettore, non ancora ordinate, a sinistra e a destra di s (scegliendo a caso in essi due nuovi perni), finché le singole porzioni si riducono a un solo elemento che non ha evidentemente bisogno di ordinamento: dovrebbe essere chiaro che a questo punto l’intero vettore risulta ordinato.

Questo algoritmo ha avuto un impatto fondamentale sulla scienza del calcolo per due motivi.

Si può anzitutto dimostrare che nella grande maggioranza dei casi (cioè di scelte del perno) per ordinare n elementi l’algoritmo richiede un numero di operazioni proporzionale a n log n; e, come dimostrato nel libro, non si può fare meglio di così. Quindi QUICKSORT è un algoritmo ottimo nella media dei casi. Inoltre l’applicazione dello stesso algoritmo su sottoinsiemi di dati via via più piccoli ne mostra la natura ricorsiva, argomento piuttosto sottile trattato nel nostro ultimo capitolo. Il concetto di ricorsività era già stato attentamente studiato dalla fine dell’Ottocento ai primi decenni del Novecento nell’ambito della teoria dei numeri e della logica matematica, ma Hoare dimostrò per la prima volta che poteva avere un’importanza fondamentale nella risoluzione di problemi applicativi aprendo la via allo sviluppo di moltissimi altri algoritmi di questo tipo. Da allora la ricorsività è divenuta uno dei fondamenti del pensiero computazionale

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