De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Het gebruik van FP op een meeloopdag voor middelbare scholieren Paul de Mast.

Verwante presentaties


Presentatie over: "Het gebruik van FP op een meeloopdag voor middelbare scholieren Paul de Mast."— Transcript van de presentatie:

1 Het gebruik van FP op een meeloopdag voor middelbare scholieren Paul de Mast

2 Doelstelling: –Realistisch beeld geven van studeren bij de AIM –Mix van werkvormen en inhoud moet overeenkomen met het curriculum Doelgroep: Doelstelling meeloopdag

3 –Overzicht curriculum / onderwijsmodel –Projectmanagement –Website bouwen –Programmeren –Mini proftaak Onderdelen meeloopdag

4 Onderdeel programmeren Afgelopen jaren vaak een praktijkles Delphi of Java: –Alleen wat stoeien met een GUI-builder –Beeldvorming van programmeeronderwijs klopte niet –Probleem: voorkennis is divers Een poging met FP: –Onbekendheid van FP is soms een voordeel –Een 'echt' programma kan vaak kleiner zijn

5 Gekozen probleemstelling Moet eenvoudig te begrijpen zijn. Probleemstelling moet wel interessante aspecten bevatten. Iets grafisch wordt vaak leuk gevonden, maar moeilijk om in 1 uur tijd vorm te geven. Voordelen FP benutten

6 Probleemstelling: Flippo-24 Los de volgende puzzel op: gebruik deze 4 getallen allen precies 1 keer + - * / je mag deze operatoren willekeurig vaak gebruiken 24

7 Twee iteraties: 1.flippo1 :: [Getal] -> Bool 2.flippo2 :: [Berekening] -> Oplossingen

8 Aspecten van het probleem -Er zijn een aantal abstracties mogelijk (aantal getallen, gebruikte operaties, eindwaarde). -Gebruik van recursie is aan de hand van dit probleem goed uit te leggen -Aantal instanties van het probleem zijn eenvoudig: 1,2,3,4 -Aantal instanties van het probleem zijn lastiger: 1,6,6,8

9 Leerlingen laten bedenken… –Geen van de getallen mag dubbel gebruikt worden –Alle getallen moeten gebruikt worden –Het eindresultaat (24) is een geheel getal, maar de tussenresultaten hoeven geen gehele getallen te zijn:(8 / 3) * (10 - 1) = 24 –Hoe zit het met delen door 0? –Hoe zit het met het aantal mogelijke expressies?

10 Flippo1 flippo1 :: [Real] -> Bool flippo1 [] =False flippo1 [x]=x == 24.0 flippo1 xs =or[flippo1 [f x y : removeMembers xs [x, y] ] \\x<- xs,y<- removeMember x xs,f<- operaties ]

11 Flippo2 koppel :: Operatie Berekening Berekening-> Berekening koppel f (x, s) (y, t) = ( f x y, "(" +++ s +++ vertaal f +++ t +++ ")" ) berekening beschrijving van de nieuwe berekening :: Berekening:==(Real, String)

12 Flippo2 :: Operatie:== (Real Real -> Real) operaties::[ Operatie ] operaties=[(+), (-), (*), (/)] vertaal::Operatie -> String vertaal f | f == 12.0= "+“ | f == 4.0= "-“ | f == 32.0= "*“ | otherwise= "/"

13 Flippo2 flippo2 :: [Berekening] -> [String] flippo2 []= [] flippo2 [(24.0, s)]= [s] flippo2 [(ander,s)]= [] flippo2 xs = flatten[ flippo2 [koppel f x y : removeMembers xs [x, y] ] \\x<- xs,y<- removeMember x xs,f<- operaties ]

14 Ervaringen -In de weinige tijd mag niets fout: -Clean project al helemaal opgestart -Warnings uit zetten -Weinig problemen meer met diversiteit in voorkennis, maar les wordt wel meer gewaardeerd door leerlingen die wel eens geprogrammeerd hebben. -Leerlingen begrijpen het verhaal t/m flippo1 goed, maar daarna haakt een gedeelte af. -Gehoorde opmerkingen: -Wat een vage taal! -Waar is de GUI-(builder)? -Kun je die "cannot unify errors" ook uitzetten? -cool -Waardering door leerlingen: een ruime 7


Download ppt "Het gebruik van FP op een meeloopdag voor middelbare scholieren Paul de Mast."

Verwante presentaties


Ads door Google