Insegnando Python ad una ragazza

Era ieri pomeriggio, in un momento in cui la bambina di 12 anni, mia figlia, non voleva fare i compiti per le vacanze ed era un po’ svogliata di fare qualsiasi cosa. Ho pensato di provare a stimolarla facendo un gioco, ma che fosse pure istruttivo, e alla fine ne è uscito un esperimento.

Nonostante è la figlia di un appassionato di informatica e tecnologia, non ama questi strumenti nè li sa usare, quindi, per meglio spiegarvi chi è mia figlia, ve la descrivo in una scheda riassuntiva:

età: 12 anni appena compiuti
scuola frequentata: prossimo anno frequenterà la seconda media
tipo di cellulare posseduto: nessuno
tipo di tablet posseduto: nessuno
tipo di computer posseduto: nessuno
social ai quali è iscritta: nessuno
utilizzo di WhatsApp: negativo
giochi con il cellulare: circa un’ora al mese, ma raramente
passione per l’informatica: zero
passioni proprie: cambiare vestiti, telefilm per ragazzi, giochi all’aria aperta, disegno

Ma ieri pomeriggio, come ho detto, volevo stimolare il suo interesse e intanto anche giocare con lei, e ho pensato di fare la parte dell’insegnante che voleva spiegarle come programmare un computer.

Sinceramente mi aspettavo che dopo 3 minuti si sarebbe stufata, sbuffando come fa quando è annoiata, ma sono rimasto sorpreso per quanto accaduto, e non so a chi dare merito, se a lei e alla sua curiosità di bambina, se a me per essere un buon insegnante, se all’informatica per essere così straordinaria da catturare l’attenzione di chiunque.

Vi racconto nel dettaglio com’è andata, per farvi capire che percorso ho voluto seguire e come ha reagito mia figlia. Lo farò come fosse un racconto, ma non è fantasia, è realtà. Tutto è durato un ora e mezza e alla fine vedrete i risultati.

nik: “Allora Aura, ora ti insegno a creare i programmi, ti faccio capire come nascono i programmi. Cos’è questo?” indicandogli il computer

Aura: “un computer”

nik: “a cosa serve?”

Aura: “a giocare, a disegnare per lavoro”




nik: “il computer non serve a nulla”. Lei ha sbarrato gli occhi come se dicessi una fesseria. Allora le ho spiegato: “il computer è una scatola, sono i programmi che fanno funzionare il computer”. Poi le ho indicato lo schermo del computer. “Cos’è questo?”

Aura: “il computer”

nik: “No tutto, solo questo”, indicandole lo schermo di Windows. “Questo è il desktop.”, poi indicandolo di nuovo le ho chiesto “Cos’è questo?”

Aura: “Il desktop”

nik: “desktop è una parola inglese (lei studia inglese alle medie) composta da desk e top. Desk significa scrivania, mentre top significa in alto, sopra. Quindi desktop significa sopra la scrivania, perchè quello che vedi è come la scrivania della tua cameretta, dove sopra gli possiamo mettere i programmi.” Le ho fatto ripetere questa definizione desktop scrivania, per farle memorizzare queste nuove parole. Poi le ho indicato un’icòna e le ho chiesto “E questa cos’è?”

Aura: “un programma”

nik: “No, è una icòna” Le ho fatto ripetere la parola. Poi ho aperto una pagina del browser e ho cercato immagini di geroglifici egiziani e glie li ho mostrati. “Hai studiato a scuola il popolo egizio?”

Aura: “Si”

nik: “E cosa sono questi?” indicandole i segni dei geroglifici.

Aura: “Disegni”

nik: “E cosa rappresentano? Perchè gli egiziani facevano questi disegni?”

Aura: “Per scrivere”

nik: “Esatto, per scrivere. Ogni disegno rappresenta una parola. Ogni disegno ha un significato. Le icòne sono come i geroglifici, ogni disegno rappresenta un programma. Se un geroglifico ha il disegno di un uomo con martello, quel disegno significa “lavorare””. Magari non è così, ma solo per farle capire. Poi le ho indicato nuovamente una icòna e ho continuato “questa icòna è come un geroglifico, come vedi è diversa da quest’altra icòna e da quest’altra ancora. Ogni icòna rappresenta solo un determinato programma. Se premi su questa icòna si apre un programma di disegno, se invece premi quest’altra icòna si apre un programma per scrivere, ogni icòna ha un disegno diverso proprio per distinguersi dalle altre, come i geroglifici.”

