Come disegnare una linea in Scratch (e creare una funzione linea)

Scratch funziona come un plotter (penso pochi sappiano di cosa si tratti, immaginatelo come un braccio meccanico dedito al disegno) quindi per disegnare dovete dire:

  1. scegli il colore che preferisci
  2. scegli lo spessore del tratto
  3. scegli la tipologia di tratto (default continuo)

Fatte le configurazioni iniziali per poter disegnare dovete dire penna giù e per smettere penna su
Due sono le modalità

  1. semplicissima inizialmente, difficile in un secondo tempo, indicata per i bambini che possono istruire a disegnare come possono muovere un personaggio in un videogiochi o un robot
    posizionati in un punto (di default l’origine) disegna muovendoti di tot punti (che potrebbero essere passi). Posso cambiare orientazione cambiando l’angolazione (di default gira a destra)
  2. semplice se si conosce l’utilizzo degli assi cartesiani e riprende la
    metodologia più utilizzata da tutti i programmi: posizionati nel punto (x1,y1)
    e vai al punto (x2,y2).

Non esiste in scratch una funzione disegna linea, conviene crearla

  1. In Altri Blocchi “Crea un Blocco
  2. chiamalo linea o come preferisci ed introduci 4 variabili x1,y1,x2,y2
  3. le righe di codice fondamentali da inserire sono 4
    vai a x: x1 y: y1
    penna giù
    vai a x: x2 y: y2
    penna su

ora “linea -20 -20 20 20” disegnerà un segmento da (-20.-20) a (20,20)

La scrittura, la stampa, i caratteri e i font: “programmare una parola”

Scrivere a mano è sempre stato il modo più semplice ed economico di scrivere. Incidere o depositare “colori” era il modo per scrivere.
I problemi principali da sempre 3: trasportabilità, riutilizzo e copia.
La famosa tavoletta di cera era riutilizzabile, la “carta” (di papiro, di pelle, di legno o di …) era trasportabile ma spesso cara.
Pochissimi sapevano leggere, meno sapevano scrivere, inoltre realizzare testi in più copie (copiare) spesso non serviva.
Per poter realizzare più copie, col tempo, si è passati dalla scrittura a mano, alla stampa. Inizialmente i caratteri venivano incisi, spesso in legno, delle dimensioni che servivano, con lo stile che serviva.
Per “stampe personali” arrivò la macchina da scrivere. Serviva a scrivere più veloce e in maniera leggibile, poteva fare almeno una copia, grazie alla carta carbone, si potevano “correggere errori” con il bianchetto, si potevano riscrivere porzioni (ad es. solo pagina 2).
Il salto effettuato con l’avvento del digitale non è stato solo la “smaterializzazione” del supporto dove leggere/scrivere/modificare (con lo schermo posso anche decidere di non stampare o stampare dove voglio) ma soprattutto il passaggio dal carattere fisico al carattere digitale.
I caratteri digitali sono raggruppati in font.
I font hanno gradi versatilità incredibile:
i caratteri possono essere utilizzati di qualsiasi grandezza e non solo a video ma anche in stampa e mantenendo la qualità (non sono immagini e se utilizzati grandissimi non si sgranano)
i caratteri possono essere utilizzati di qualsiasi colore e non solo a video ma anche in stampa
possiamo per ogni carattere cambiare il tipo di font e questo vuol dire di ogni carattere cambiare lo stile ma soprattutto consentire semplicemente l’utilizzo di lingue con ideogrammi o caratteri per noi speciali. Possiamo in questo modo comporre frasi multilingue tenendo presente anche che alcune lingue non si scrivono/leggono come la nostra da sinistra a destra e dall’alto in basso.
In tutta questa versatilità bisogna osservare che grassetto e italico (ed anche grassetto+italiaco) non sono delle istruzioni del tipo, usa un tratto più spesso con la font normale o inclina la font normale bensì usa grassetto e usa italico significano, di quella famiglia di font, con il carattere della stessa grandezza, usa l’equivalente font grassetto e l’equivalente font italico.
Ovvero, se volessimo creare un font, dovremmo disegnare quella normale, ma anche quella grassetto, italico e grassetto+italico.
Ora sappiamo molto su la scrittura, la stampa, i caratteri e i font ma se volessimo capire di più non utilizziamo un font, non proviamo a disegnare un font ma proviamo a “programmare una parola”.
Per programmare una parola non intendo un programma moderno del tipo: utilizza il font …, seleziona la grandezza del font, seleziona il colore del font, posizionati e scrivi.
Per programmare una parola intendo, utilizzando le primitive di disegno fornite, programma (fai disegnare dal programma) una parola.
Ovviamente per una tale attività utilizzeremo la programmazione visuale. Io prediligo Scratch ma anche Snap va benissimo.
Problemi:
1) bisogna conoscere gli assi cartesiani
2) bisogna saper disegnare (segmenti) utilizzando i punti sugli assi cartesiani
3) in scratch non esiste la primitiva linea, se si insegna la necessità e come crearla si è riusciti a spiegare il concetto di codice riutilizzabile e come passare i parametri (uno dei principi fondamentali della programmazione)
4) è subito evidente la difficoltà di disegnare curve
5) bisogna inventarsi un font utilizzando linee. La scelta più semplice è utilizzare tutto maiuscolo in una sorta di primitiva font. Per quanto il tutto risulti abbastanza scontato per non incorrere nella complessità (ad esempio la O sarà un rettandolo) emergono delle difficoltà e la necessità di piccole scelte di stile. Ad esempio: come differenziare O da 0? Oppure come fare la gambetta della Q?
6) si dovrà evidenziare che caratteri così costruiti non sono larghi tutti in egual misura
7) il punto 6) implica che non sarà semplice calcolare la larghezza di una parola e di conseguenza sarà molto complesso centrarla a priori rispetto allo spazio assegnato. Non esiste un comando del tipo seleziona tutta la parola e per centrarla muovila a destra o sinistra di un po’.
8) l’importanza di predefinire correttamente sia gli spazi orizzontali (tra due lettere) che verticali (tra due linee). Pensate in questo contesto la complessità di definire tasto “semplice” come il TAB.
9) 6), 7) e 8) fanno capire la complessità della formattazione, dell’impaginare con uno stile e fare in modo che tutto (testo, fotografie, didascalie, …) dinamicamente e senza errori si aggiornino.
Capite come solo la programmazione, come solo cercare di re-inventare tutto da zero ci può far capire come funzionano realmente le cose?
Sicuramente utilizzate tutti i giorni Word. Sicuramente non avete mai percepito la complessità di sviluppare word e la complessità di gestire al meglio il testo e la versatilità dei font.
Tenete sempre presente questo: più l’informatica diventa semplice da utilizzare (front end), più diventa difficile “dietro” (back end).

