Om een computer iets te kunnen laten doen, heeft het apparaat een programma nodig. Maar zo’n programma schrijven oftewel programmeren is voor velen knap ingewikkeld. Met Scratch kun je eenvoudig de allereerste stappen zetten. Leuk voor (groot)ouders en hun (klein)kinderen.

René Suiker

                     

Deze tekst is een verkorte versie van een artikel dat eerder in uitgebreidere vorm verscheen in het magazine Softwarebus van HCC!compusers

Scratch is 's werelds grootste codeergemeenschap voor kinderen en een codeertaal met een eenvoudige visuele interface waarmee jongeren digitale verhalen, games en animaties kunnen maken. Scratch is ontworpen, ontwikkeld en ter beschikking gesteld door de Scratch Foundation, een organisatie zonder winstoogmerk. Je kunt Scratch dan ook gratis gebruiken. En gratis is hier ook echt gratis, zonder spam. Scratch gebruik je online en het draait bij het MIT (Massachusetts Institute of Technology), in mijn opinie de beste technische universiteit ter wereld. Onlangs kregen twee MIT-professoren een Nobelprijs. Je kunt via https://scratch.mit.edu bij Scratch komen. Maak daar een gratis account aan en vervolgens kun je beginnen.

startscherm

Het startscherm

Het startscherm

Wanneer je bent ingelogd, dan ziet het startscherm er ongeveer uit zoals op de afbeelding hierboven.

Bij (A) zie je de url: https://scratch.mit.edu en bij (B) zie je de menubalk. Wanneer je op het Scratch-symbool klikt, kom je ook weer op deze pagina terecht. Bij (C) en (D) zie je dynamische inhoud. Bij (C) is dat ‘wat gebeurt er’ en bij mijn weten zijn dat de laatste publieke activiteiten binnen mijn netwerk. Als ik de pagina ververs, kan hij er dus al weer heel anders uitzien. Bij (D) zie je Scratchnieuws en dat is dus nieuws van Scratch zelf. Bij (E) zie je dat ik ben ingelogd ben en wel als ‘softwarebus’. Dat is één van mijn accounts en het account dat ik het meest gebruik als ik artikelen aan het schrijven ben. Als ik op ‘softwarebus’ klik krijg ik een profiel submenu, waarover meer in de volgende alinea. Bij (F) zie je dat er één bericht voor me klaar staat. Dit is in dit geval een bericht dat iemand mij volgt, maar het kunnen verschillende soorten berichten zijn. Bij (G) kun je zoeken, zowel op een naam van een mede-Scratcher als op een project als iets anders, zoals bijvoorbeeld een studio. Bij (H) krijg je, ook dynamisch, een overzicht van een aantal ‘uitgelichte projecten’, waarbinnen je ook kunt scrollen. Dit is wel gebaseerd op je persoonlijke voorkeuren. En bij (I) heb je, wederom dynamisch, een overzicht van uitgelichte studio’s.

Projecten zijn dus enkelvoudige Scratch-programma’s; elk Scratch programma is in feite een project. Als je in de menubalk (B) op ‘Maak’ klikt, wordt er een nieuw project aangemaakt. Intussen zijn er al meer dan een biljoen projecten binnen Scratch, dus ruim duizend miljard. Studio’s zijn in feite groepen van projecten. Je kunt als Scratcher meerdere studio’s aanmaken en beheren en je kunt ook soms gevraagd worden om studio’s van anderen te beheren. Het concept van studio’s kunnen we wel een andere keer behandelen. Voor nu is het genoeg, dat je weet dat je je projecten in studio’s kunt onderbrengen.  Op die manier kun je je projecten thematisch organiseren.

Fig 2 Profiel submenu
Profiel submenu

Profiel submenu

Ik zou nog even terugkomen op het profiel submenu, dus als je in het voorgaande scherm op ‘softwarebus’ zou klikken. Je krijgt dan dit submenu te zien.

Hier kun je dus op een aantal opties klikken. Allemaal niet heel spannend, maar het geeft wel aan, dat je al je projecten weer terug kunt vinden, je kunt jezelf afmelden en je kunt wat gegevens over jezelf onderhouden. Via Mijn projecten kom je ook bij Mijn studio’s, althans daar vind je links naast de projecten nog een submenu met studio’s als één van de opties.

