UOCscratch 1. Introducció a Scratch

2015-11-06

Aquest és el tercer curs d’Scratch que faig en poc més d’un mes i es titula “Programación para todos con Scratch”. Des de finals de setembre i durant tot el mes d’octubre, he estat fet dos cursos simultàniament: #MoocBot de l’INTEF i el curs Pensamiento computacional en la escuela de la Universitat del País Basc. Scratch està a l’ordre del dia :) I jo que me n’alegro molt!

Aquest nou curs, que va arrencar el dilluns 2 de novembre, ha estat organitzat pel Grup Inventa de la Universitat Oberta de Catalunya (UOC).

Els curs té 5 mòduls:

1. Introducció a Scratch
2. Blocs bàsics
3. Blocs avançats
Videojoc amb Scratch
4. Alternatives a Scratch
5. Interacció i món físic

La primera setmana ens aproparem a conceptes com el pensament computacional o el construccionisme i se’ns presentaran eines amigables que faciliten la posada en pràctica de la programació.

Introducció a Scratch

Scratch és un entorn d’aprenentatge molt amigable que té per objectiu introduir a la programació. Si bé va ser inicialment creat per a infants de 6 a 16 anys, pot ser usat per qualsevol personeta que vulgui aprendre a programar tot creant jocs o animacions.

Per conèixer millor Scratch, proposen un parell de vídeos: ¿Qué es Scratch? i la Presentació del curs. L’eina, que avui compta amb 11 milions de projectes compartits per uns 6 milions d’usuaris arreu del món, va ser ideada al 2007 per investigadors encapçalats per Mitchel Resnik al Grup Lifelong Kindergarden del Massachusetts Institut of Technology (MIT).

L’actual versió és la 2.0, disponible des del desembre de 2014. Destaca d’Scratch:

  • L’interfície gràfica és molt amigable: senzilla i intuitiva. De seguida sabem on hem de trobar o posar cada cosa i l’editor gràfic és molt útil per crear els teus propis personatges o escenaris.

  • La programació es pot veure en temps real. A l’esquerra sempre veurem la pantalla i a la dreta, l’editor gràfic o so o els blocs de programació. Si tenen un relleu en groc és que estan actius.

  • Els projectes es poden compartir fàcilment i el sistema de remix o reinvenció sempre guarda el crèdit del projecte original.

  • Hi ha opció online o offline, de connectar-se en línia o descarregar el programa a l’ordinador (recomanat en zones on Internet és feble o inexistent).

  • La documentació sobre Scratch és molt àmplia i la comunitat molt diversa, cosa que facilita resoldre problemes que puguin sorgir als projectes. Ara bé, sempre és millor buscar en terminologia anglesa…Tot i que hi ha molta cosa traduïda al català i al castellà, sempre és millor buscar paraules clau en anglès. Sobretot als fòrums.

Alguns dels principals objectius d’Scratch (o d’eines similars) són:

  • Treballar amb problemes oberts
  • Analitzar i modelar situacions diverses
  • Optimitzar solucions
  • Treballar en equip i de forma col·laborativa
  • Afavorir la motivació i l’autosuperació
  • Connetar amb les àrees STEM (Ciència, Tecnologia, Enginyeria i Mates)
  • Ajudar a pensar algorítmicament

El pensament computacional al currículum

En aquest apartat descobrirem les iniciatives extraescolars que estan ajudant a difondre l’ús del pensament computacional en els infants. Tirant d’hemeroteca, se’ns comparteixen aquests articles:

  • “Aprende a programar como quien aprende a leer”. El País (2013)
  • “Así sí se promociona la programación: Obama escribe su primera línea de código”. Xataka (2014)
  • “15+ Ways of Teaching Every Student to Code (Even Without a Computer)”. Edutopia (2013)

Iniciatives d’aquí i d’allà:

  • Scratch Day: celebració anual a nivell internacional
  • Code Week Europa: la setmana europea del codi
  • Hour of Code: una iniciativa que promou un tastet d’una hora de programació lúdica
  • CodeClubCat: a nivell de xarxa de biblioteques catalanes, aquesta iniciativa és un fork o desdoblament o sucursal, diguem, de la iniciativa dels CodeClub nascuda a Anglaterra. Les personetes que han engegat el CodeClubCat han traduït material, aconseguit un acord amb universitats i format estudiants de carrera per fer voluntariats a les biblios.

La intenció d’aquestes iniciatives és que s’integri el pensament computacional al currículum educatiu. Alguns paísos, com Estonia o Anglaterra, ja han fet aquest pas. Aquí una captura del vídeo del curs on s’exposa, per paísos -i a nivell mundial-, la vinculació de la programació al currículum escolar.

A nivell europeu, també s’hi treballa. Es necessiten programadors i hi ha feines especialitzades, com aquesta, que tenen molta demanda. Hi ha un 8% de llocs de treball que ni tan sols queden coberts, alguns per la manca d’especialització… Com es veu a la següent imatge, però, hi ha molts paísos europeus que ja l’han incorporada i molts que l’incorporaran aviat.

A Espanya, Navarra és la comunitat autònoma més avançada en el tema: s’ensenya programació des d’aquest any escolar 2014/1015 als alumnes de 4rt i 5è de primària. A la comunitat de Madrid s’anuncia una assignatura de programació per als estudiants de secundària. A Catalunya s’ha creat una assignatura a 4rt de secundària en la que els alumnes creen apps amb App Inventor (una mena d’Scratch -funciona amb blocs- però per programar aplicacions mòbils).

