10 Set

1. BJC: Abstracció i generalització

A la primera setmana del curs d’Snap! de la Berkeley sen’s parla d’abstracció, un concepte imprescindible per a la computació però també per a la vida diària. Si m’agrada el tema de la programació amb llenguatges com Snap! és perquè permeten, fàcilment, entendre conceptes que, a la manera clàssica, es presenten més difícils.

PROGRAMACIÓ

Aquesta primera setmana se’ns presenta un vídeo de Douglas Rushkoff,  titulada com el llibre “Program or be programmed” (programar o ser programat). La veritat és que dóna gust sentir-lo a aquest bon home. Comença dient que tenim una societat que s’executa en un codi obsolet. Tothom trasteja “noves tecnologies” però… qui les crea? I sentencia: Si no ets programador, ets un dels programats. Així de simple.  L’evolució de la societat humana ens explica tres grans revolucions tecnològiques relacionades amb la informació: l’alfabet, la impremta i la computació.

Comenta en Douglas que, quan ens vam inventar l’alfabet, va ser tota una revolució, però pocs escrivien i pocs llegien. Quan ens vam inventar la impremta, pocs escrivien i molts van començar a aprendre a llegir i a escriure, fins avui, que es considera que gairebé tothom sap llegir i escriure. I ara tenim la computació… I de nou, una elit programa i els altres fan servir el que l’elit programa.

Personalment, no tinc cap mena de dubte que l’alfabetització digital comença en cursos com aquests, on s’aprèn pensament computacional. Ningú ens ensenya a llegir ni a escriure per ser escriptors o periodistes sinó perquè és una eina fonamental de la nostra societat. Amb la programació està passant el mateix i, d’aquí uns anys, crec que no quedarà ningú sobre la capa de la Terra que no tingui nocions d’algun llenguatge de programació.

Aquí un acudit. L’altre dia llegia el conte “El chistoso“, de l’Asimov i em va agradar molt :) L’acudit no és meu i no sé a qui atribuir-lo…(com bé es comenta el conte de l’Asimov: qui s’inventa els acudits?), però el gag del robotet i els dibuixets sí són meus. El globus de text és de Freepik. Mercis :)

binary-joke-vinyetes2

ABSTRACCIÓ

A més del vídeo d’en Rushkoff, també se’ns proposa una lectura d’un dels artífex d’Snap!, Bryan Harvey, que ens fa una introducció a l’abstracció. A grans trets, explica com l’abstracció és la capacitat d’extraure l’essència de les coses, de simplificar fins a la mínima expressió. Fer això, permet analitzar millor els problemes i, per tant, resoldre’ls. I així, l’abstracció es dóna en tots els terrenys: contemplant un quadre o interpretant un mapa per trobar una adreça.

Al text, en Brian ens fa una analogia amb els cotxes, que estan fets de metall, plàstic, tubs, cables, etc. Tot i que els components d’un cotxe són en realitat un cúmul d’àtoms i, aquests, un cúmul de protons, neutrons i electrons, si hem de reparar-lo no podem pensar en aquests termes perquè no ens en sortiríem. Per reparar un cotxe, haurem de pensar en termes mecànics, de com es relacionen les peces del cotxe. I, en un acte d’abstracció, pensarem en frens, injectors o transmissió.

Al trepitjar el pedal de fre, en el millor dels casos, el cotxe frena. Ara, el pedal és només la interfície amb la que interactuem: més enllà del pedal, tot un seguit de peces connectades que permeten l’acció de frenar.  I amb tot passa el mateix: diga-li cotxes o telèfons o ordinadors.  Al curs, treballarem l’abstracció des del punt de vista de la ciència de la computació. I sembla prou assequible.

Per exemple, el simple fet de moure 10 passos un personatge a Snap! amb el bloc de moviment “mou-te 10 passos” ja és abstracció. En realitat, per moure’s, l’objecte (que és un conjunt de píxels) s’esborra d’un lloc per aparèixer deu passos o píxels més enllà. Però quan programes un personatge perquè es mogui, no penses en píxels sinó en el propi moviment del personatge. La gràcia d’Snap! és que et permet crear les teves pròpies abstraccions :)

BJC1-W1-Abstraction1-Matisse

GENERALITZACIÓ

Qui programa la tecnologia per nosaltres? No hem de ser experts programadors però, per ser crítics en una societat com aquesta, hem d’estar mínimament alfabetitzats a nivell digital: fer ús de tecnologia no és comprendre la tecnologia. Però bé, com diu en Papert al Mindstorms, ens han inculcat una mena de “fòbia matemàtica”… i ens pengem l’etiqueta de “jo sóc de lletres” i ens quedem més amples que llargs… Penso que no hi ha lletres ni ciències, és una dicotomia més del nostre món dualista… Jo, teòricament, “sóc de lletres” i he estat adoctrinada en la fòbia matemàtica. Ara bé, pràcticament, m’he adonat que les ciències són eines que em permeten explorar millor les lletres, i viceversa.

Com comentava en Rushkoff al vídeo primer va ser l’alfabetització del llegir i escriure, després, la impremta i més tard la computació, Internet i els bits en general. Vèiem que aprendre a llegir i escriure no t’obliga a ser escriptor i que, quan arriba la impremta, no tothom escriu però molts llegeixen el que altres escriuen. Amb Internet o amb el món de les ciències de la computació passa el mateix: hi ha més lectors que escriptors. Ergo, aprendre a programar no vol dir que hagis de ser programador però, al segle XXI, sí que necessitaràs saber mínimament com pensen i es comuniquen les màquines…

Aquesta setmana, a més de l’abstracció es parla de la generalització, és a dir, la capacitat de veure una solució més general a problemes de naturalesa semblant. Es posa el cas d’alimentar diferents animals d’una granja. Tot i que uns mengen unes coses i altres unes altres, sí que hi ha manera de fer una generalització en la manera d’alimentar-los: agafar el menjar X i donar-lo a l’animal Y.

A l’Snap!Lab trastejarem aquest nou llenguatge de programació, que beu d’Scratch i, aquest, de Logo. Coneixerem a l’Alonzo i crearem una primera app molt senzilleta.

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *