Peli olio-ohjelmoinnin havainnollistajana
Oja, Aleksi (2017-09-19)
Peli olio-ohjelmoinnin havainnollistajana
Oja, Aleksi
(19.09.2017)
Tätä artikkelia/julkaisua ei ole tallennettu UTUPubiin. Julkaisun tiedoissa voi kuitenkin olla linkki toisaalle tallennettuun artikkeliin / julkaisuun.
Turun yliopisto
Tiivistelmä
Tässä diplomityössä etsitään käytännöllistä ratkaisuaolio-ohjelmoinnin havainnollistamiseen aloittelevalle tai vasta alkavalle ohjelmoinnin oppijalle. Vaikka olio-paradigma on ollut olemassajo yli puolen vuosisadan ajan, on sen opettaminen ja varsinkin havainnollistaminen opetuksen alkuvaiheessa yhä haasteellista. Koska olio-paradigma on hyvin yleisesti käytössä ohjelmistoteollisuudessa, herää kysymys, tulisiko olio-ohjelmointia opettaa uusille ohjelmoinnin opiskelijoille –tai jopa lapsille peruskoulussa –aivan ensimmäiseksi.Koska olio-orientoitunut ohjelmisto muodostaa tavallaan simulaation ympäröivästä todellisuudesta, saattaa olioajattelutarjota jopa helpoiten lähestyttävän ensimmäisen tarttumapinnan ohjelmointiin.
Suurin ongelma uudelle ohjelmoinnin oppijalleeiolio-ohjelmoinnissa siis lieneasian ymmärtäminen korkealla abstraktiotasolla, vaan pikemminkin käytännön vuorovaikuttaminen olioiden kanssa: siis olio-paradigman soveltaminen käytännön koodaamiseen.Tämä johtuu siitä, että olioiden luominen ja niiden saaminen ”keskustelemaan keskenään”vaatiijo monenlaisia ohjelmointitaitoja.
Ratkaisuksi olio-ohjelmoinnin havainnollistamiseen noviiseille, esitetään tässä diplomityössä tieteishenkinen yksinkertainen peli Quantumwind Transport, jossa pelaaja komentaa avaruusaluksia Java-ohjelmointikielen syntaksia muistuttavalla notaatiolla. Havainnollistuksen kohteena onsellaisia olio-paradigmaan liittyviäalkeellisiaasioita kuin luokan ja olion ero, vuorovaikutus olion kanssa japeriytyminen. Lopuksi tässä diplomityössä esitellään Quantumwind Transport pelin pohjalta ideoitu, fyysisessä tilassa toimiva oppimisjärjestelmä tai -ympäristö, jolla on mahdollista pelata Quantumwind Transport -pelin kaltaista peliä, mutta myös monia muita pelejä. This thesis tries to find a practical solution for difficulties in teaching object-oriented programming for beginners. Although object oriented paradigm has been among us over a half century is teaching objects still a challenge. Because object oriented programming is de facto standard in best part of everyday industrial software development, the question rises if objects should be taught first, even before imperative programming. From some point of view, objects are a simulation of the surrounding world, so at least somehow the paradigm might be even more easily understandable than other programming schemes.
The main problem to tackle is the difficulty for a total beginner in programming to start interacting with objects. That is because creating runtime objects and making them “discuss” is a result of a process, which already requires quite a lot of programming skills.
The solution presented in this thesis is a simple science fiction game The Quantumwind Transport. The Quantumwind Transport lets the player to use a Java-like object oriented notation for gaming purposes. Player creates and controls spaceships with console commands and runs intergalactic commerce. The Quantumwind Transport tries also to demonstrate inheritance mechanism between classes and the difference between a class and an object.
At the end of this thesis an idea of a physical abstraction of the Quantumwind Transport is introduced. That is a cyber physical learning environment which can be harnessed during classroom sessions. This system is capable of implementing the Quantumwind Transport ported to an intelligent physical medium and also running many other games and demonstrations.
Suurin ongelma uudelle ohjelmoinnin oppijalleeiolio-ohjelmoinnissa siis lieneasian ymmärtäminen korkealla abstraktiotasolla, vaan pikemminkin käytännön vuorovaikuttaminen olioiden kanssa: siis olio-paradigman soveltaminen käytännön koodaamiseen.Tämä johtuu siitä, että olioiden luominen ja niiden saaminen ”keskustelemaan keskenään”vaatiijo monenlaisia ohjelmointitaitoja.
Ratkaisuksi olio-ohjelmoinnin havainnollistamiseen noviiseille, esitetään tässä diplomityössä tieteishenkinen yksinkertainen peli Quantumwind Transport, jossa pelaaja komentaa avaruusaluksia Java-ohjelmointikielen syntaksia muistuttavalla notaatiolla. Havainnollistuksen kohteena onsellaisia olio-paradigmaan liittyviäalkeellisiaasioita kuin luokan ja olion ero, vuorovaikutus olion kanssa japeriytyminen. Lopuksi tässä diplomityössä esitellään Quantumwind Transport pelin pohjalta ideoitu, fyysisessä tilassa toimiva oppimisjärjestelmä tai -ympäristö, jolla on mahdollista pelata Quantumwind Transport -pelin kaltaista peliä, mutta myös monia muita pelejä.
The main problem to tackle is the difficulty for a total beginner in programming to start interacting with objects. That is because creating runtime objects and making them “discuss” is a result of a process, which already requires quite a lot of programming skills.
The solution presented in this thesis is a simple science fiction game The Quantumwind Transport. The Quantumwind Transport lets the player to use a Java-like object oriented notation for gaming purposes. Player creates and controls spaceships with console commands and runs intergalactic commerce. The Quantumwind Transport tries also to demonstrate inheritance mechanism between classes and the difference between a class and an object.
At the end of this thesis an idea of a physical abstraction of the Quantumwind Transport is introduced. That is a cyber physical learning environment which can be harnessed during classroom sessions. This system is capable of implementing the Quantumwind Transport ported to an intelligent physical medium and also running many other games and demonstrations.