perjantai 29. elokuuta 2014

Koodauksen ABC: 2. oppitunti

Toisella tunnilla jatkoimme kuvien piirtelyä. Kertasimme aluksi miten niitä kuvioita oikein tehtiinkään ja sitten kävin läpi muutaman uuden kuvien käsittelyä helpottavan funktion: rotate, flip-vertical, flip-horizontal, scale ja  overlay/align. Sitten opetin miten define toimii ja miten sen avulla saadaan jaettua koodia helpommin luettaviin paloihin. Vinkkasin myös, että definellä olisi hyvä määritellä kaikki numerovakiot (kuten SÄDE), ettei tule käyttäneeksi "maagisia numeroita".

Tämän jälkeen oppilaat saivat tehtäväksi koodata pacman - hahmot, jotka katsovat oikealle, vasemmalle, ylös ja alas. Ja toden totta sellaiset saimme aikaan!! Osalla pacmanejä oli jopa hienot silmät!

2. tunnin koodaushaasteet
Huomasin myös, että vasta nyt kun otimme  määrittelyt eli define:t käyttöön, oppilaille avautui DrRacketin  definitions area:n ja interactions area:n ero. Määrittelyt kirjoitetaan yläikkunaan ja painetaan "run". Nyt koodia voi testata kirjoittamalla määrittelyssä annettu nimi alempaan ikkunaan ja painamalla <enter>.
DrRacketin ylempi (definitions area) ja alempi (interactions area) ikkuna.
Tunnin jälkeen tajusin, että olen pikkuhiljaa löytämässä sen ohjelmoinnin opettamisen "punaisen langan". Ensinnäkin on erittäin tärkeää, että oppilas ymmärtää jokaisen kirjoittamansa koodirivin merkityksen. Kukaan ei opi koodaamaan kopioimalla valmiita esimerkkejä. Oppitunnit ovat rakentuneet tähän asti niin, että edellisen tunnin asia kerrataan, sitten opetan jonkin uuden käsitteen ja kokeilemme sen toimintaa yhdessä ja sitten heitän oppilaille koodaushaasteen, jonka he ratkaisevat itse käyttämällä sitä tietoa mitä heillä on. Näin jokaisen oppilaan koodi on erilainen, ja lopputulos muistuttaa enemmän tai vähemmän haasteen tehtävänantoa. Nyt ryhmäni oppilailla on jokaisella hieman eri väriset, eri kokoiset ja eri nimiset pacmanit. Toiset on käännetty pelkkällä rotate funktiolla, toiset flip-vertical:lla ja flip-horizontal:lla. Yksi oppilas halusi hieman eksoottisemman värin, joten hänellä on koodissaan käytössä myös make-color. Ensiviikolla yritämme saada pacmanit liikkumaan ja sen jälkeen tottelemaan näppäinkomentoja. Hauskinta tässä on se, että en ole itsekään koskaan koodannut pacman-peliä, joten tällä hetkellä en vielä tiedä mikä on lopputulos.

Tässä rautalankaohjeet kakkosoppitunnin asioista:









Lopputunnista nopeimmat kokeilivat myös asetella pacmania scene:lle. Tässä tarvittiinkin juuri scale - funktiota. Tosin yksi oppilas tajusi ihan itse, että sehän onnistuu myös muuttamalla SÄDE-vakion arvoa. Jotain on siis mennyt perille.
Liikutelta hahmo sijoitetaan "scenelle". Tälle annoimme definellä nimen KENTTÄ.

Pacman aseteltiin kentälle "place-image"-funktiolla.

Ei kommentteja:

Lähetä kommentti