Mostre d’Arte e Coding: Secessioni Europee

Cosa c’è di più distante nella mente delle persone tra arte e programmazione?
L’arte è considerata creatività allo stato puro.
La programmazione un’attività sterile e rigorosa (chi creerà i videogiochi?).
Ho creato un semplice programma Scratch che può essere la base per un corso per bambini sia sulla parte artistica della mostra sia per una introduzione alla programmazione visuale.
Insegnare a scrivere ad un programma non è proprio una banalità perché richiede la comprensione degli assi cartesiani, la comprensione di come non sia semplice disegnare segmenti ed unirli a formare le lettere e di conseguenza quanto possa essere complesso disegnare curve.
Insegnare che bisogna rallentare il computer perché una persona riesca ad apprezzare il risultato (il computer è velocissimo).
Altri spunti possono emergere perché come si riesce a muovere una matita virtuale si può fa muovere un robot.

Peegar: scheda madre (stile Arduino) programmabile via web (stile Scratch)

Al momento di Peegar c’è solo il video, inoltre essendo dell’University of Tokyo la parte stile Scratch che si vede è in giapponese.
Si presenta come un interessante progetto di scheda madre stile Arduino programmabile via web.
Lo scopo è di avere un oggetto veramente semplice da programmare che incoraggi bambini e genitori ad approcciare la programmazione anche di schede
peegar.com

Impariamo a programmare per conoscere la tecnologia

Venerdì 17 marzo, durante Pi Greco Rovigo, la mattina vi saranno due laboratori con le scuole medie, dal titolo
Impariamo a programmare per conoscere la tecnologia Il gioco del robot-plotter
Dopo una breve introduzione per far capire che dietro ogni oggetto si nasconde e si nasconderà un computer (IoT), emergerà la necessità di comprendere come interagire non solo nella parte visibile (frontend) ma anche in quella nascosta (programmazione).
Tramite il semplice gioco del robot-plotter impareremo cosa significa programmare e realizzeremo il nostro primo programma visuale (snap o scratch) scrivendo MUVIG.
https://scratch.mit.edu/projects/127972360/

Un metodo per costruire quadrati magici dispari con Scratch

Un semplice metodo per costruire quadrati magici dispari è quello della diagonale.
Si introducono i numeri nella griglia a partire dall’uno in sequenza, in diagonale (in alto a destra), se il numero cade fuori dalla griglia lo si riporta all’inizio della sponda opposta (bisogna immaginare che la griglia sia fatta come un cilindro dove i due lati opposti sono uniti). Se il numero è un multiplo del numero della griglia il successivo si mette sotto (ad es per un quadrato 3×3 arrivati al 6, il 7 si metterà sotto).

Il coding nelle scuole elementari italiane: NTT DATA – Coding nelle scuole

Da mercoledì 26 ottobre 2016 prenderanno ufficialmente il via le attività dell’iniziativa “NTT DATA – Coding nelle scuole” per l’anno scolastico 2016/17 che, vedrà i suoi professionisti in campo nelle scuole primarie di Cosenza, Milano, Torino e Roma, tra la fine di questo mese e il mese di novembre, per le prime lezioni frontali di coding, a titolo gratuito per gli istituti scolastici aderenti, e progettate su misura per l’apprendimento da parte dei più piccoli.