Lo so che sono partito da lontano nelle spiegazioni, ma vi ricordo che lei non ha mai usato un computer non sa usare un cellulare, anche se ci ha pasticciato qualche volta, ma è a digiuno di questi concetti e soprattutto non sa come si chiamano le cose che vede in questo ambito. Direi che è una carenza di molti utilizzatori di sistemi informatici. Sanno usarli ma non sanno come si chiamano i vari componenti, e questo lo ritengo importante.

Riassumendo ho poi continuato spiegando cos’è il mouse, cos’è il puntatore del mouse, cioè la freccetta che si muove sullo schermo.

Poi ho continuato a spiegare, e fate attenzione alle sue risposte:

nik: “I programmi non nascono dal nulla, ma sono creati da delle persone. Come si creano i programmi?”

Aura: “Li scarichi”

nik: “Non proprio. I programmi che scarichi qualcuno deve averli creati. Come fanno a crearli?”

Aura: “Non lo so”

nik: “Li scrivono. Delle persone scrivono i programmi.” Ah, le ho anche spiegato che programma e software è la stessa cosa, perchè non lo sapeva. “Perchè un programma (o software) sono come degli ordini che noi diamo al computer, come dei compiti che diciamo a lui di fare. Quando ad esempio la maestra ti dice di studiare i nomi dei fiumi d’Italia, cosa ti dice?”

Aura: “Studiate i fiumi d’Italia”

nik: “E se noi dobbiamo creare un programma per studiare i fiumi d’Italia, cosa diremo al computer?”

Aura: “Studia i fiumi d’Italia”

nik: “Non esattamente. Il computer non parla la nostra lingua. Se ha un amico a Londra, Come fai a salutarlo con un ciao? Cosa gli dici?”

Aura: “Ciao”

nik: “Ti ricordo che il tuo amico abita a Londra. Quindi che lingua parla?”

Aura: “Inglese”

nik: “Quindi per farti capire da lui, come lo saluti?”

Aura: “Hello”

nik: “Perfetto. Per farti capire dal tuo amico devi parlare nella sua lingua. Quindi per farti capire dal computer, in che lingua gli parli?”

Aura: “In inglese”




nik: “No. Il computer non abita a Londra. Il computer è in tutto il mondo. Quindi in che lingua gli parli?”

Aura: “Non lo so”

nik: “Il computer conosce più di una lingua, ma non sono lingue come il francese, l’inglese, il cinese, ma sono lingue informatiche. Sono come le lingue che parliamo noi umani, ma sono specifiche per il computer”

Premetto che fino ad ora non ho molto catturato l’attenzione di Aura. Era come distratta, quando facevo spiegazioni di più di 20 secondi si distraeva quasi annoiata, ma quando le chiedevo se si stava annoiando, rispondeva di no, ma è chiaro che non ho mai approfondito alcun concetto, e ho ridotto ogni spiegazione a pochi secondi, perchè lo so, lo so per esperienza personale di ex ragazzino quale sono, che è la pratica che affascina, che è vedere un programma funzionare, che stimola e dà attenzione. Però, per tenerla comunque attenta, ad ogni spiegazione che le facevo, tornavo indietro a farla ripassare. Mi spiego. Quando le parlavo delle icòne, poi le chiedevo cos’era lo schermo, e lei ripeteva “desktop”. Oppure quando le spiegavo il mouse, poi le chiedevo cos’erano i disegnini sullo schermo e lei rispondeva “icòne”, in modo da farle memorizzare le parole. Ma andiamo avanti.

nik: “Il computer conosce diverse lingue informatiche. Alcune sono più semplici e altre sono più difficili. Noi oggi useremo una lingua semplice. Questa lingua informatica che impareremo si chiama Python.”

A questo punto ho aperto la shell di Python, dove poter iniziare a programmare.