Scratch i el pensament computacional

Scratch és una molt bona eina per introduir-se al món de la programació. Es basa en blocs gràfics de programació que representen ordres i rutines. Aquests blocs s’enllacen entre ells com peces de trencaclosques. El llenguatge que utilitza és molt gramaticalitzat.

Les ordres són coses com: “Quan es premi la bandera verda” (aquesta sempre és l’ordre que dóna el “Play” al projecte i és de color marró i porta un caputxó perquè indica un esdeveniment) “mou-te 10 passes” (aquesta seria una ordre de color blau fosc, relacionada amb la mobilitat del “Personatge”).

Scratch està en molts idiomes, català inclòs, ara bé, jo fa dies que vaig amb la versió anglesa perquè no em canvia a català…Aix…no sé si sóc jo o Scratch. Concluim, però , que l’eina es presenta com un entorn amigable que aconsegueix introduir a la programació sense tocar ni una sola línia de codi.

Antecedents de Scratch

Al 2007 neixia Scratch al laboratori Media Lab del MIT. Els antecedents més immediats els trobem a Logo i a Squeak, eines tecnològiques per aprendre a programar que es basen en els principis construccionistes de Piaget (i al vídeo han dit un altre nom que no he entès…) . Aquestes teories van ser acollides per Seymour Papert, que dins el MIT, creava, al 1967, el llenguatge Logo, on els infants podien aprendre a programar amb una tortugueta.

Col·laborador de Papert, Alan Kay (pare del llenguatge orientat a objectes) creava al 1996 Squeak. E-toys és un dels seus entorns més coneguts. Aquí el logo d’Squeak i Scratch també és un gat :)

Alternatives a Scratch

  • Snap! Desenvolupat per la Universitat de Berkeley. És com Scratch però no funciona amb flash.
  • Es parla també de Desing Blocks (més senzill que Scratch es veu) però des d’abril del 2015 que la pàgina no suporta projectes. No acabo d’entendre si han plegat o no.
  • App Inventor. Ja va per la versió 2. És com un Scratch però per entorn mòbil. Només per a Android. Jo he fet una app sobre Cooperatives de Sants ;)
  • Stencyl és una eina molt visual destinada a la creació de videojocs (però més aviat és un framework: no es necessita programar).

També es destaquen alguns eines destinades al món animat:

  • Synfig, gratuït i de codi obert, és una eina per fer animacions amb vectors. La provo segur!
  • Pencil2d, una altra eina open source per crear animacions :)
  • Blender, una de les eines més potents en el camp de l’animació digital.

Introducció a l'entorn de programació de Scratch

Les creacions a Scratch es diuen projectes. Els pots compartir o no, com tu vulguis. Ara bé, si no els comparteixes no estan visibles. Els elements de la pàgina d’usuari són:

  • ESCENARI: A l’esquerra superior (és el o els fons del projecte)
  • OBJECTES: A l’esquerra inferior (són els elements que es mouen per l’escenari)
  • ESPAI D’EDICIÓ/PROGRAMACIÓ: Dreta superior i mig (pestanyes: programes, vestits i so)
  • MOTXILA: Dreta inferior (on es poden guardar troços de codi)

Els blocs de programació són de colors per facilitar-ne la busca. Alguns són operadors (els verds), alguns enceten esdeveniments (els marrons), alguns són sensors (els blau clar), etc. Les peces encaixen entre elles com un trencaclosques però perquè funcioni un projecte, la seqüència de la sintaxi gramatical dels blocs ha de tenir sentit.

Scratch accepta extensions com Scratch for Arduino o Lego We Do que fan que amb els blocs d’Scratch es puguin programar robots o plaques electròniques. Aquí deixo el vídeo relacionat amb la introducció a l’entorn d’Scratch:

Activitat no avaluable

A més del temari, tenim deures :) Una activitat no avaluable que consisteix en trastejar les 12 Scratch Cards i anar-se familiaritzant amb l’entorn i el funcionament d’Scratch. Em feia mandreta fer-les una per una i he creat un projecte on hi són totes. He intentat fer-lo senzill però sí que és un pas més a les simples ordres cada carta. Aviam si m’explico…

El projecte, diguem, està construït des de la variable “Fons”, que porta la batuta. Cada Scratch Card del projecte està representada per un “Sprite” o “Personatge”. Dins la programació de cadascun, a més dels blocs de la carta original, trobarem altres blocs, com el que fa referència a al fons. Si hi ha tal fons X, el personatge farà el que tingui programat i si nó, s’amagarà. Amb això, farem que només es mostri aquell personatge i el seu codi si el fons correspon al de la carta.

Scratch Cards (en català)

Activitat avaluable

L’activitat avaluable que consisteix en crear un petit programa combinant Scratch Cards. Amb condicions, però…

  • Que tingui un objectiu clar (ok, has d’ajudar a un nino a aconseguir les 5 necessitats bàsiques de la piràmide de Maslow)
  • Que contingui de 2 a 5 Scratch Cars (ok, jo n’he posat 3, es detalla als comentaris del projecte)
  • Que no es passi de 16 blocs (uff, impossible :) Sort que aquest punt és només una recomanació…
  • Ser creatius (ok, ho he intentat: tots els dibuixets menys el llaurer són meus :)

Joc Piràmide de Maslow