Publikatsioonide konkursil osalemine Esitan konkursile 2013. aastal valminud kahest osast koosneva veebiprogrammeerimise õpikute komplekti. Kliendipoolsed veebirakendused Õpik: http://minitorn.tlu.ee/~jaagup/oma/too/13/kliendirakendused/kliendirakendused.odt Käivitavad koodinäited, ülesanded ning mitmes vormingus ja õpikupeatükid: http://minitorn.tlu.ee/~jaagup/oma/too/13/kliendirakendused/juht.html Serveripoolsed veebirakendused Õpik: http://minitorn.tlu.ee/~jaagup/oma/too/13/serverirakendused/juht.html Mitmes loetavas vormingus õpikupeatükid: http://minitorn.tlu.ee/~jaagup/oma/too/13/serverirakendused/kogu/serverirakendused.odt Õpikud valmisid ProgeTiigri projekti raames, kus koostati üldhariduskoolidele programmeerimisalaseid õppematerjale. Need on ka sealt lehelt kättesaadavad: http://progetiiger.ee/content/materjalid Sihtgrupid Kliendipoolsete veebirakenduste õpiku juures on otsese sihtgrupina arvestatud kaheksandat klassi, serveripoolsete veebirakenduste juures 11. klassi. Samas on materjalid koostatud nõnda, et neid saab edukalt kasutada ka ülikoolis vastavasisuliste kursuste juures. Kliendipoolsete veebirakenduste õpik katab TLÜ Haapsalu Kolledžile loetava õppeaine HKI5006 Skriptkeeled veebis. Serveripoolsete veebirakenduste õpik katab sama õppekava kursuse HKI5007 Veebirakendused ja nende loomine, samuti moodustab 2/3 Tallinnas õppivate informaatikute kursusest IFI6076 Veebiprogrammeerimine. Katsetamine Materjale katsetati 2013. aasta kevadel ProgeTiigriga liitunud koolides üle Eesti. Suvel viisin tehtud küsimuste ja ettepanekute põhjal sisse komplekti parandusi. Ise nende järgi ülikoolis õpetades kirjutasin juurde keerukama terviku moodustamiseks paar uut peatükki, mis sobivad ka üldhariduskooli tugevamatele õpilastele täiendmaterjaliks. Kasutan õpikuid tundide alusena ka Gustav Adolfi Gümnaasiumi programmeerimisringis ning Reaalkooli programmeerimistunnis. Ülesehitus Programmeerimistunnis on tavaline, et seal osalevate õpilaste taust ning võimekus konkreetse teema suhtes erinevad kordades. Seetõttu olen püüdnud leida moodused, kuidas samast tunnist ja materjalist leiaksid võimalikult palju õppurid omale jõukohast tarkust ja oskusi. Üheks heaks mooduseks on osutunud töötavate koodinäidete põhjal õpetamine, mille juures tekkinud tähelepanekud panin põhjalikumalt kirja ajakirja Arvutustehnika ja Andmetöötlus numbris 04.2002 artklis nimega Koodinäidete roll programmeerimise õpetamisel. Tol korral said tähelepanekud kokku kogutud kolmest Java keele osade tarbeks loodud õpikuks, nüüd on õpikute tehniliseks aluseks veebis laialt levinud ja levikut suurendav Javaskript ning vähemalt kahes kolmandikus veebiserverites tegutsev PHP. Pea iga (alam)peatüki keskmeks on töötav koodinäide, mille seletuste ja täienduste abil siis kasutajale oskuste komplekt luuakse. Lisatud ülesanded on enamasti kolme keerukustasemega, kus esimene samm on võimalik teha vaid olemasolevat koodi veidi kohendades. Teise sammu juures tuleb mõned omadused lisada ja muudest näidetest õpitud oskusi külge haakida. Keerukaima taseme ülesanne eeldab juba enamasti ise algusest peale uue reaalelulisi piiranguid arvestava lahenduse kavandamist, mille juures vahel võimalik olemasolevatest näidetest tuge saada. Õpetamisel saadud kogemused on õigustanud selliste keerukustasemete loomist ja hoidmist. Viimase veerandi õpikutest võtab lahenduste ja täienduste osa, kus ülesande lahenduskäike seletatakse ning näidislahendus luuakse. Tähelepanekud näitavad, et pole põhjust lahenduste liigset maha kirjutamist karta, pigem tasub õppuritel soovitada pärast oma lahenduse loomist ka õpiku taga olevaid kommenteeritud näiteid vaadata. Enamasti pole seal piirdutud lihtsaima lahenduse loomisega, vaid pigem on lahenduse sisse peidetud ka mõned lisavõimalused ja moodused, mille õpiku põhiossa panek oleks selle liialt lohisevaks teinud, kuid mis lisade juures annab sobivat täiendmaterjali. Algselt kaheksanda klassi materjaliks suunatud Kliendipoolsete veebirakenduste õpikul moodustab märgatava osa pedagoogilisest toest õpiku veebilehel olevate töötavate koodinäidete kogu koos juurdekuuluvate ülesannetega. Märgatav osa teismelistest ei ole valmis pikemaid seletavaid tekste vähemasti teemaga kokku puutumise esimesel korral lugema. Küll aga nad saavad suhteliselt hästi hakkama olemasolevate näidete kallal katsetamisega olles valmis konkreetseid lõike juurde lugema, kui see neile põneva lahenduse loomise juures otsest kasu annab. Õpikute sisu Mõlema õpiku puhul keskendutakse lahenduste lihtsale, viisakale ja otstarbeka töölesaamisele ning oma vajadustele ja soovidele kohandamisele. Ilusam ja värvilisem graafiline pool on jäetud ProgeTiigri käigus valminud Merike Heina loodud veebigraafika kursuste hooleks. Kliendipoolsete veebirakenduste juures alustatakse veebilehel töötavatest kalkulaatoritest. Edasi tutvustatakse andmete järgi jooniste loomise võimalusi, hiirele reageerimist programmides, juhitavate animatsioonide/simulatsioonide loomist ning andmetöötlust rakenduse sees. Loodavad lahendused on suurelt jaolt sarnasena võimalik tööle panna ka mobiiliekraanil. Serveripoolsete veebirakenduste juures võetakse algaja jaoks süstemaatiliselt läbi etapid enamkasutatavate lihtsamate veebilahenduste turvaliseks loomiseks. Materjali läbinu võiks suuta mitmesugused ühel salvestataval andmetabelil põhinevad lahendused ka tegelikuks kasutamiseks tööle panna, muuhulgas sealjuures koostada töövoo haldamise lahendusi, kus mitme rolliga ning eraldi asetsevad kasutajad saavad veebi kaudu omi tegemisi kooskõlastada. Erinevalt enamikust välismaa õpikutest kus kaldutakse liigse lihtsustamise ja ilustamise poole mugavama lehestiku loomise nimel või siis just vaadatakse spetsiifiliselt mõnda tehnoloogia alamlõiku, püütakse siin anda kasutajale võimalikult lihtne kuid tegelikkuses kasutatav ja mugavasti täiendatav oskuste komplekt, mille abil toimivaid veebilahendusi luua. Pedagoogika Klassikutele viidates püütakse õpikutes jätta võimalus rakendada Johannes Käisi soovitatud õppemeetodit, kus iga õppur saab ka tunnis liikuda ja areneda talle sobivas tempos kasutades õpiku lahti seletatud näidet ja ülesannet tööjuhendina. Õpetajal on nii kergem tegelda iga õpilase ette tulevate konkreetsemate muredega samas, kui enamik klassist saab juhendi järgi rahus edasi tegutseda ning pärastpoole lahendust üha enam omanäoliseks teha. Selle kohta on Käis avaldanud ka raamatu "Isetegevus ja individuaalne tööviis" Jaagup Kippar jaagup@tlu.ee 56 221 789 TLÜ Informaatika Instituudi programmeerimislektor