Project maken

Om met een nieuw project te starten, klik je in de menubalk (zie (B) in de eerste afbeelding) op Maak. Vervolgens krijg je heel veel mogelijkheden. We lopen langs de opties. in Figgur 3 - Nieuw project.

Bij (1) zie je de url. Deze is nu wat langer, omdat ook de projectcode in de url staat. Tevens staat aan het eind editor, zodat je weet dat je in de bewerkmode zit. Als je op (2) klikt, dan kom je op dezelfde url minus het stukje editor en dan zie je beschrijvende pagina. Voor een nieuw project is dat beslist niet spannend. Bij (3) zie je de link naar Lessen om Scratch te leren op de site van Scratch. Hier zijn zo’n 25 handleidingen over verschillende aspecten van Scratch te vinden. Kijk er gerust eens rond, het is de moeite waard. Bij (4) vind je de optie om je project te delen. Zoals ik al eens eerder zei: dit wordt door de Scratch gemeenschap gewaardeerd. Het idee is, dat je samen meer kunt dan alleen. Als je echt nog helemaal in het begin van je project zit, heeft delen nog niet heel veel zin, maar als je je project afgerond hebt en je wilt het anderen laten zien, dan zul je het moeten delen want anders kan niemand erbij. En als je het gedeeld hebt, dan kunnen anderen ook naar je project kijken en ze kunnen er zelfs een kopie van maken, die ze dan verder kunnen bewerken. Op hun projectpagina zal dan wel staan, dat hun project gebaseerd is op jouw werk. Dus ze lenen je werk, maar je krijgt er wel de credits voor.

Fig 3 Nieuw project

Fig 3 - Nieuw project

Bij (5) geef je je project een naam, want standaard heten ze allemaal untitled-xx waarbij xx een volgnummer aangeeft. Dus als softwarebus heb ik blijkbaar al 20 projecten gemaakt. Voor Scratch maakt het overigens niet echt uit als je al je projecten hetzelfde noemt, want die onderscheidt de projecten op basis van het volgnummer in de url. Het is alleen voor jezelf verwarrend, dus beter is om een logische naam te kiezen.

Bij (6) vind je de Instellingen. Voorheen was dit de wereldbol, waar je de taal kon instellen. Dat kan nog steeds en er is nog steeds een overdaad aan talen beschikbaar, maar daarnaast kan je hier nog een kleurschema instellen. Onder (7) zie je drie tabbladen en de linker is het tabblad Code. Hier zie je in verschillende kleuren de verschillende groepen van commando’s die je in je programma kunt gebruiken. Bij (8) vind je Uiterlijken, dat zijn de vormen van de objecten (sprites) die je in je programma gebruikt. Bij (9) vind je de geluiden die door je sprites voortgebracht kunnen worden. Overigens kun je ook geluiden aan je achtergrond koppelen.

De commando’s zijn dus onderverdeeld in een aantal groepen, welke door een kleurcode herkenbaar zijn. De gekleurde bolletjes laten je snel naar een categorie springen, want de lijst met commando’s staat gewoon onder elkaar, maar wel gesorteerd per categorie. Met deze blokjes stel je je programma samen in het werkgebied (10).

Bij (11) vind je het speelveld. Hier vinden alle activiteiten plaats. Je kunt dit met het icoontje rechtsboven in het speelveld (met de vier pijltjes) ook maximaliseren. Als je programma af is, kun je het wat groter afspelen.

Bij (12) vind je een knop om nog wat extra modules in te schakelen. Toen we van versie 2 naar versie 3 gingen, was ineens de pen uit de standaard verdwenen. Die werd blijkbaar niet heel veel gebruikt door de Scratchers, dus zijn de pencommando’s naar een aparte module verhuisd. Wanneer je deze wilt gebruiken, zul je deze moeten toevoegen. Dat is overigens niet heel veel werk: je drukt op het icoontje bij (12) en je selecteert de pencommando’s. Een kind kan de was doen.

