30. oktoober 2020

Paarisprogrammeerimine koolitunnis - Mis? Miks? Kuidas?



Mul avanes hiljuti võimalus teha õpilastele umbes neljatunnine programmeerimise õpituba. Õpilased olid vanuses 11-14 eluaastat ja algajad. Programmeerisime Scratchi-laadses keskkonnas, kus programmid pannakse kokku plokkidest. Kasutasin selles õpitoas muude meetodite seas ka paarisprogrammeerimist. Kuigi selle meetodiga olen tuttav juba pikemat aega, siis rakendanud olin seda harva, sest 45-minutilises koolitunnis ei andnud see soovitud tulemust. Õpitoas aga tekib palju mõnusam õhustik ja see oli koht, kus avastasin paarisprogrammeerimise võlu. See töötas just nii, nagu ma ootasin ja andis soovitud tulemuse. Nüüd olen valmis andma paariprogrammeerimisele teise võimaluse ka koolitunnis.

Selles postituses kirjutan paarisprogrammeerimisest ja miks seda üldse programmeerimise õpetamisel kasutama peaks.

Mis on paarisprogrammeerimine?

Paarisprogrammeerimine on tarkvaraarenduses agiilne meetod, kus kaks programmeerijat teevad koostööd programmi loomisel. Üks paarilisest kirjutab koodi ning sel ajal teine paariline vaatab läbi iga sisestatud koodirea. Antud programmeerimistehnika juures on tavapärane, et paarilised vahetavad tihti omavahel rolle. allikas

Läbivaataja rollis oleval paarilisel on strateegiline roll programmi valmimisel, tema ülesandeks on märgata võimalikke veakohti programmis, suunata tegevust ning soovitada ideid. Läbivaataja eesmärgiks on abistada või lihtsustada koodikirjutaja rollis oleva inimese tööd võimalikult palju, et tagada töö efektiivsus. Programmeerija peaks saama keskenduda vaid koodi kirjutamisele, kasutades läbivaatajat kontrollijana ja nõuandjana. allikas

Mulle endale meeldib paarisprogrammeerimist klassis võrrelda rallisõiduga: üks õpilastest on autojuht ja teine on kaardilugeja. Juht on see, kes kasutab hiirt ja klaviatuuri, et programm arvutis valmis kirjutada või plokkidest kokku panna. Kaardilugeja on see, kes juhti juhendab; tal on ees tööjuhend, tööleht või sarnane programm, mille abil suuliste suunistega juhti juhendada. Kaardilugejal ei ole luba autojuhi hiirt ja klaviatuuri kasutada, samamoodi nagu Järveoja ei haara Tänakult rooli, sest sel juhul sõidaks ralliauto kraavi.

Oluline on see, et iga teatud aja tagant (nt 5 minutit) õpilased rolle vahetaksid. Nii toimib see asi ka päris tarkvara arendajate puhul, kuigi nende vahetuste intervall on pikem.

Paarisprogrammeerimise edukuse aluseks on mõlema paarilise oskus oma mõtteid suuliselt väljendada, nagu ka hea suhtlemisoskus laiemalt. 

Paarisprogrammeerimisest saadav kasu

  • Paaris töötavad õpilased saavad üksteiselt õppida.
  • Lahenduse saab paarilisega läbi arutada ning tulemuseni võib seetõttu jõuda kiiremini.
  • Vigu märgatakse varem, sest koodi jälgib ühe inimese asemel kaks.
  • Parem tulemus ehk kood, sest kaks pead on ikka kaks pead. 
  • Arenevad sotsiaalsed oskused ja eneseväljendusoskus - mõlemad on olulised oskused hilisemas (töö)elus.
  • Õpilased loodavad rohkem teineteise peale kui õpetaja abile - väheneb õpetaja koormus õpilaste abistamisel.

Klassiruumis paarisprogrammeerimise tõhusa rakendamise kasulikkus

  • Õpilased on tegevusse rohkem kaasatud ja nad naudivad ülesande lahendamist suremal määral - seda kinnitavad mitmed uuringud.
  • On samuti tõestatud, et paarisprogrammeerimine tõstab õpilase enesekindlust ja kasvatab õpilase huvi õppeaine vastu.
  • Vähendab õpilaste kognitiivset koormust, sest tänu rollide jaotamisele ei pea töömälus hoidma kõiki programmi koostamiseks vajalikke elemente, vaid ainult neid, mida on vaja oma rolli täitmiseks. Teisisõnu peab õpilane jagama oma tähelepanu väiksema hulga elementide vahel. allikas

Mida paarisprogrammeerimise puhul silmas pidada?

Paarisprogrammeerimine on oskus, mida tuleb õppida. Seega alguses vajavad õpilased juhendamist ja suunamist ja ka kiitust, selleks et sellest meetodist saaks õpilase jaoks harjumus. Samuti tuleb kasuks, kui paaristööd harjutada teiste õppeainete tundides, kus saab kasutada samasid paaristöö põhimõtteid kui programmeerimisel. allikas

Õpetaja peab läbi mõtlema, kuidas moodustatakse õpilastest paarid või mis on paaride moodustamise aluseks - suhted (sõbrad omavahel paaris), oskused (sarnaste oskustega töötavad koos) või midagi muud. Või kes üldse paarid otsustab - õpetaja või õpilased ise? allikas

Üks paarisprogrammeerimise hirme on see, et üks paariline teeb teise eest kogu töö ära. See võib juhtuda, kui paarid ei ole hästi moodustatud, kuid sarnaste oskustega õpilaste puhul seda tavaliselt ei juhtu. Võrdsele panustamisele aitab kaasa ka see, et õpilased vahetavad rolle. Hindamisel oleks mõistlik mitte arvestada ainult programmi ehk tulemust, vaid hinnata kogu protsessi. allikas

Leidub õpilasi, kes ei soovi kellegi teisega koos töötada. Kuigi õpetaja ülesandeks on teda suunata ja julgustada koostööle kaasõpilasega, siis lõpuks võib osutuda õigeks austada tema soovi ja lubada sel õpilasel üksi töötada. allikas

Paarisprogrammeerimist tutvustav video

Kui soovid õpilastele paarisprogrammeerimist tutvustada, siis sissejuhatuseks võib kasutada seda code.org videot (inglise keeles):

Jälgi KristiProget ka Facebookis.