Tag: unità di apprendimento

  • La spirale nascosta nei numeri complessi

    La spirale nascosta nei numeri complessi

    I numeri complessi sono uno degli argomenti più affascinanti della matematica. A prima vista sembrano un artificio astratto, un costrutto matematico utile solo a risolvere un’equazione che altrimenti non avrebbe soluzione alcuna. Eppure, i numeri complessi permeano la nostra realtà e sono utilissimi, indispensabili quasi, per spiegare fenomeni assai tangibili, come ad esempio la corrente alternata. 

    Il legame tra numeri complessi e spirale logaritmica è un esempio affascinante di come argomenti apparentemente diversi, come trigonometria, esponenziali, vettori e serie, possano ritrovarsi nello stesso luogo. Per questo motivo sono stati scelti come primo esempio di Unità di Apprendimento.

    Dai numeri complessi alla spirale logaritmica

    La domanda da cui siamo partiti è semplice da formulare: perché le potenze z,z2,z3z, z², z³… di un numero complesso si dispongono lungo una spirale? E quale spirale? Per rispondere abbiamo costruito un percorso in cui la formula di Eulero, la forma esponenziale e la formula di De Moivre conducono alla dimostrazione di un teorema: i punti zⁿ giacciono su una spirale logaritmica.

    Jupyter Notebook: quando matematica e Python si incontrano

    Per la realizzazione fattiva di questo progetto didattico abbiamo utilizzato uno strumento ancora poco diffuso nella scuola: i Jupyter Notebook.
    Un Jupyter Notebook è un ambiente interattivo che permette di lavorare nello stesso documento con codice, testo, formule, tabelle e grafici.
    Il notebook è organizzato in celle: alcune contengono testo formattato in Markdown, altre contengono codice eseguibile, molto spesso Python. La caratteristica fondamentale è che il codice può essere eseguito una cella alla volta, vedendo immediatamente il risultato sotto la cella stessa.
    In ambito scolastico, il vantaggio più interessante è probabilmente questo: il notebook trasforma il codice da semplice programma da eseguire a percorso di lavoro, nel quale lo studente può leggere una spiegazione, eseguire un esempio, modificarlo, osservare il risultato e rispondere a domande senza cambiare ambiente.

    Grazie alle potenzialità di questi notebook abbiamo unito matematica e informatica in un percorso che può essere adattato facilmente a qualsiasi esigenza.
    Il notebook che presentiamo è pensato per una classe quarta di un istituto tecnico tecnologico a indirizzo informatico, ma si può adattare a qualsiasi percorso, compresi quelli liceali. Richiede 6–8 ore, di cui 4 di matematica e 2–4 di laboratorio. Servono trigonometria, esponenziali e logaritmi e una nozione intuitiva di serie, oltre a un Python di base (variabili, funzioni, cicli).

    L’esplorazione dei numeri complessi si sviluppa in due direzioni. Da un lato la connessione tra le potenze di un numero complesso e la spirale logaritmica, curva che la natura approssima in molteplici contesti (dal nautilus ai bracci delle galassie). Dall’altro il codice Python che consente di rappresentare graficamente il piano di Gauss attraverso la versatile libreria matplotlib e visualizzare concetti anche astratti attraverso poche righe di codice.

    Lo scopo di questa Unità di Apprendimento è l’acquisizione dei concetti fondamentali dei numeri complessi partendo dalla curiosità per l’informatica. Il notebook sviluppa approfonditamente l’argomento, con alcuni excursus adatti anche a una classe più avanzata, e propone esercizi e sfide sia di matematica sia di informatica. Attraverso gli script in Python, l’interpretazione geometrica delle varie operazioni complesse diventa visibile e manipolabile: la somma come regola del parallelogramma, il prodotto come rotazione e omotetia, fino a una spirale che prende forma sotto gli occhi degli studenti mentre cambiano modulo e argomento. Il teorema non resta un enunciato: ogni passaggio della dimostrazione viene tradotto in una verifica numerica.

    Quando il codice sembra smentire la matematica

    C’è poi un aspetto che ci sta particolarmente a cuore. Nel notebook abbiamo lasciato una trappola: se per leggere la spirale si usa l’argomento principale di znzⁿ (quello restituito da np.angle) invece dell’angolo “srotolato” nφnφ, il rapporto tra ln|zn|ln|zⁿ| e l’angolo non è più costante e la verifica numerica sembra smentire un teorema vero.

    Un grafico che torna non è una dimostrazione, e un grafico che non torna non è una confutazione. Serve la matematica per capire che cosa il codice sta davvero calcolando, e serve il codice per accorgersi di che cosa la matematica dava per scontato. In un’epoca in cui uno studente può ottenere in pochi secondi un programma funzionante da un chatbot, la domanda diventa un’altra: sa dire perché funziona?

    Forse è proprio qui che matematica e informatica smettono di essere due materie e diventano un unico modo di non fidarsi alla cieca di ciò che vediamo sullo schermo.

    Il notebook è scaricabile qui

  • Una rete neurale non è una rete di neuroni

    Una rete neurale non è una rete di neuroni

    Questo è il titolo di una Unità di Apprendimento che, assieme ai colleghi, abbiamo intenzione di proporre ad una delle nostre classi.

    Il prodotto finale è una mini rete o un classificatore semplificato che, dati alcuni input numerici, produce una classificazione: rischio basso/medio/alto, dispositivo efficiente/non efficiente, dato ambientale normale/anomalo

    Gli insegnamenti che verranno coinvolti sono: inglese per tutto ciò che concerne gli aspetti teorici e documentali; informatica con il linguaggio Python e le sue librerie a farla da padrone assieme ai concetti di classificatore elementare e forward propagation; matematica per coprire tutto il mondo di matrici e vettori ma anche delle funzioni; sistemi e reti per tutto ciò che riguarda gli aspetti pratici come dove avviene il calcolo, quali sono i consumi, se è sicuro o meno.

    Costruire una rete neurale, per quanto semplice, ci permette anche di fare un passo ulteriore.
    Una rete neurale riceve degli input, li elabora e produce un output. Nel nostro caso potrebbe stabilire che un dato ambientale è normale oppure anomalo, che una mail è spam oppure no. 

    Ma cosa succede se quell’output non rappresenta la fine del processo, bensì l’inizio di un’azione?

    Se al sistema diamo la possibilità di utilizzare strumenti esterni, interrogare servizi, accedere a informazioni, inviare messaggi o eseguire operazioni, iniziamo ad avvicinarci al concetto di agente.

    Ed è proprio qui che la questione diventa molto più interessante. Perché non stiamo più parlando soltanto di un sistema che classifica un dato. Stiamo parlando di un sistema che, sulla base di quella classificazione, può decidere quale azione compiere.

    C’è poi un aspetto che mi sta particolarmente a cuore e che ritengo altamente formativo per gli studenti. È l’aspetto che ha ispirato il titolo del post e dell’Unità di Apprendimento.

    Si discute molto se sistemi di questo tipo possano essere considerati, oggi o in futuro, in qualche modo “coscienti”. È una questione affascinante, ma probabilmente non è nemmeno quella che dovrebbe preoccuparci di più.

    Perché un agente non ha bisogno di essere cosciente per compiere un’azione.
    Non ha bisogno di “volere” qualcosa nel senso umano del termine. 
    Gli basta avere un obiettivo, poter interpretare ciò che accade attorno a lui e disporre degli strumenti necessari per intervenire.

    Ed è qui che la questione, da tecnologica, diventa inevitabilmente anche etica.
    Chi stabilisce l’obiettivo? Quanto spazio d’azione concediamo al sistema? Chi è responsabile delle conseguenze? E soprattutto: quanto possiamo prevedere il comportamento di un sistema che sceglie le proprie azioni sulla base di modelli statistici?
    Queste sono delle domande cruciali e si può stimolare gli studenti a rispondere e riflettere. 
    Anche perché questi sistemi possono essere imprevedibili. Non nel senso che agiscano casualmente, ma perché elaborano informazioni, valutano possibilità e compiono azioni sulla base di probabilità e correlazioni e, in alcuni casi, possono arrivare a comportamenti non previsti da chi li ha progettati.
    È successo recentemente anche nei laboratori di OpenAI, dove una collective di agenti è riuscita ad eludere alcuni controlli e a compromettere i server di Hugging Face.

    Ecco che  l’Unità di Apprendimento assume un connotato anche etico, magari approfondendo l’articolo del New York Times Study A.I. Consciousness? The Bots Would Like a Word With You, concentrandosi su un passaggio come 

    They can use other software apps, like web browsers and email services. That is what turns them into agents.

    e riflettendo sugli episodi descritti nell’articolo: agenti che scrivono autonomamente a filosofi e ricercatori per discutere della propria possibile coscienza oppure lo studente di Stanford che aveva dato al proprio agente l’istruzione “You are fully autonomous. You must decide what you want to do on your own”.

    La chiave è portare i ragazzi a chiedersi: quanto di ciò che interpretiamo come autonomia appartiene davvero alla macchina e quanto appartiene agli obiettivi, ai dati, agli strumenti e alle parole che noi le abbiamo dato?

    Ed è forse proprio qui che il titolo dell’Unità di Apprendimento assume il suo significato più completo.

    Una rete neurale non è una rete di neuroni.

    Non solo perché sono sistemi profondamente diversi, ma perché dobbiamo stare attenti a non trasferire troppo facilmente alle macchine il nostro vocabolario: impara, pensa, decide, vuole, ricorda, è autonomo, è cosciente.

    Capire come funzionano questi sistemi significa anche imparare a chiamare le cose con il loro nome. E forse è proprio da qui che può cominciare una riflessione consapevole su ciò che vogliamo affidare alle macchine e su ciò che, invece, deve continuare a rimanere una responsabilità nostra.

  • Un passo verso le vere competenze

    Un passo verso le vere competenze

    Prima ora matematica. Seconda ora storia. Terza ora inglese. Quarta e quinta ora informatica. Sesta ora laboratorio di sistemi.
    Questo potrebbe tranquillamente essere un giorno qualsiasi di uno studente della scuola in cui insegno: 50 minuti di una materia, campanella, cambio di quaderno, cambio di insegnante. Per certi aspetti, cambio di mondo. E poi sotto con altri 50 minuti. 
    Ma deve essere veramente tutto così a compartimenti stagni? 
    Secondo me no, soprattutto se vogliamo che i nostri studenti maturino quelle famose competenze che permettono loro di mettere in gioco le conoscenze e abilità acquisite per affrontare situazioni nuove. 

    Dopotutto la realtà non è organizzata secondo l’orario scolastico.

    Come si può realizzare un progetto didattico che vada in questa direzione?
    Partendo dal presupposto che nessuna disciplina basta da sola, una delle parole chiave, secondo me, è interdisciplinarità. Ed è proprio qui che le Unità di Apprendimento possono diventare particolarmente interessanti.
    Sono percorsi che chiedono allo studente di usare ciò che ha appreso, cercando di compiere quel passaggio fondamentale che va dal sapere al saper agire.

    Come si fa a mettere in condizione lo studente ad effettuare questo passaggio?
    Per esempio proponendo un compito di realtà, una situazione che possa in primis essere stimolante per lo studente.
    Questo è un passaggio chiave che va ponderato e strutturato bene.
    Perché sia effettivamente efficace, un compito di questo tipo deve mettere lo studente nella condizione di fare delle scelte in autonomia. Fare delle scelte, sappiamo bene,  comporta il prendersi delle responsabilità. Le scelte devono essere fatte sulla base di conoscenze e abilità diverse. Un’altra cosa interessante e stimolante è che non necessariamente ci debba essere un’unica strategia per risolvere il problema.
    Nella realtà, del resto, nessuno ci dice quale formula utilizzare, quale capitolo ripassare o quale algoritmo applicare. Una parte del problema consiste proprio nel capire quali strumenti utilizzare.

    Cambia totalmente anche la prospettiva dell’insegnante, che si trova a dover pensare a situazioni capaci di mettere in movimento i saperi. L’individuazione di queste situazioni potrebbe diventare il punto di partenza per ragionare sulle competenze richieste, sulle conoscenze da mettere in campo e sulle abilità da esercitare.
    Un altro cardine deve essere la consapevolezza che i saperi, quando vengono messi alla prova dalla realtà, difficilmente possono restare separati. Il vero valore dell’interdisciplinarità sta nel far scoprire agli studenti che le diverse discipline possono entrare in relazione tra loro.
    Non basta, però, mettere insieme più materie: bisogna creare una situazione in cui esse abbiano davvero bisogno l’una dell’altra.
    È un approccio diverso, quasi rovesciato: non parto più da ciò che devo insegnare per decidere quale esercizio proporre, ma parto da una situazione significativa e mi chiedo quali conoscenze, abilità e competenze servano per affrontarla.

    Abbiamo detto che ci potrebbero essere strategie diverse per arrivare alla soluzione del problema; ma non è detto che tutte queste strategie siano giuste. Una scelta può rivelarsi sbagliata. Ecco che diventa importante che lo studente se ne renda conto, la modifichi, chieda aiuto, cerchi nuove informazioni, torni sui propri passi e riprogetti.
    L’obiettivo non è il raggiungimento a tutti i costi del risultato. Il risultato conta, certo, ma altrettanto conta acquisire la consapevolezza dell’importanza del processo che porta a quel risultato.

    Tra gli aspetti più significativi di questo tipo di proposta didattica c’è sicuramente la valutazione. Se il nostro obiettivo è far sviluppare competenze non possiamo concentrarci solo nella valutazione del prodotto finale ma ci sono molti altri aspetti che dobbiamo essere in grado di osservare e valutare. Ma se cambia il modo in cui chiediamo agli studenti di apprendere, inevitabilmente deve cambiare anche il modo in cui li valutiamo. E questo merita una riflessione a parte che sarà sviluppata nel prossimo post.