Bij (13) vind je de sprites die onderdeel uitmaken van je project. Boven de geselecteerde sprite (in dit geval is er maar één) zie je wat parameters betreffende de sprite, zoals de naam, de positie en nog wat parameters. Bij (14) kun je achtergronden tonen die meedoen. Met de knoppen bij (15) kun je sprites respectievelijk achtergronden toevoegen. Hierbij kun je een keuze maken uit beschikbare materialen, zelf tekenen of uploaden. Je kunt dus bijvoorbeeld in Blender een fantastische achtergrond ontwerpen en deze dan in Scratch importeren.

Als je nog eens goed naar het werkgebied (10) kijkt, zie je in de rechterbovenhoek de afbeelding van de sprite. Als je meerdere sprites hebt, dan vind je in het werkgebied de afbeelding van de geselecteerde sprite. En in het werkgebied vind je de code die behoort bij die sprite. Elke sprite is een eigen object, die eigen code kan hebben. In plaats van het traditioneel sequentieel programmeren bekijk je nu per object wat die moet doen.

En op die manier bouw je object voor object je programma op. Op deze manier bouwen we ook redelijk compacte programma’s. Als we nog eens terugkijken naar bijvoorbeeld ‘Bricks’ dat we in een aantal voorafgaande nummers bespraken, dan kan je je misschien wel voorstellen, dat je daar in bijvoorbeeld Basic ettelijke tientallen pagina’s aan code voor nodig hebt. In Scratch heb je ongeveer één pagina per actieve sprite nodig en dan zijn de codeblokken die je gebruikt nog best groot.

Programmeren

Scratch is dus een programmeertaal, hiermee kan je dus je computer programmeren. De computer is in feite maar een dom apparaat, want hij voert de instructies die hij krijgt letterlijk uit. Hij vraagt zich nooit af of het wel logisch is wat jij wilt en is niet in staat om gedachten te lezen.

Je kunt een programma opstellen door reeksen van instructies achter elkaar te zetten. Je moet ze in feite, net als Lego-stenen, in elkaar klikken. Als het niet ‘klikt’, dan is de combinatie van instructies in die volgorde niet werkend. Je kunt in feite geen fouten in de syntax maken. In Basic bijvoorbeeld kun je een fout maken door twee lussen niet om elkaar heen te zetten (dat is goed) maar in feite door elkaar heen te laten lopen. Dat kan dus niet, dat geeft een fout. In Scratch krijg je zo’n fout niet voor elkaar. Je kunt een lus in een lus zetten en daarbinnen nog een lus enzovoort. Maar je kunt lussen niet in elkaar zetten zodat ze rare dingen doen. Het gaat gewoon niet passen.

Dat wil overigens niet zeggen dat je geen programmeerfouten zou kunnen maken. Je kunt nog steeds fouten maken, maar dan doet de computer nog steeds wat je zegt. En je kunt je programma ook altijd stoppen met de rode stip, ook als je in een eeuwige lus zit.

Het is dus zaak om goed na te blijven denken over wat je doet. En daarom zijn er dus ook oefeningen, zodat je langzaamaan van absolute beginner doorgroeit naar redelijk gevorderd programmeur. En dus is het zaak om de oefeningen ook uit te voeren, als je zelf actief wilt zijn met Scratch en vooral als je het ook je (klein)kinderen wilt uitleggen.

Scratch bij HCC

                     

Meer Scratch

René Suiker is op zoek naar mensen die ideeën bedenken wat we met Scratch zoal kunnen bouwen. Wellicht wil je een keer een opzet maken en het hier verder laten groeien en bloeien. Misschien zijn er ook nog specifieke onderwerpen die hier besproken kunnen worden. Je kunt  een mail sturen naar rene@renesuiker.nl

René Suiker is een enthousiast gebruiker van Scratch binnen HCC!compusers. Ook binnen HCC!AI wordt er volop aandacht besteed aan Scratch. En bij HCC!seniorenacademie wordt soms ook Scratch behandeld, vaak in combinatie met hardware-aansturing. Daarnaast kun je je voorstellen dat ook HCC!programmeren aandacht gaat besteden aan Scratch. Nu is dat nog niet echt het geval, hoewel op sommige vrijdagavondsessies Scratch wel eens aan de orde komt. Ten slotte krijgt de jeugd ook steeds meer belangstelling voor Scratch.