Dopo l’annuale appuntamento della “Europe code week”, tenutosi dal 15 al 23 ottobre, NTT DATA Italia ha deciso di espandere il proprio impegno nell’ambito della formazione per i giovani del Belpaese, attraverso un progetto pensato per riuscire ad avvicinare sempre di più i bambini al mondo del pensiero computazionale e della programmazione.

“Fin dalla fase di preparazione e impostazione del lavoro con il corpo docenti, ci siamo accorti quanto il coding sia sempre più necessario e importante per il sistema formativo del nostro paese. Così abbiamo pensato a veri e propri corsi strutturati, grazie ai quali vorremmo che i bambini non solo usassero, ma proprio creassero, i loro primi software. E abbiamo pensato ai videogiochi come prima forma di esercizio, perché sono di sicuro la tipologia di applicazioni più vicina all’immaginario dei bambini. Il nostro obiettivo primario rimane la diffusione del pensiero computazionale come modalità di ragionamento che possa aiutare i futuri giovani in ogni tipo di lavoro o situazione di vita in futuro” commenta Paolo Zanotti, Head of Marketing & Communication di NTT DATA Italia.

Il pensiero computazionale e il coding, infatti, sono due elementi di fondamentale importanza per tutti i futuri cittadini, in quanto aiutano a sviluppare competenze logiche e capacità di problem solving in modo creativo ed efficiente. Saper utilizzare questi linguaggi, inoltre, aiuta a formalizzare un problema in semplici passi finiti, e non ambigui, componendo così un algoritmo.

Un sistema, questo, che si sta sviluppando in tutto il mondo e al quale NTT DATA Italia ha voluto dedicare una grande iniziativa per sensibilizzare ancora di più gli alunni italiani sul tema dell’insegnamento di principi base dell’ambiente IT, come lo sviluppo di un software. Nel corso dell’anno scolastico 2016/17, così, presso le scuole primarie aderenti al progetto, saranno messi a disposizione a titolo completamente gratuito hardware e formatori, per 40 ore mensili, con i primi 25 incontri programmati tra ottobre e novembre.

L’intento sarà quello di far scoprire ai bambini, in forma di gioco, cosa sta alla base della logica del problem solving, attraverso l’utilizzo del software Scratch che li renderà protagonisti attivi della tecnologia e non semplici fruitori: Scratch è il più popolare ambiente di programmazione visuale sviluppato presso il MIT della Boston University per permettere a chiunque di usare la programmazione per esprimere la propria creatività e condividere le proprie idee sotto forma di progetti. Il software rende semplice creare storie interattive, animazioni, giochi, musica e arte e condividere le proprie creazioni sul web. In questo modo i ragazzi imparano importanti idee matematiche e computazionali e allo stesso tempo sono invitati a pensare creativamente, a ragionare con sistematicità e a lavorare in collaborazione. La strategia utilizzata dal programma, inoltre, è quella del click and drag, attraverso cui è possibile comporre frammenti di codice in maniera facile e divertente.

“Essere promotori dell’innovazione è da sempre il nostro obiettivo principale” ha concluso Paolo Zanotti, “e poterlo fare condividendo le nostre competenze con i più piccoli ci rende ancora più orgogliosi del nostro lavoro. Per questo crediamo che un progetto come questo sia utile per il nostro paese a tutti i livelli, dai bambini ai genitori, dagli insegnanti ai dirigenti scolastici, per poter avvicinare sempre di più le nuove generazioni all’informatica e alle opportunità offerte dalla logica del problem solving Ci piacerebbe poter inserire la programmazione nei piani didattici delle scuole primarie e contribuire in maniera continuativa al loro svolgimento”.

Sono già numerose le scuole che hanno fatto richiesta di partecipazione al progetto “NTT DATA – Coding nelle scuole” in diverse città d’Italia, e tra i primi istituti scelti per i primi corsi figurano: l’Istituto Scolastico Comprensivo Statale di Pianezza (TO), la Scuola primaria Nino Costa, il I° Circolo Didattico di Castrovillari (CS), l’Istituto Comprensivo Lessona di Venaria (TO), l’Istituto Comprensivo Statale Gullo Cosenza IV (CS), l’Istituto Comprensivo Pacinotti: Scuola primaria De Filippo, l’ICS Monte Grappa di Bussero (MI), l’Istituto Comprensivo Tommaso Cornelio Rovito (CS), l’Istituto Comprensivo Statale Taverna di Montalto Uffugo (CS), l’Istituto Comprensivo Morosini-Manara: Scuola primaria Morosini di Milano, l’Istituto Comprensivo Cosenza III “Via Negroni”, l’istituto comprensivo statale “Bianchi-Scigliano” di Scigliano (CS), l’Istituto Comprensivo Capponi di Milano e la Scuola Primaria di Trenta (CS).