11
Programmeren met AliceProgrammeren met Alice
LES 1LES 1
22
DOELDOEL
Op een gestructureerde manier een programma Op een gestructureerde manier een programma maken dat een animatie uitbeeldtmaken dat een animatie uitbeeldt Gestructureerd = in 4 fasenGestructureerd = in 4 fasen Vorige les: eerder intuïtiefVorige les: eerder intuïtief
Lukt echter niet voor groot programmaLukt echter niet voor groot programma
4 fasen4 fasen ScenarioScenario OntwerpOntwerp ImplementatieImplementatie TestenTesten
33
ProgrammaProgramma
Programma = verzameling acties die de computer Programma = verzameling acties die de computer vertellen wat hij moet doenvertellen wat hij moet doen Voorbeeld: WordVoorbeeld: Word
Acties: woord onderlijnen, blad uitprinten, ...Acties: woord onderlijnen, blad uitprinten, ...
Analoog: een script in de filmwereld (=programma) Analoog: een script in de filmwereld (=programma) beschrijft wat elke acteur moet doen (=actie)beschrijft wat elke acteur moet doen (=actie)
Actie = instructieActie = instructie Voorbeeld: verzend mailVoorbeeld: verzend mail Filmwereld: steek vijand neer met mesFilmwereld: steek vijand neer met mes
44
FASE 1: scenarioFASE 1: scenario
Scenario: beschrijft het probleemScenario: beschrijft het probleem In termen van animatie: probleem = verhaalIn termen van animatie: probleem = verhaal
Geeft alle noodzakelijke details omGeeft alle noodzakelijke details om Initiële scène op te stellenInitiële scène op te stellen Sequentie van instructies op te stellen die animatie Sequentie van instructies op te stellen die animatie
beschrijvenbeschrijven Maw: moet aanleiding geven tot antwoord op:Maw: moet aanleiding geven tot antwoord op:
Welk verhaal wordt verteld?Welk verhaal wordt verteld? Welke objecten zijn nodig?Welke objecten zijn nodig? Welke acties treden op?Welke acties treden op?
55
VoorbeeldVoorbeeld
Zie tekstZie tekst VragenVragen
Waarover gaat het verhaal?Waarover gaat het verhaal? Welke objecten zijn nodig?Welke objecten zijn nodig? Welke acties zijn nodig?Welke acties zijn nodig?
66
FASE 2: OntwerpFASE 2: Ontwerp Beschrijft oplossing voor het probleem mbv Beschrijft oplossing voor het probleem mbv
‘verhaalbord’ (zie verder)‘verhaalbord’ (zie verder) In termen van animatie: beschrijft op een gestructureerde In termen van animatie: beschrijft op een gestructureerde
manier de acties die nodig zijnmanier de acties die nodig zijn Gestructureerd = gemakkelijk om te zetten naar Alice-instructiesGestructureerd = gemakkelijk om te zetten naar Alice-instructies Acties => volgen uit scenarioActies => volgen uit scenario
Typisch: groot scenario wordt opgesplitst in kleinere Typisch: groot scenario wordt opgesplitst in kleinere scenario’s met elk eigen verhaalbordscenario’s met elk eigen verhaalbord Of nog: groot (complex) probleem wordt opgesplitst in Of nog: groot (complex) probleem wordt opgesplitst in
kleinere problemenkleinere problemen Voorbeeld: maken van een autoVoorbeeld: maken van een auto
VerhaalbordVerhaalbord VisueelVisueel TekstueelTekstueel
77
Visueel verhaalbordVisueel verhaalbord
Scenario wordt opsplitst in verschillende Scenario wordt opsplitst in verschillende scènesscènes Elke scène is een momentopname, een snapshotElke scène is een momentopname, een snapshot Bij elke scène hoortBij elke scène hoort
ScènenummerScènenummer Actie die in scène gebeurtActie die in scène gebeurt Ev. geluid en tekstEv. geluid en tekst
88
VoorbeeldVoorbeeldBeginscène
Sneeuwman probeert de aandacht te trekken
Sneeuwvrouw draait zich om
99
Tekstueel verhaalbordTekstueel verhaalbord
Is een soort ‘to do’-lijstIs een soort ‘to do’-lijst = een geordende lijst met acties= een geordende lijst met acties
Voorziet een structuur die later gemakkelijk Voorziet een structuur die later gemakkelijk naar programmacode kan omgezet worden <-> naar programmacode kan omgezet worden <-> visueel verhaalbord: voorziet visuele visueel verhaalbord: voorziet visuele representatierepresentatie
Voorbeeld: Ik wil een vriend begroeten die Voorbeeld: Ik wil een vriend begroeten die met zijn rug naar mij gedraaid staat (hij kijkt met zijn rug naar mij gedraaid staat (hij kijkt bv. naar een etalage )bv. naar een etalage )
1010
VoorbeeldVoorbeeld
Tekstueel verhaalbord:Tekstueel verhaalbord: Doe in volgorde (do in order)Doe in volgorde (do in order)
Ik stap op de persoon afIk stap op de persoon af Ik zeg ‘hallo’Ik zeg ‘hallo’ De persoon draait zich omDe persoon draait zich om
Doe tegelijk (do together)Doe tegelijk (do together) Ik geef de persoon een handIk geef de persoon een hand De persoon geeft mij een handDe persoon geeft mij een hand
Tekstueel verhaalbord = algoritmeTekstueel verhaalbord = algoritme = lijst van acties om probleem op te lossen= lijst van acties om probleem op te lossen
1111
Verhaal sneeuwman en Verhaal sneeuwman en sneeuwvrouwsneeuwvrouw
BeginscèneBeginscène
1212
FASE 3 en 4: implementatie en FASE 3 en 4: implementatie en testentesten
ImplementatieImplementatie = omzetten van het ontwerp naar programma= omzetten van het ontwerp naar programma
TestenTesten = controleren of het programma doet wat we = controleren of het programma doet wat we
willen dat het doetwillen dat het doet Door het programma eens uit te voeren en te kijken of Door het programma eens uit te voeren en te kijken of
het overeenstemt met ons scenario en ontwerphet overeenstemt met ons scenario en ontwerp Kan op om het even welk moment gebeurenKan op om het even welk moment gebeuren
Zowel tijdens als na implementatieZowel tijdens als na implementatie
1313
CommentaarCommentaar
Commentaar Commentaar Bevindt zich bij een instructie of groep instructies Bevindt zich bij een instructie of groep instructies
in programmain programma Erbij gezet door de schrijver van het programmaErbij gezet door de schrijver van het programma Verduidelijkt die instructie of groep instructies Verduidelijkt die instructie of groep instructies
voor iemand die programma-instructies leestvoor iemand die programma-instructies leest Enkel waar nodigEnkel waar nodig
In Alice: met instructie ‘//’In Alice: met instructie ‘//’
1414
Programmeren met AliceProgrammeren met Alice
Les 2Les 2
1515
DOELDOEL FunctieFunctie
Vraagt informatie op over bepaalde eigenschappen van een Vraagt informatie op over bepaalde eigenschappen van een objectobject
Voorbeeld: hoe groot is de sneeuwman?Voorbeeld: hoe groot is de sneeuwman? ExpressieExpressie
Voert een bewerking uitVoert een bewerking uit Voorbeeld: verschil berekenen tussen de lengte van de sneeuwman Voorbeeld: verschil berekenen tussen de lengte van de sneeuwman
en sneeuwvrouwen sneeuwvrouw Conditionele uitvoeringConditionele uitvoering
Een bepaalde instructie wordt maar uitgevoerd wanneer Een bepaalde instructie wordt maar uitgevoerd wanneer een bepaalde voorwaarde vervuld iseen bepaalde voorwaarde vervuld is
Voorbeeld: ALS de sneeuwman groter is dan de sneeuwvrouw Voorbeeld: ALS de sneeuwman groter is dan de sneeuwvrouw DOE INSTRUCTIE: sneeuwman bukt zich en kust sneeuwvrouwDOE INSTRUCTIE: sneeuwman bukt zich en kust sneeuwvrouw
1616
FunctiesFuncties
Vragen informatie op over eigenschappen van Vragen informatie op over eigenschappen van een objecteen object
Want enkel de meest voorkomende Want enkel de meest voorkomende eigenschappen (bv. kleur) staan onder eigenschappen (bv. kleur) staan onder ‘properties’‘properties’
1717
ControlestructurenControlestructuren
Bepaalt de volgorde waarin instructies worden Bepaalt de volgorde waarin instructies worden uitgevoerduitgevoerd Do in order: voer instructies de een na de ander uitDo in order: voer instructies de een na de ander uit Do together: voer instructies tegelijk uitDo together: voer instructies tegelijk uit Conditionele uitvoering: een bepaalde instructie Conditionele uitvoering: een bepaalde instructie
wordt maar uitgevoerd wanneer een bepaalde wordt maar uitgevoerd wanneer een bepaalde voorwaarde vervuld is. Wanneer dit niet zo is, voorwaarde vervuld is. Wanneer dit niet zo is, wordt (eventueel) een andere instructie uitgevoerdwordt (eventueel) een andere instructie uitgevoerd
Voorbeeld: ALS het mooi weer is ga ik voetballen, Voorbeeld: ALS het mooi weer is ga ik voetballen, ANDERS ga ik zwemmenANDERS ga ik zwemmen
1818
Conditionele uitvoeringConditionele uitvoering
Voorbeeld: ALS het mooi weer is ga ik Voorbeeld: ALS het mooi weer is ga ik voetballen, ANDERS ga ik zwemmenvoetballen, ANDERS ga ik zwemmen
Alice:Alice: ALS => IFALS => IF ANDERS => ELSEANDERS => ELSE ‘‘Het mooi weer is’ = conditieHet mooi weer is’ = conditie
Is conditie geldig is => ‘het mooi weer is’ = trueIs conditie geldig is => ‘het mooi weer is’ = true =>actie ‘ik ga voetballen’ wordt uitgevoerd=>actie ‘ik ga voetballen’ wordt uitgevoerd
Is conditie ongeldig is => ‘het mooi weer is’ = falseIs conditie ongeldig is => ‘het mooi weer is’ = false =>actie ‘ik ga zwemmen’ wordt uitgevoerd=>actie ‘ik ga zwemmen’ wordt uitgevoerd
1919
Conditionele uitvoeringConditionele uitvoering