Bootstrap / HTDP2 / Realm of Racket Vertailu
Bootstrap http://www.bootstrapworld.org/ Tarkoitettu yläkoululaisille (12-15v) Ohjelmointi on integroitu matematiikan opetukseen Materiaalina tuntisuunnitelmat (nettisivut), työkirja (pdf) sekä kirjasto bootstrap-teachpack.rkt Tavoitteena tehdä videogame, myös lyhyempiä harjoituksia Pohjautuu HTDP:hen Design recipe - ajattelu Työkaluina DrRacket tai WeScheme 2 Tiina Partanen
Työkirja (esimerkki) 3 Tiina Partanen
Pikkuharjoitukset (esimerkkejä) Funktion kirjoittaminen, parametrit, paluuarvo, peruslaskut: Rocket.rkt Vertailuoperaattorit ja boolean logiikka: Cage.rkt 4 Tiina Partanen
Bootstrap 1 Yhdeksän 75min oppituntia Oppilaat tekevät pelinsä valmiiseen pohjaan, jossa voidaan muuttaa sitä mikä on ohjailtavan pelihahmo (PLAYER) kerättävä palkinto (TARGET) välteltävä vaara (DANGER) taustakuvan (BACKGROUND) mysteerikuvio (mystery) pelin nimen ja värin (TITLE, TITLE-COLOR) 5 Tiina Partanen
Bootstrap I Hahmojen liikuttelemiseen implementoidaan muutama funktio (kaikki parametrit ja paluuarvot ovat numeroita, paitsi key, joka on merkkijono): (update-target x) Unit5 (update-danger x) (update-mystery x) (safe-left? x) (safe-right? x) (on-screen? x) Unit6 (update-playet x key) Unit7 SCREENSHOT (distance px py cx cy) Unit8 (collide? px py cx cy) 6 Tiina Partanen
Bootstrap I Ohjelmoinnin käsitteet: Funktio, parametrit, paluuarvo Peruslaskutoimitukset: -, *, / +, Tietotyypit: Numero, Merkkijono, Kuva, Boolean Vertailuoperaattorit: <,>,=,<=,>=, string=? Loogiset operaattorit: and, or Haarautuva koodi: cond Peruskuvioiden piirtäminen: circle, rectangle, triangle, start Matematiikan sisällöt: Koordinaatiston käyttö, liikkuminen koordinaatistossa (x- tai y-koordinaatin muuttaminen) Laskujärjestys Vertaileminen <,>,<=, >=,= Kahden pisteen etäisyyden laskeminen Pythagoraan lause Teachpack implementoi: pisteiden laskemisen hahmojen piirtämisen ruudulle pelin loppumisen 7 Tiina Partanen
Valmis peli http://youtu.be/14mbp_mmcka 8 Tiina Partanen
Bootstrap II Tehdään uusi videogame mutta pohja on nyt muokattavissa laajemmin (big-bang käyttöön) Opetellaan käyttämään tietorakenteita: struct Opetellaan kirjoittamaan funktioita, jotka palauttavat struct:eja Muokataan valmista pelipohjaa ja samalla suunnitellaan omaa peliä Otetaan käyttöön random 9 Tiina Partanen
HTDP2 http://www.ccs.neu.edu/home/matthias/htdp2e/ Opettaa ohjelmointia design recipe menetelmällä. Tarkoitettu yliopistojen ohjelmoinnin alkeiskursseille. I Fixed-Size Data II Arbitrarily Large Data III Abstraction IV Intertwined Data V Generative Recursion VI Accumulators Näistä osat 1 ja II voisivat tulla kysymykseen sekä valmiiden abstraktioiden käyttäminen osasta III 10 Tiina Partanen
HTDP2 I Fixed Sized Data (Beginning Student) 1. Arithmetic Numerot, Merkkijonot, Kuvat, Boolean arvot Vertailuoperaattorit ja if-else-rakenne Predikaatit 2. Functions and Programs Funktiot, muuttujat/parametrit, paluuarvo Funktioiden rakentaminen apufunktioista Vakiot Bigbang pelit ja animaatiot 3. How to Design Programs Design recipe 11 Tiina Partanen
HTDP2 4. Intervals, Enumerations, Itemizations cond 5. Structures struct:it 6. Itemizations and Structures Eri structit eri tiloille + cond II Arbitrarily Large Data (BS with List Abbreviations) Listat Listojen käsittely rekursiivisilla funktioilla III Abstraction (Intemediate Student with Lambda) Loop-rakenteet (valmiin abstraktion käyttäminen): map, filter, remove, andmap, ormap, foldr, foldl, sort, argmin, argmax 12 Tiina Partanen
HTDP2 Korostaa oikeaa tyyliä ja prosessia Puhtaasti funktionaalista ohjelmointia Design recipe for functions: Express how you wish to represent information as data. A one-line comment suffices, Write down a signature, a purpose statement, and a function header. Illustrate the signature and the purpose statement with some functional examples. The next step is to take inventory to understand what are the givens and what we do need to compute. It is now time to code. The last step of a proper design is to test the function on the examples that you worked out before. Korostaa koodin testaamista: testit kirjoitetaan ennen koodia 13 Tiina Partanen
Realm of Racket http://it-ebooks.info/book/2628/ Opettaa koodaamaan peli kerrallaan Opetellaan vain välttämätön sitä mukaa kuin sitä tarvitaan 1. Peli: Arvaa numero 1. versio Muuttuja, funktio, mutaattori (set!) Listat, structit, predikaatit, if, cond, rekursio, and/or 2. Peli: Ufon laskeutuminen big-bang, cond 3. Peli: Arvaa numero 2. versio (bigbang) 4. Peli: Matopeli Rekursio, listat, structit Map, filter, ormap,foldl, foldr, apply, structin mutatointi jne. 14 Tiina Partanen
Ufo laskeutuu http://youtu.be/4klsogr4jpm 15 Tiina Partanen
Matopeli http://youtu.be/ujyiucrtbd4 16 Tiina Partanen