Leer programmeren met Alice
- September 2, 2015
- 0
Alice is in de jaren ’90 van de vorige eeuw ontwikkeld om snel prototypes te kunnen maken van interactieve 3D virtuele omgevingen. In de loop der tijd is men Alice gaan gebruiken om programmeren te onderwijzen. Inmiddels is het oorspronkelijke doel van prototyping helemaal verlaten. Alice wordt momenteel verder ontwikkeld als educatieve software om te leren programmeren. Alice is geen open source software en de licentie staat geen commercieel gebruik toe. Wel mag je de software verspreiden.
Alice 2 of 3?
Op de site van Alice vind je twee versies: Alice 2 en Alice 3. Alice 3 is bedoeld voor studenten die uiteindelijk ook in Java gaan programmeren. Daarmee biedt Alice 3 de mogelijkheid om via visueel programmeren de stap te maken naar conventioneel programmeren (intypen van code). De interface van Alice 3 is duidelijk technischer van aard dan die van Alice 2. In dit artikel leggen we de nadruk op Alice 2.
De doelgroep van Alice 2 zijn scholieren vanaf een jaar of 12. De interface is eenvoudiger en je bent afgeschermd van de onderliggende programmacode. Wel is te merken dat Alice 2 al wat jaartjes ouder is. De interface oogt wat gedateerd en er is alleen een 32-bits versie beschikbaar. Voorlopig blijft Alice 2 gewoon ondersteund. Sterker nog, de nieuwste versie is van juli 2014. In de loop der tijd zal Alice 2 vervangen worden, maar geheel in de geest van Lewis Carroll heet de opvolger Looking Glass.
Alice 2 heeft vier ingebouwde tutorials. Die kosten je weinig tijd en zijn aan te raden. Je kunt de tutorials openen in het pop-up venster dat tijdens het opstarten verschijnt of later via het Help-menu. Het doorlopen van een tutorial wijst zich vanzelf en kost je zo’n 10 tot 15 minuten. Aan het einde kun je de volgende tutorial volgen of zelf aan de slag gaan. Het loont de moeite om alle tutorials te volgen. Bij elkaar ben je dan ongeveer een uur kwijt, waarna je eigenlijk alles van de interface weet. Ook voor Alice 3 is dit trouwens een goede voorbereiding.
Alice 2 heeft helaas geen Nederlandse interface. In Alice 3 kun je in de Preferences Nederlands wel als taal kiezen.
Installatie
De installatie heeft weinig om het lijf. Toch kan er voor Alice 2 een addertje onder het gras zitten, doordat die een 32-bits Java-omgeving verlangt. Op Fedora bijvoorbeeld kun je niet de pakketten met 32- en 64-bits Java 1.7 naast elkaar installeren. Gelukkig kun je wel het pakket met een andere versie van Java naast de bestaande installeren, bijvoorbeeld 32-bits Java 1.7 naast 64-bits Java 1.8. Alice 2 en Alice 3 kunnen beide zowel met Java 1.7 als 1.8 overweg.
Voor Alice 2 download je een tar.gz bestand. De variant met de complete galerij heeft meer 3D-modellen dan die met de core galerij. Het bestand pak je vervolgens uit en in de map Alice 2.4/Required vind je een bestandje run-alice. Pas dit op een 64-bits systeem aan, zodat de 32-bits Java-omgeving gevonden wordt. Zet daarvoor op de allereerste regel de zogenaamde PATH omgevingsvariabele:
export PATH=<pad_naar_32bits_java>:$PATH
Op mijn systeem bijvoorbeeld is dat pad voor Java 1.7:
/usr/lib/jvm/jre-1.7.0/bin
Start dan Alice 2 op de commandoregel op.
cd <pad naar Alice 2.4/Required>
./run-alice
Als je nu op een 64-bits systeem een melding met “wrong ELF class: ELFCLASS32” ziet, dan wordt niet de 32-bits, maar 64-bits Java-omgeving gebruikt. Controleer of je het juiste pakket hebt geïnstalleerd en of je geen tikfout in het pad hebt gemaakt. Bij het opstarten van Alice 2 kan een venster met een foutmelding verschijnen. Als je op More Details klikt en je ziet een melding over een ClassCastException, dan kun je gewoon op OK klikken. Dit is een bekende bug, die geen invloed heeft op de werking van Alice 2.
Voor Alice 3 download je het zip-bestand dat je eveneens uitpakt. In de map Alice3 moet je het bestand alice3.sh uitvoerbaar maken. Ga naar de betreffende directory en gebruik het chmod commando:
cd <pad naar Alice3>
chmod 755 alice3.sh
Start nu Alice 3 op.
./alice3.sh
De allereerste keer dien je de licenties voor Alice 3 en de galerij te accepteren.
Programmeren
In Alice 2 open je via het menu File -> New World eerst een template om een omgeving te kiezen waarin de animatie zich afspeelt. Dat is bijvoorbeeld een grasveld of een wateroppervlak. Vervolgens plaats je daarin één of meerdere 3D-modellen, in Alice 2 objecten genaamd. Dat doe je door met de muis het gewenste model uit de galerij naar de omgeving slepen.
Een object kan zich voortbewegen, draaien, geluid maken, enzovoorts. In Alice 2 heten die acties methodes. Per model zijn er veel voorgedefinieerd. Het programmeren houdt in dat je die methodes combineert tot een reeks acties die het model moet uitvoeren. Dat is dus uiteindelijk je animatie. In afbeelding 2 zie je hoe je een methode uit de lijst links naar het programma rechts sleept. Groene lijnen geven duidelijk aan waar je de methode kunt plaatsen. Na plaatsing worden indien nodig pop-up vensters getoond, bijvoorbeeld om in te vullen hoeveel draaiingen het model moet uitvoeren. Het toevoegen van programmasturingen, zoals iteraties of het testen van condities, gaat op dezelfde manier.
In Alice bestaan objecten vaak uit delen. Zo zie je in afbeelding 2 dat het model armen heeft die weer bestaan uit schouder en onderarm. En de onderarm heeft nog meer detail. Omdat die delen allemaal hun eigen voorgedefinieerde methodes hebben, kun je dus behoorlijk complexe bewegingen programmeren.
In afbeelding 2 zie je rechtsboven events. Daarmee regel je in Alice 2 hoe het programma reageert op muisklikken of toetsaanslagen. Zo maak je de animatie interactief. Via pop-up vensters en drop-down lists kun je zelf makkelijk events toevoegen. Er is standaard één event voorgedefinieerd: als je het programma start, wordt de animatie afgespeeld. Dat klinkt als een open deur, maar is het niet. Je kunt dit event op non-actief zetten en dan wordt bij het starten van het programma alleen de wereld met zijn objecten getoond.
Tot slot
Heb je altijd al eens willen snuffelen aan het programmeren, maar zag je op tegen dikke, taaie boeken? Dan is Alice wellicht een uitkomst voor jou. Zonder veel inspanning leer je de beginselen en op de koop toe krijg je ook nog een 3D-animatie.
Links
Alice
Looking Glass