Bootstrap / HTDP2 / Realm of Racket. Vertailu

Samankaltaiset tiedostot
Tiina Partanen. Koodaamassa Matikantunnilla

Racket ohjelmointia II. Tiina Partanen 2015

Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014

Racket ohjelmointia II. Tiina Partanen 2015

Racket ohjelmointia osa 1. Tiina Partanen Lielahden koulu 2014

Racket ohjelmointia. Tiina Partanen 2014

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

Ohjelmoinnin perusteet Y Python

Racket ohjelmointia I

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä

Tämän vuoksi kannattaa ottaa käytännöksi aina kirjoittaa uuden funktion tyyppi näkyviin, ennen kuin alkaa sen määritemää kirjoittamaan.

TIEA341 Funktio-ohjelmointi 1, kevät 2008

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä

Choose Finland-Helsinki Valitse Finland-Helsinki

Ohjelmoinnin peruskurssien laaja oppimäärä

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

ITKP102 Ohjelmointi 1 (6 op)

Loppukurssin järjestelyt

Esimerkkinä - ilmainen blogi-julkaisujärjestelmä. WordPress:stä on myös palvelimelle asennettava versio (WordPress.

Ehto- ja toistolauseet

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Loppukurssin järjestelyt C:n edistyneet piirteet

Java-kielen perusteet

Ohjelmoinnin peruskurssien laaja oppimäärä

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op)

Kylänetti projektin sivustojen käyttöohjeita Dokumentin versio 2.10 Historia : 1.0, 1.2, 1.6 Tero Liljamo / Deserthouse, päivitetty 25.8.

Ohjelmoinnin peruskurssi Y1

Ohjelmointiharjoituksia Arduino-ympäristössä

Ohjelmoinnin peruskurssien laaja oppimäärä

Harjoitus 3: Flash-komponenttiarkkitehtuuri ( )

Ohjelmoinnin peruskurssien laaja oppimäärä

ITKP102 Ohjelmointi 1 (6 op)

Java-kielen perusteet

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmointi 1 C#, kevät 2013, 2. tentti

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssien laaja oppimäärä

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Harjoitus 2 (viikko 45)

Laskennallisen fysiikan esimerkkejä avoimesta tutkimuksesta Esa Räsänen Fysiikan laitos, Tampereen teknillinen yliopisto

Ohjelmoinnin peruskurssien laaja oppimäärä

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Python-ohjelmointi Harjoitus 2

OHJ-1151 Ohjelmointi IIe

Ohjelmoinnin peruskurssien laaja oppimäärä

Alkuun HTML5 peliohjelmoinnissa

811120P Diskreetit rakenteet

The Viking Battle - Part Version: Finnish

Ohjelmoinnin perusteet Y Python


Ohjelmoinnin perusteet Y Python

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Makrojen mystinen maailma lyhyt oppimäärä

Fraktaalit. Fractals. Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto. 1 / 8 R. Kangaslampi Fraktaalit

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

etunimi, sukunimi ja opiskelijanumero ja näillä

Tietorakenteet (syksy 2013)

Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site

Listarakenne (ArrayList-luokka)

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

Ohjelmoinnin peruskurssien laaja oppimäärä

anna minun kertoa let me tell you

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

1. Omat operaatiot 1.1

Ohjelmoinnin peruskurssien laaja oppimäärä

Luku 5. Monadit. 5.1 Siirrännän ongelma

Ohjelmoinnin peruskurssien laaja oppimäärä

Flash ActionScript osa 4

Aloita oman blogisi luominen (järjestelmä lupaa sen tapahtuvan sekunneissa ;-))

Tie Principles of Programming Languages Seminar Essay. Lua. Group 23 Miikka Koskinen Joose Sainio

Tietorakenteet ja algoritmit

Ohjelmoinnin perusteet Y Python

Java-kielen perusteita

TIEA341 Funktio-ohjelmointi 1, kevät 2008

tietueet eri tyyppisiä tietoja saman muuttujan arvoiksi

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

A: What s wrong? A aloittaa. Kuuntele ja auta tarvittaessa. Parisi auttaa tarvittaessa. Sinä aloitat. Sano vuorosanasi englanniksi.

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä

Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Demo 7 ( ) Antti-Juhani Kaijanaho. 9. joulukuuta 2005

Matlabin perusteita Grafiikka

Apuja ohjelmointiin» Yleisiä virheitä

815338A Ohjelmointikielten periaatteet

Mitä funktionaalinen ohjelmointi on

Transkriptio:

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