nik: “Questa finestra è il posto dove possiamo parlare al computer e scrivere i programmi. Lo sai cos’è quella linetta che lampeggia?”

Aura: “Dove si scrive”

nik: “Ma come si chiama?”

Aura: “Non lo so”

nik: “Si chiama cursore. E’ importante conoscere questa parola, perchè ti capiterà di sentirla spesso e va conosciuta. Quindi noi scriveremo gli ordini che vogliamo dare al computer dentro questa finestra, dove c’è il cursore, e scriveremo nella sua lingua, in questo caso la lingua Python”

Ancora non ho catturato l’attenzione di Aura.

nik: “Ora voglio dire al computer di scrivere il mio nome sullo schermo, come faccio a dirglielo?”

Aura: “Gli dico ‘scrivi il mio nome'”

nik: “Si, giusto, ma non posso dirglielo in italiano, lui non mi capisce, devo dirglielo nella sua lingua, in questo caso nella lingua Python. Per dire a Python di scrivere qualcosa sullo schermo uso la parola print. La parola ‘print’ è una parola inglese che significa ‘stampa’”

Aura ha storto il naso, perchè non capiva cosa c’entrava stampare con scrivere.

nik: “Stampare, per Python, equivale a scrivere sullo schermo”, non ho inteso spiegarle la storia dell’informatica per non distrarla dall’obiettivo che volevo raggiungere, dicendole che una volta i monitor non esistevano e quindi i computer stampavano su stampante i risultati. Quindi ho continuato: “Quindi ‘print’ significa scrivi sullo schermo. Ora, se voglio dire al computer di scrivere il mio nome sullo schermo cosa gli dico?”

Aura: “print aura”

nik: “Brava. E’ proprio così. Però il computer, per capire quali sono le frasi che voglio che scriva, devo metterle tra virgolette. Prova a scrivere tu.”

Ecco, per la prima volta Aura ha messo mani al computer e ha iniziato a scrivere nella shell di Python l’istruzione: print “aura”. E’ iniziato ora il momento in cui era più attenta e interessata, perchè finalmente non doveva solo ascoltare ma poteva fare qualcosa di pratico. Iniziavo ad ottenere la sua attenzione.

Chiaramente ho dovuto mostrarle come funziona la tastiera per far scrivere le virgolette, invece del numero 2, che si trova nello stesso tasto della tastiera. Ha imparato e memorizzato subito.

nik: “Ora abbiamo detto una cosa da fare al computer, ma per fargliela elaborare, per fargliela capire, dobbiamo premere il tasto INVIO”

Aura a questo punto preme il tasto INVIO sulla tastiera.

nik: “Cos’è successo?”

Aura: “Ha scritto il mio nome”, sorrideva

nik: “Già, ha fatto il pappagallo. Tu hai detto di scrivere Aura e lui ha scritto Aura. Ora prova a fargli scrivere il mio nome”. Aura ha scritto print nik. Ha dimenticato di mettere le virgolette, quindi ho rispiegato che le frasi che dobbiamo fargli ripetere dobbiamo metterle tra virgolette. Ora Aura ha scritto correttamente print “nik”. L’ho fatta scrivere altri nomi e frasi più lunghe, in modo che capisse l’importanza delle virgolette. Si divertiva.

nik: “Se ora voglio che il computer scriva il numero 12 come faccio?”

Aura: “scrivo print “12” ”

nik: “Esatto. Però ricorda che tutto quello che metto tra virgolette il computer lo ripete come un pappagallo. Prova a dirgli di scrivermi 12+5”

Aura: “scrivo print “12+5″ ”

nik: “Cosa ha risposto Python”

Aura: “12+5”

nik: “E se invece voglio il risultato di 12+5, come faccio a dirlo al computer?”

Aura: “scrivo print “scrivi il risultato 12+5″ ”

nik: “No, non si fa così. Quando usiamo i numeri per fare calcoli, non dobbiamo usare le virgolette, quindi come scriverai?”

Aura: “print 12+5”

nik: “E cosa ha risposto Python?”

Aura: “17”

nik: “Hai visto? Python è bravo anche in matematica.” Le ho fatto fare diverse operazioni di somma, anche con più numeri e si divertiva ad ottenere risultati anche di somme con numeri grandi.

