La programmazione visuale a blocchi
Blockly si può usare seguendo questo collegamento.
Articoli su Blokly in questo blog
Durante le attività del progetto abbiamo iniziato a usare Blockly in modo via via migliore, imparando dai nostri stessi errori e scoprendo alcune imperfezioni (o scelte progettuali non del tutto condivisibili) del generatore di codice sviluppato da Google. Quello che abbiamo appreso lo abbiamo raccolto in questi articoli:
- Blockly: istruzioni per l’uso 1. In questo articolo affrontiamo un problema abbastanza frequente che provoca errori difficili da scoprire e correggere per un principiante: le variabili in Blockly sono sempre modificabili, dentro e fuori dalle funzioni!
- Blockly: istruzioni per l’uso 2. Affrontiamo un piccolo problema che si presenta quando si crea una libreria di funzioni (non di blocchi) aggiunta ai blocchi predefiniti. Per esempio la libreria dedicata all’approssimazione di numeri trascendenti presente su questo stesso blog.
- Blockly: istruzioni per l’uso 3. Un comportamento anomalo del blocco Count with quando il valore iniziale è maggiore del valore finale e una possibile soluzione.
- Blockly: istruzioni per l’uso 4. Prevenire un errore quando si cerca di assegnare un valore a un elemento di una lista che, però, non esiste nella lista.
- Blockly: istruzioni per l’uso 5. In Blockly una variabile e una procedura possono avere lo stesso nome!
Un approccio morbido al coding
Il metodo utilizzato per approcciare alla programmazione – senza in realtà affrontare l’apprendimento di un linguaggio di programmazione vero e proprio – è descritto in una serie di articoli, il primo è Programmare senza un linguaggio di programmazione 1/3. L’idea, in estrema sintesi, è: scrivi in linguaggio naturale l’algoritmo, raffina le istruzioni secondo certi canoni, concretizza la tua idea utilizzando Blockly.
Librerie e laboratori
Alcuni dei laboratori affrontati nel corso del progetto hanno richiesto l’implementazione di algoritmi e procedure o lo sviluppo di vere e proprie librerie. Tutti sono stati progettati e costruiti usando l’approccio descritto qui sopra e negli articoli Programmare senza un linguaggio di programmazione.
Modelli per le epidemie 2.0
È uno dei laboratori che più fanno uso del coding: 18 – Modelli per le epidemie 2.0. Negli anni studenti e studentesse hanno realizzato e migliorato un’applicazione per simulare la diffusione di un’epidemia costruita intorno a un semplice – ma efficace – modello agent based. Il laboratorio è raccontato nell’articolo Virus, pandemie e matematica, c’è tanto, tanto, materiale a corredo ed è uno dei migliori esempi dei risultati che si possono raggiungere con l’approccio al coding utilizzato in questo progetto.
Distribuzione della ricchezza
La realizzazione di un modello agent based è affrontata anche nel laboratorio Un mondo ingiusto: chi troppo e chi niente! in cui si ricostruisce il Modello affine per la distribuzione della ricchezza di Li, Boghosian, Li. Anche questo laboratorio è condensato nel fascicolo 17 – Distribuzione della ricchezza. Qui, per la prima volta, il codice Javascript prodotto da Blockly è immerso in un foglio di calcolo Google in modo da poter utilizzare il modello come fosse una funzionalità nativa del foglio di calcolo.
Cancellazione del rumore
Il laboratorio Un esperimento tutt’altro che insonorizzato mostra come è possibile costruire un filtro per la cancellazione del rumore con un approccio soft al coding. Come di consueto, l’esperienza è ripercorribile con il fascicolo 20 – Cancellazione del rumore e il codice (XML prodotto da Blockly e Python) è disponibile in un file in formato ZIP.
Derivata aritmetica e Trascendenti
Sono due laboratori realizzati in collaborazione con il dott. Donato Bini (CNR-IAC) che hanno per tema principale:
- L’approssimazione di numeri trascendenti e irrazionali attraverso differenti metodi, più o meno rapidi nel convergere. Nel corso delle attività è stata sviluppata una libreria (usando il generatore di codice Blockly) che si può testare su questo stesso blog e che è descritta qui. Il fascicolo corrispondente si può scaricare dalla pagina Download o direttamente seguendo questo collegament (11 – Numeri trasendenti). Sono disponibili inoltre: la libreria in formato XML (da usare in Blockly) e la stessa libreria in Python (generata da Blockly) raccolte in un file in formato ZIP.
- Il lavoro sui numeri trascendenti è stato ampliato nel fascicolo 21 – Derivata aritmetica migliorando la libreria che è ZIP.
Allineamento LIDAR
Laboratorio sviluppato in collaborazione con il dott. Gianluigi Liberti (CNR-ISAC) che ha richiesto lo sviluppo e l’implementazione di un algoritmo per allineare uno dei telescopi che fanno parte del LIDAR. Anche in questo caso il codice è stato generato usando Blockly e le corrispondenti procedure si possono testare su questo stesso blog e sono descritte qui. Il fascicolo corrispondente si può scaricare dalla pagina Download o direttamente seguendo questo collegamento. Inoltre:
- applicazione in formato XML (da usare in Blockly);
- libreria in Python (generata da Blockly).
Corso introduttivo
Qui di seguito è raccolto il materiale (video e file XML soprattutto) usato nel breve corso Introduzione alla programmazione visuale. Le lezioni sono indirizzate principalmente ad alunni del liceo scientifico all’inizio del loro quarto anno di corso e sono mirate soprattutto alle attività di alternanza scuola-lavoro nell’ambito del progetto RiA, per questo motivo non è un corso esaustivo.
Ricordiamo che si può usare l’ambiente, il generatore di codice Blockly, anche direttamente su questo blog in questa pagina.
- Il primo programma con Blockly, un classico: Hello World! Puntata 01: Hello, World! (video lezione) – 06.57 minuti, Il file in formato XML con il codice dell’esempio (file compresso in formato zip) : Puntata 00 – Hello World, Articolo introduttivo alla puntata 00
- Il secondo programma introduttivo, il laboratorio: Puntata 01: tangente a una parabola. Algoritmi puntata 0: introduzione (video lezione), Introduzione al coding – Puntata 00 Tangente a una parabola (video lezione).
- Lavorare con i numeri e con il fattoriale di un numero naturale, il laboratorio: Puntata 02: Fattoriale. Algoritmi puntata 1: il fattoriale di un numero naturale (video lezione), Introduzione al coding – Puntata 01 Fattoriale (video lezione).
- Massimo Comun Divisore e minimo comune multiplo, il laboratorio: Puntata 03: MCD e mcm. Algoritmi puntata 2: il MCD di due numeri naturali, Introduzione al coding – Puntata 02 MCD, Algoritmi puntata 3: il mcm di due numeri naturali, Introduzione al coding – Puntata 03 mcm, Introduzione al coding – Puntata 02b: Ancora MCD.
- Una calcolatrice razionale, il laboratorio: Puntata 04 Una calcolatrice razionale. Algoritmi puntata 4: la somma di due frazioni, Introduzione al coding – Puntata 04 Somma di frazioni, Introduzione al coding – Puntata 04b Parser espressione razionale.