Programmeren met Alice LES 1
DOEL Op een gestructureerde manier een programma maken dat een animatie uitbeeldt Gestructureerd = in 4 fasen Vorige les: eerder intuïtief Lukt echter niet voor groot programma 4 fasen Scenario Ontwerp Implementatie Testen
Programma Programma = verzameling acties die de computer vertellen wat hij moet doen Voorbeeld: Word Acties: woord onderlijnen, blad uitprinten, ... Analoog: een script in de filmwereld (=programma) beschrijft wat elke acteur moet doen (=actie) Actie = instructie Voorbeeld: verzend mail Filmwereld: steek vijand neer met mes
FASE 1: scenario Scenario: beschrijft het probleem In termen van animatie: probleem = verhaal Geeft alle noodzakelijke details om Initiële scène op te stellen Sequentie van instructies op te stellen die animatie beschrijven Maw: moet aanleiding geven tot antwoord op: Welk verhaal wordt verteld? Welke objecten zijn nodig? Welke acties treden op?
Voorbeeld Zie tekst Vragen Waarover gaat het verhaal? Welke objecten zijn nodig? Welke acties zijn nodig?
FASE 2: Ontwerp Beschrijft oplossing voor het probleem mbv ‘verhaalbord’ (zie verder) In termen van animatie: beschrijft op een gestructureerde manier de acties die nodig zijn Gestructureerd = gemakkelijk om te zetten naar Alice-instructies Acties => volgen uit scenario Typisch: groot scenario wordt opgesplitst in kleinere scenario’s met elk eigen verhaalbord Of nog: groot (complex) probleem wordt opgesplitst in kleinere problemen Voorbeeld: maken van een auto Verhaalbord Visueel Tekstueel
Visueel verhaalbord Scenario wordt opsplitst in verschillende scènes Elke scène is een momentopname, een snapshot Bij elke scène hoort Scènenummer Actie die in scène gebeurt Ev. geluid en tekst
Voorbeeld Beginscène Sneeuwman probeert de aandacht te trekken Sneeuwvrouw draait zich om
Tekstueel verhaalbord Is een soort ‘to do’-lijst = een geordende lijst met acties Voorziet een structuur die later gemakkelijk naar programmacode kan omgezet worden <-> visueel verhaalbord: voorziet visuele representatie Voorbeeld: Ik wil een vriend begroeten die met zijn rug naar mij gedraaid staat (hij kijkt bv. naar een etalage )
Voorbeeld Tekstueel verhaalbord: Tekstueel verhaalbord = algoritme Doe in volgorde (do in order) Ik stap op de persoon af Ik zeg ‘hallo’ De persoon draait zich om Doe tegelijk (do together) Ik geef de persoon een hand De persoon geeft mij een hand Tekstueel verhaalbord = algoritme = lijst van acties om probleem op te lossen
Verhaal sneeuwman en sneeuwvrouw Beginscène
FASE 3 en 4: implementatie en testen = omzetten van het ontwerp naar programma Testen = controleren of het programma doet wat we willen dat het doet Door het programma eens uit te voeren en te kijken of het overeenstemt met ons scenario en ontwerp Kan op om het even welk moment gebeuren Zowel tijdens als na implementatie
Commentaar Commentaar In Alice: met instructie ‘//’ Bevindt zich bij een instructie of groep instructies in programma Erbij gezet door de schrijver van het programma Verduidelijkt die instructie of groep instructies voor iemand die programma-instructies leest Enkel waar nodig In Alice: met instructie ‘//’
Programmeren met Alice Les 2
DOEL Functie Expressie Conditionele uitvoering Vraagt informatie op over bepaalde eigenschappen van een object Voorbeeld: hoe groot is de sneeuwman? Expressie Voert een bewerking uit Voorbeeld: verschil berekenen tussen de lengte van de sneeuwman en sneeuwvrouw Conditionele uitvoering Een bepaalde instructie wordt maar uitgevoerd wanneer een bepaalde voorwaarde vervuld is Voorbeeld: ALS de sneeuwman groter is dan de sneeuwvrouw DOE INSTRUCTIE: sneeuwman bukt zich en kust sneeuwvrouw
Functies Vragen informatie op over eigenschappen van een object Want enkel de meest voorkomende eigenschappen (bv. kleur) staan onder ‘properties’
Controlestructuren Bepaalt de volgorde waarin instructies worden uitgevoerd Do in order: voer instructies de een na de ander uit Do together: voer instructies tegelijk uit Conditionele uitvoering: een bepaalde instructie wordt maar uitgevoerd wanneer een bepaalde voorwaarde vervuld is. Wanneer dit niet zo is, wordt (eventueel) een andere instructie uitgevoerd Voorbeeld: ALS het mooi weer is ga ik voetballen, ANDERS ga ik zwemmen
Conditionele uitvoering Voorbeeld: ALS het mooi weer is ga ik voetballen, ANDERS ga ik zwemmen Alice: ALS => IF ANDERS => ELSE ‘Het mooi weer is’ = conditie Is conditie geldig is => ‘het mooi weer is’ = true =>actie ‘ik ga voetballen’ wordt uitgevoerd Is conditie ongeldig is => ‘het mooi weer is’ = false =>actie ‘ik ga zwemmen’ wordt uitgevoerd
Conditionele uitvoering