Poi le ho spiegato come fare le sottrazioni come si fanno le divisioni e le moltiplicazioni, spiegando che il diviso non si fa con il segno : ma con / e che la moltiplicazione non si fa con il segno x ma con il segno *. Ha imparato subito. Quindi le ho detto che i numeri sono numeri, mentre le parole scritte tra virgolette si chiamano “stringhe”. In modo che imparasse anche termini informatici.

Era giunto il momento di spiegare le variabili. Prima le ho detto cosa significava la parola “variabile”, quindi le ho detto:

nik: “Quando si creano i programmi, le variabili servono a contenere dei dati. I dati possono essere i numeri o le stringhe, cioè le parole. Facciamo un esempio, se io ho una scatola con dentro pennarelli, poi ho un’altra scatola con dentro macchinine, poi ho un’altra scatola con dentro delle palline e chiudo tutte le scatole che sono uguali, come faccio a sapere dove sono i pennarelli o le macchinine o le palline?”




Aura: “Metto un’etichetta fuori”

nik: “Bravissima. Le variabili, che sono come scatole vuote, devono avere un’etichetta per sapere cosa contengono. Ora mettiamo in una scatola che ha per nome “casa”, il numero 12. Come faccio?”

Aura: “scrivo print “12” ”

nik: “No, non voglio che lo scrive sullo schermo, voglio che mette il numero 12 in una scatola, in una variabile che si chiama “casa” ” Con un po’ di fatica, per iniziale incomprensione, ha capito la spiegazione e quindi ha risposto:

Aura: “casa 12”

nik: “Si, quasi giusto. Per dire al computer di mettere qualcosa dentro un’altra, uso il segno =, quindi gli dirò: casa=12”

Aura ha scritto casa=12 quindi ha premuto INVIO e ha visto che non è successo nulla. Le ho spiegato che il numero era stato inserito nella variabile casa, poi le ho detto:

nik: “Ora la variabile “casa” cosa contiene?”

Aura: “Il numero 12”

nik: “Se ora voglio che il computer scriva il contenuto della variabile “casa”, cosa devo scrivere?”

Aura: “print 12”

nik: “No, non voglio che scriva quel numero, ma il numero contenuto nella variabile, perchè magari l’ho cambiato.”

AUra: “print casa?”

nik: “Si, esatto. Devi scrivere print casa.”

A questo punto le ho fatto capire che oltre a fare operazioni matematiche tra numeri, poteva fare operazioni matematiche con le variabili. Aura era sempre più incuriosita. Le ho chiesto se voleva smettere, ma la sete di sapere l’aveva catturata, seppure dell’informatica non le interessa nulla. Quella che era una vera e propria lezione per lei era come un gioco. Affascinata. Era giunto il momento di affascinarla con l’istruzione input e raw_input (dato che ho usato Python 2), per far fare le domande al computer.

Qui ha trovato la massima attenzione e appagamento di quanto imparato, perchè ha iniziato a scrivere da sola programmi tutti uguali per istruzioni, ma differenti per risultato, in cui ad esempio ha scritto:

nome=raw_input(“Come ti chiami?”)
print “ciao”,nome

oppure:

base=input(“Base del rettangolo?”)
lato=input(“Lato del rettangolo?”)
print “Il perimetro è”,(base*2)+(lato*2)

Lo so che sono cose semplicissime, ma in un ora e mezza lei ha ottenuto queste conoscenze, sa usare queste istruzioni imparate, le sa modificare, ma cosa ancora più bella, ha piacere a far vedere cosa ha imparato, facendo vedere alla madre cosa è capace di fare, e come sa modificare, fino a far finire a sfinimento la mamma che di informatica ne capisce meno che lei 😉

Questa mattina, appena sveglia, la prima cosa che ha chiesto è stata: “papà, facciamo i programmi?”

Ho voluto raccontare questa esperienza personale, così, per dimostrare come una materia che sembra ostica, per pochi, in realtà è stata apprezzata anche da una bambina (non bambino), piccola (non grande), a digiuno di informatica (non smanettone), appassionata di tutt’altre cose.