Pair programming: more than just working together in pairs. | Mentz | Suid-Afrikaanse Tydskrif vir Natuurwetenskap en Tegnologie
Home ▶ Vol 31, No 1 (2012) ▶	Mentz
1Faculty of Education Sciences, North-West University, Potchefstroom Campus, South Africa
Mentz, E., 2012, ‘Paarprogrammering: Meer as net saamwerk in pare’, Suid-Afrikaanse Tydskrif vir Natuurwetenskap en Tegnologie 31(1), Art. #32, 9 pages. http://dx.doi.org/10.4102/
• Die ontstaan en toepassing van paarprogrammering in die industrie
• Paarprogrammering in die onderrig-leersituasie
• Die sosiaal-konstruktiwistiese benadering tot paarprogrammering
• Ko�peratiewe leer versus samewerkende leer
• Waar pas paarprogrammering dan in?
• Verhoogde leerwins gelewer met behulp van paarprogrammering binne ko�peratiewe leerkonteks
Paarprogrammering het in die industrie ontstaan waar die fokus op die ontwikkeling van programme teen die mees koste- en tyd-effektiewe wyse binne die raamwerk van kwaliteit behoort plaas te vind. Die klem is in hierdie konteks geplaas op die feit dat ’n bepaalde programkode nie deur een persoon alleen ontwikkel behoort te word nie, maar dat twee persone mekaar kan bystaan om ’n beter programkode te skryf, en mekaar ook kan aanspoor om vinniger te werk. Die probleem met hierdie benadering was egter dat beginner-programmeerders in die industrie nie vooraf op tersiêre vlak genoegsaam met sosiale vaardighede bemagtig is om saam te werk aan programkode nie. Die eise van die industrie, veral die sterker nadruk op samewerking in programmering, het meegebring dat paarprogrammering in die laat negentigerjare ook in die tersiêre opleiding van programmeerders veld begin wen het. Die pedagogiese beginsels waarop enige onderrig-leerstrategie gebou moes word, is in hierdie proses egter grootliks oor die hoof gesien. Hierdie artikel doen eerstens verslag oor ’n ondersoek rakende die semantiese en ontologiese onderskeid tussen koöperatiewe (co-operative) en samewerkende (collaborative) leer, en tweedens dat paarprogrammering, binne die konteks van ’n sosiaal-konstruktiwistiese benadering tot onderrig en leer as ’n samewerkende onderrig-leer strategie beskou kan word. Paarprogrammering is méér as bloot om twee leerders en/of studente saam aan ’n opdrag of programmeertaak te laat werk. Die meer gestruktureerde wyse, waarop paarprogrammering geïmplementeer moet word, stem ooreen met die beginsels van koöperatiewe leer. Daar word tot die gevolgtrekking gekom dat die korrekte pedagogiese toepassing van paarprogrammering as koöperatiewe onder-leerstrategie in tersiêre onderwys leerwins binne die onderrig-leersituasie verhoog.
Pair programming: more than just working together in pairs. Pair programming originated in the industry where focus is placed on the development of a programme at the most cost- and time-effective manner, and within the parameters of quality. In this context, a specific programming code is not developed individually; rather, two people work together in order to ensure a higher quality programming code and to motivate each other to work at a faster pace. The problem with this approach was that novice programmers lacked the social skills to work in pairs as they had not been exposed to this sufficiently at tertiary level. The demand of the industry, especially in terms of programmers needing to be able to programme together, led to the incorporation of pair programming at tertiary level in the late nineties. The pedagogical principles on which any teaching-learning strategy should be built were, however, largely overlooked during this process. This article firstly looks into the semantic and ontological differences between co-operative and collaborative learning and secondly argues that pair programming, within the context of a social constructivist approach to teaching and learning, can be seen as a co-operative teaching-learning strategy. Pair programming is more than just allowing two students to work together on a programming task. The more structured way, in which pair programming needs to be implemented, concur with the principles of co-operative learning. The article concludes that the correct pedagogical application of pair programming as a co-operative teaching-learning strategy in tertiary education will result in improved learning capital.
Die aanleer van programmeringsvaardighede word gewoonlik as ’n komplekse taak beskou. Dit is gerig op die vermoë om probleme in ’n komplekse omgewing op te los en vereis ’n groot mate van kreatiwiteit, besluitneming, probleemoplossings- en hoëvlak-denkvaardighede. Hoë kognitiewe eise word gevolglik aan die uitvoering van ’n programmeeropdrag gestel (Balijepally et al. 2009). Die ingewikkeldheid daarvan word bewys deur die feit dat tussen 30% en 60% van alle eerstejaar-innames in inleidende programmering by universiteite wêreldwyd die module druip (Dehnadi & Bornat 2006). Die onderrig van programmeringsvaardighede is eweneens ’n komplekse studieterrein. In die onderrig daarvan op tersiêre vlak is meestal aanvaar dat programmeringsvaardighede individueel aangeleer moet word. Daar is aanvaar dat samewerking met betrekking tot die skryf van ’n program oneerlik is en daarop dui dat die nodige programmeringsvaardighede nie individueel bereik is of kan word nie (Williams et al. 2002; Berenson et al. 2004). Gevolglik word daar dikwels in inleidende programmeringskursusse van studente verwag om alleen te programmeer en sodoende te toon dat hulle die vaardigheid bemeester het. Die resultaat hiervan is dat hulle leer om goeie individuele programmeerders te wees, maar nie noodwendig om aan ’n programmeertaak te kan saamwerk nie.
Dit is ’n antropologiese gegewe dat die mens onder meer ’n sosiale wese is. Volgens Adolphs (2003) definieer die mens se sosiale aard presies dit wat van hom of haar mens maak. In aansluiting hierby stel die sosiaal-konstruktiwistiese benadering tot leer dat die individu betekenis heg aan kennis deur hul interaksie met ander en met die omgewing (Kim 2001), en daarmee word die plek en rol van ander in die leerhandeling beklemtoon. Konsepte wat andersins nie deur die individu alléén ontdek of begryp sou kon word nie kan wel, met die hulp van ander wat die vaardigheid of kennis reeds bekom het, ontdek of bemeester word (Gordon 2009).
Die doel van hierdie artikel is om paarprogrammering pedagogies te verantwoord as ’n koöperatiewe onderrig-leerstrategie wat in ’n onderwysomgewing gevolglik méér behels as net om twee leerders en/of studente saam aan ’n opdrag of programmeertaak te laat werk. Om hierdie doel te bereik is die artikel soos volg gestruktureer. Eerstens word kortliks verwys na die ontstaan en toepassing van paarprogrammering as onderrig-leerstrategie. Dit word opgevolg deur ’n beredenering van paarprogrammering as ’n sosiaal-konstruktiwistiese benadering in die koöperatiewe leerteorie. Hierna volg ’n bespreking van koöperatiewe teenoor samewerkende leer en ’n betoog dat paarprogrammering eerder ’n koöperatiewe leerstrategie as ’n samewerkende leerstrategie is. Die artikel word afgesluit met die gevolgtrekking wat verband hou met die hierbo gestelde doel van die artikel.
Daar is gebruik gemaak van die volgende ondersoekmetodes:
Met behulp van ’n interpretiwisties-heuristiese benadering
(Metcalfe 2005) is ’n verklaringsmodel van paarprogrammering as ’n onderrig-leerstrategie ontwikkel. Die riglyne van hierdie implisiete model is gevolg in die ontplooiing van die argument wat hierna volg.
Die sleutelkonsepte van hierdie artikel is paarprogrammering, koöperatiewe leer, samewerkende leer, programmeringsvaardighede en pedagogiese beginsels. Dit is ’n besinnende artikel en beweeg dus in sy geheel op konseptueel-teoretiese terrein. Die konseptueel-teoretiese grondslae van die besinning word vervolgens uiteengesit en fokus op die ontstaan en toepassing van paarprogramering in die industrie; paarprogrammering in die onderrig-leersituasie; die sosiaal-konstruktiwistiese benadering tot paarprogrammering; en paarprogrammering as koöperatiewe leerstrategie vs samewerkende leerstrategie.
Die ontstaan en toepassing van paarprogrammering in die industrie
Een van die metodologieë van moderne sagteware-ontwikkeling wat gedurende die afgelope aantal jare in die industrie veld gewen het, is Extreme Programming (Conboy & Fitzgerald 2010). Een van die 12 primêre praktyke wat hierdie benadering kenmerk, is paarprogrammering (Beck & Fowler 2000; Beck & Andres 2004). Erdogmus en Williams (2003) beskryf paarprogrammering as ’n praktyk waarby twee programmeerders sy aan sy op een rekenaar aan een ontwerp, algoritme en kode saamwerk en die ontfouting en toetsing saam uitvoer. Elke ontwerper het ’n bepaalde rol. Die drywer tik die kode op die rekenaar in en die navigator is die strategiese denker wat kontroleer dat hulle op die regte pad bly met die oplos van die probleem. Die rolle kan voortdurend omgeruil word en so ook die persone met wie saamgewerk word na gelang van die spesifieke taak en bekwaamhede van die programmeerders (Braught, Wahls & Eby 2011). Programmeerders werk nie noodwendig altyd saam met dieselfde persoon nie, dog werk hulle gewoonlik minstens vir ’n dag of twee lank met ’n bepaalde persoon saam aan ’n taak (Bryant, Du Boulay & Romero 2006). Erdogmus en Williams (2003) het met hul navorsing getoon dat paarprogrammering ’n ekonomies lewensvatbare alternatief tot individuele programmering in die industrie is. Volgens hulle produseer pare kodes van ’n hoër gehalte en beskik pare oor hoër doeltreffendheid en produktiwiteit as ’n enkeling. Die grootste nadeel wat hulle geïdentifiseer het, is dat programmeerders weerstand daarteen bied omdat hulle eerder alleen wil werk of nie daaraan gewoond is om met ander saam te werk nie. Begel en Nagappan (2008) bevestig, in ’n omvattende studie van die belangrikste voor- en nadele van paarprogrammering in die industrie, die navorsing van Erdogmus en William (2003) deur aan te toon dat paarprogrammering kode van ’n hoër gehalte met minder foute daarin oplewer. Hulle wys egter ook op nadele van paarprogrammering, waaronder skeduleringsprobleme, persoonlikheidsbotsings en swak kommunikasie. Hoewel die nadele van paarprogrammering as ’n programmeringstegniek soos dit in die industrie toegepas word wel in die literatuur bespreek word, word ook aanvaar dat dit ekonomiese voordele vir die maatskappy kan inhou. Vandaar die implementering daarvan in die bedryf.
Programmering in die industrie het gaandeweg grootliks verskuif van ’n individuele aangeleentheid na ’n spanpoging waar programmeerders roteer en twee-twee saam ’n gedeelte van ’n program skryf. Die eise wat dit onder meer aan ’n programmeerder stel met betrekking tot sosiale vaardighede het groter druk op tersiêre opleidingsinstansies geplaas om nie net programmeerders vir die industrie af te lewer wat oor die vaardighede beskik om ’n program te kan skryf nie, maar wat ook oor die sosiale vaardighede beskik om met ander te kan saamwerk. Werkgewers verwag van tersiêre opleidingsinstansies om studente (op) te lei om hierdie vaardighede te bemeester (Hogarth 2008). Dit is hoe paarprogrammering as onderrig-leerstrategie aan tersiêre opleidingsinstansies tereg gekom het. Hierdie toedrag van sake aan tersiêre opleidingsinstansies is dus aanvanklik aangevuur deur die eise van die industriële praktyk en nie noodwendig deur die eise van goeie opvoedkundige beginsels nie. Die effektiewe aanleer van programmeringsvaardighede is nie aanvanklik beskou as die doel met die implementering van paarprogrammering nie, maar as ’n onderrigstrategie om in die behoefte van die industriële praktyk met betrekking tot sosiale samewerking by die ontwikkeling van sagteware te voorsien. Op samelewingsteoretiese gronde behoort daar egter ’n onderskeid getref te word tussen paarprogrammering as programmeringstegniek in die industrie (ekonomies gekwalifiseer) en paarprogrammering as onderrig-leerstrategie aan tersiêre opleidingsinstansies (logies-analities en pedagogies gekwalifiseer).
Paarprogrammering in die onderrig-leersituasie
Volgens Williams et al. (2002) en Cliburn (2003) is paarprogrammering as onderrig-leerstrategie die saamwerk van twee leerders en/of studente by een rekenaar aan een programmeertaak en die gesamentlike skryf en toets van die kode. Albei is dus aktief besig om aan dieselfde probleem te werk, maar elkeen vervul ’n bepaalde rol. Sterker klem word geplaas op die rol van drywer en navigator en die noukeurige uitvoering van elkeen van die rolle as wat die geval in die industrie is (Williams et al. 2008). Eersgenoemde hanteer die pen in die beplanning van die algoritme en ook die sleutelbord wanneer die kode ingesleutel word. Laasgenoemde dui rigting aan deur probleemoplossingstrategieë voor te stel, die werk van die drywer te kontroleer, bronne te raadpleeg en alternatiewe te genereer om die probleem op te los (Williams et al. 2002). Die twee moet ook gereeld rolle omruil sodat albei al die vaardighede kan bemeester (Cliburn 2003).
Namate paarprogrammering in die tersiêre onderwys veld gewen het, is vasgestel dat dit sekere nadele inhou. Williams et al. (2002) was bekommerd dat die swakker student of minder gemotiveerde student sal toelaat dat hul maat al die werk doen. In ’n poging om die probleem te oorkom stel hulle portuurassesseringstrategieë voor. Hulle het ook begin om die rol van die dosent en/of onderwyser duideliker te omskryf, naamlik dat hy of sy verseker dat paarprogrammering reg toegepas word en dat die twee programmeerders gereeld rolle omruil. Hulle het bevind dat paarprogrammering beter resultate in ’n beheerde omgewing soos in klasverband oplewer. Ook Cliburn (2003) rapporteer net ’n jaar daarna dat hy agtergekom het dat die pare in baie gevalle nie goed saamgewerk het nie en dat een dikwels al die werk gedoen het. Volgens hom is daar nie ’n waarneembare verbetering in die studente se programmeringsvermoë tydens die aanvanklike implementering van paarprogrammering nie. Hy beskryf hoe hy maniere gesoek het om te voorkom dat een op die ander se rug ry. Hy het bevind dat portuurassessering meebring dat studente nie meer op mekaar se rug ry nie. In 2008 publiseer Williams et al. (2008) 11 riglyne vir suksesvolle paarprogrammering in die klaskamer. In hierdie publikasie verklaar hulle dat hulle bevindings pragmaties voortspruit uit hul direkte ervaring van paarprogrammering in die klaskamer. Hulle bevindinge is dus nie noodwendig gegrond op erkende opvoedkundige beginsels van samewerking nie.
Ten spyte van die aanvanklike ontoereikende opvoedkundige begronding van paarprogrammering hou dit as onderrigstrategie verskeie voordele in. Van die voordele is die verbetering van akademiese prestasie en deurvloeisyfers in programmeringsmodules (Nagappan et al. 2003), programme van ’n beter gehalte met minder foute daarin (McDowell, Hanks & Werner 2003), beter begrip van die programmeringsproses en beter verstaan van konsepte wat in programmering gebruik word (DeClue 2003; Howard et al. 2009), verhoogde motivering en selfvertroue sowel as verminderde frustrasievlakke (Williams et al. 2000; Cliburn 2003; Chaparro et al. 2005). Studente dui voorts aan dat een van die grootste voordele van paarprogrammering die feit is dat dit hulle in staat stel om deurlopend vrae te stel en onmiddellik antwoorde daarop te kry namate hulle met die probleem vorder sonder om vir ’n dosent te moet wag om hand by te sit. Hierdie werkswyse help hulle om duidelikheid te kry oor moeilike konsepte en gevolglik bevorder dit konseptuele kennis (Ferzli, Wiebe & Williams 2002). Deur saam te werk deel studente mekaar se sterkpunte en vul mekaar se swakpunte aan. Nagappan et al. (2003) het ook bevind dat die gehalte van die vrae wat studente gedurende paarprogrammering stel, op ’n hoër vlak lê as dié van studente wat individueel werk. Studente wat alleen programmeer, stel meer dikwels laerorde-vrae gerig op sintaksfoute en basiese programmeringstegnieke teenoor studente wat in pare werk wat meer geneig is om vrae te stel oor hoe aangeleerde vaardighede in nuwe situasies toegepas kan word of hoe hulle ’n program wat reeds foutloos loop, verder kan verbeter. Die belangrikste voordele wat uit die literatuur na vore kom, lê egter meestal op die kognitiewe vlak (Hanks et al. 2011).
’n Aantal nadele word ook in die literatuur genoem (Hanks et al. 2011) wat daartoe kan lei dat dosente en/of onderwysers huiwerig is om paarprogrammering toe te pas. Die belangrikste hiervan raak die verhoudings tussen die pare wat saamwerk. Soos reeds uitgewys, word daar dikwels gekla dat een student en/of leerder op ’n ander se rug ry en daar nie met sekerheid gesê kan word dat albei die vaardighede bemeester het nie. Dit kan wees dat die een die ander oorheers en eintlik albei rolle vervul, of dit kan wees dat een van die twee nie betrokke genoeg is by die proses nie en nogtans voordeel trek uit die voltooide opdrag (Williams et al. 2002; Cliburn 2003; McDowell et al. 2003). Dan bestaan daar verder die moontlikheid dat pare nie goed sal kan saamwerk nie as gevolg van onversoenbare persoonlikheidseienskappe of bloot as gevolg van die feit dat sekere studente so individualisties of prestasiegeoriënteerd is dat hulle nie met ander kan of wil saamwerk nie (Williams & Upchurch 2001). Wanneer paarprogrammering buite klasverband geskeduleer word, tree oorwegings soos beskikbare tyd vir die paar om saam te werk (VandeGrift 2004), vervoerprobleme en beskikbare toerusting op die voorgrond.
Die probleme met paarprogrammering staaf die stelling dat daar met die aanvanklike implementering daarvan as onderrigstrategie aan tersiêre onderwysinstansies nie voldoende aandag geskenk is aan die opvoedkundige beginsels wat dit behoort te onderlê nie. Paarprogrammering is suiwer uit die praktyk van die industrie oorgeneem sonder dat daar deeglik oor opvoedkundige beginsels vir die toepassing daarvan in die onderrigsituasie besin is nie.
Vervolgens word paarprogrammering begrond vanuit ’n sosiaal-konstruktiwistiese siening van leer, en aangedui hoe die beginsels van effektiewe koöperatiewe leer in die toepassing van paarprogrammering die nadele daarvan kan beperk. In die proses word die aandag telkens gevestig op die dieperliggende opvoedkundige beginsel dat paarprogrammering ten diepste toerustend van aard behoort te wees, naamlik gerig op die ontwikkeling van die totale student en/of leerder en nie slegs hul programmeringsvaardighede nie. Die student en/of leerder behoort bekwaam gemaak te word vir hul toekomstige beroep (as toekomstige programmeerder) en roeping (lewenstaak). Met die oog hierop tree die dosent en/of onderwyser op as leier, gids, toeruster, instaatsteller en ‘ontvouer’ van die student en/of leerders se potensiaal. Die verdere bespreking van paarprogrammering moet teen hierdie pedagogiese beginselagtergrond beoordeel word.
Die sosiaal-konstruktiwistiese benadering tot paarprogrammering
John Dewey het reeds in 1916 klem gelê op sosiale interaksie as primêre bron van onderrig (Lutz & Huitt 2004). Onderrig moet gerig wees op die leerder en/of student se sosiale ontwikkeling, wat onder meer deur interpersoonlike kommunikasie en groepwerk bevorder kan word. Leerders en/of studente moet deur hul interaksie met mekaar terugvoer ontvang oor hul aktiwiteite en terselfdertyd sosiaal aanvaarbare gedrag aanleer (Gillies & Ashman 2003). Ook Vygotsky se sosiale-ontwikkelingsteorie stel dat sosiale interaksie ’n belangrike rol speel by die kognitiewe ontwikkeling van die leerder en/of student ten opsigte van wat geleer word en wanneer sowel as hoe die leer plaasvind. Kinders leer deur interaksie met volwassenes en ander bevoegde medeleerders wat hulle in staat stel om take te voltooi wat hulle nie op eie houtjie sou kon uitvoer nie. Leer en ontwikkeling is volgens hom ingebed in ’n bepaalde sosiale en kulturele konteks en hierdie konteks het gevolglik ’n groot impak op hoe kinders leer (Vygotsky 1978).
Een van die aannames van die sosiaal-konstruktiwistiese benadering is dat individue begrip en betekenis heg aan kennis deur interaksie met ander en hulle omgewing (Kim 2001). King (2002) bevestig dat leerders en/of studente wat in interaksie met mekaar verkeer die geleentheid het om hul denke en redenasie- en probleemoplossingsvaardighede op mekaar te modelleer en terugvoer te ontvang, wat weer tot nuwe begrip, kennis en vaardighede lei. Wanneer leerders en/of studente hul opvattings aan mekaar moet verduidelik, word hulle gedwing om hulle eie begrip te herorganiseer sodat hulle verduidelikings maklik kan begryp (Gilles & Ashman 2003). Nuwe kennis kan dus gevorm word deur middel van sosiale interaksie en deur die aanwending van vorige kennis (Alexandrov & Ramirez-Velarde 2006). Daarom beklemtoon die sosiaal-konstruktiwistiese siening van leer onder meer die rol van andere in die leerhandeling en stel dat die mees optimale leeromgewing een is waarin ’n dinamiese interaksie tussen die onderwyser en/of dosent, leerders en/of studente en taak bestaan en daar geleentheid vir leerders en/of studente bestaan om hul eie kennis en vertolkings te konstrueer, te ontwerp en te ontdek deur interaksie met ander en die wêreld (Derry 1999). Gay et al. (2001) beklemtoon ook die belangrikheid daarvan dat verwerfde begrip met ander gedeel moet word. Volgens die sosiaal-konstruktiwistiese leerbenadering lei die samewerking tussen die student en/of leerders daartoe dat hulle (onder andere) van mekaar leer (Chaparro et al. 2005). Hierdie sosiale interaksie is opvoedend van aard aangesien dit tot die opbou, vorming en toenemende volwassenheid van die betrokke student en/of leerders lei.
Die beginsels van paarprogrammering vloei direk voort uit die sosiaal-konstruktiwistiese benadering tot onderrig en leer: interaksie met ander lei tot aktiewe verwerking van inligting en verandering in die individuele kognitiewe strukture (Veenman et al. 2005).
Die toenemende gebruik van koöperatieweleer-praktyke is gebaseer op die beginsels wat Vygotsky en ander sosiaal-konstruktiwiste ontwikkel het, naamlik dat die onderwyser en/of dosent in ag moet neem wat student en/of leerders met die hulp van hul maats kan bereik. Onderrigmodelle gebaseer op die sosiaal-konstruktiwistiese perspektief, soos koöperatiewe leer wat die samewerking van student en/of leerders veronderstel, is ook pedagogies regverdigbaar omdat dit die sosiale ontwikkeling van die student en/of leerders stimuleer.
Koöperatiewe leer versus samewerkende leer
Koöperatiewe leer word gedefinieer as die onderwysgerigte gebruik van klein groepe ten einde student en/of leerders in staat te stel om saam te werk om hul eie en die ander se leer te optimaliseer. Hierdie vorm van leer kom neer op samewerking om ’n gesamentlike doel te bereik (Johnson & Johnson 2009). Die uitkoms van die samewerking moet tot voordeel van die individu en die groep as geheel strek (Johnson & Johnson 2006). Johnson en Johnson (1994) het reeds twee dekades gelede vyf belangrike eienskappe vir effektiewe toepassings van koöperatiewe leer in die onderrigleersituasie voorgestel wat vandag nog deur navorsers in koöperatiewe leer erken en gebruik word, naamlik:
•	Positiewe interafhanklikheid: Dit is die sogenaamde sink of swem saam-benadering wat aandui dat die individu nie op hul eie die doel kan bereik tensy die groep die doel bereik nie; die besef dat elke individu ’n unieke bydrae het om tot die bereiking van die groep se doelwitte te lewer. Positiewe doel-interafhanklikheid ontstaan wanneer die groep verenig is rondom die gemeenskaplike doelwitte wat vir hulle gestel is. Groeplede moet besef dat die insette van die individu tot voordeel van die groep strek en omgekeerd. As elkeen hulo rol en verantwoordelikheid binne die groep besef en uitvoer, ontstaan positiewe rol-interafhanklikheid, wat ’n bepaalde verbintenis tot die gemeenskaplike welslae vir elkeen tot gevolg het, waar bronne gedeel, ondersteuning aan mekaar verleen en welslae saam gevier word. Daar moet doelbewus gepoog word om hierdie ingesteldheid in koöperatiewe leer tuis te bring; dit behoort deel uit te maak van die onderwyser en/of dosent se beplanning van ’n koöperatiewe leersituasie. Dit kan onder meer gedoen word deur duidelike doelwitte te stel, deur bepaalde rolle aan elkeen in die groep toe te ken en deur die individuele insette van elke groeplid tot die uiteindelike uitkoms in berekening te bring. Positiewe interafhanklikheid het ’n effek op die individu se motivering sowel as op die produktiwiteit van die individu en die groep, wat weer verantwoordelike deelname van groeplede tot gevolg behoort te hê (Johnson & Johnson 2009).
•	Individuele verantwoordelikheid: Die groep behoort elke lid daarvan daarvoor verantwoordelik te hou om hul volle steun en samewerking te gee om die groep se doelwitte te bereik. Individuele verantwoordelikhede of rolle vir elke groeplid help met ’n eweredige taakverdeling en dra daartoe by dat geen lid van die groep op ’n ander se rug sal kan ry nie. Die groepdinamiek moet dus sodanig wees dat die groep ’n persoon wat nie sy of haar deel doen nie, tot orde sal roep. Daar is egter ook ander wyses waarop die onderwyser en/of dosent die individuele verantwoordelikheid van groeplede kan verseker. Die kwaliteit en kwantiteit van elke lid se bydrae moet geassesseer word en die resultate daarvan moet aan die groep en die individue teruggevoer word. Dit kan byvoorbeeld deur middel van portuurassessering gedoen word. Daar behoort ook deur middel van individuele assessering bepaal te word of die individu die uitkomste wat die groep bereik het, ook op sy/haar eie bemeester het. Dit is dus ’n ingesteldheid van leer saam, maar presteer op jou eie.
•	Bevorderende persoonlike interaksie: Hierdie faset van koöperatiewe leer sluit in dat die groeplede voldoende en effektiewe hulp en ondersteuning aan mekaar bied deur hulpbronne te deel, terugvoer aan mekaar te gee en mekaar se gevolgtrekkings en argumente krities te beoordeel en uit te daag ten einde hoërorde-denkvaardighede te stimuleer.
•	Sosiale vaardighede: Dit is nodig dat die vaardigheid om in ’n groep te kan werk deur die groeplede aangeleer en toegepas moet word. Hulle moet ondubbelsinnig en akkuraat met mekaar kan kommunikeer, mekaar kan verstaan, aanvaar en ondersteun om sodoende konflik te voorkom of op te los. Hulle moet daartoe in staat wees om te onderhandel, standpunte te stel en te verdedig, maar ook te erken as iemand anders ’n beter voorstel aan die hand doen. Goeie sosiale vaardighede sal ook minder konflik tot gevolg hê.
•	Groepbesinning: Na afloop van elke groepwerksessie behoort die groep te besin oor hoe goed hulle saamgewerk het ten einde die doel te bereik. Hulle moet die vrymoedigheid hê om die aksies van groeplede wat baie gehelp het, maar ook dié van groeplede wat die groep in hul doelwitbereiking laat struikel het, te kan identifiseer en stappe te kan doen om toekomstige samewerking te verbeter. Besinning oor die leerwins wat elkeen persoonlik beleef het, is ook nodig.
Bogenoemde vyf eienskappe kan beskou word as voorwaardes vir suksesvolle koöperatiewe leer (Johnson & Johnson 1994). Felder en Brent (2007) gaan so ver as om te beweer dat ’n leerervaring slegs kwalifiseer as koöperatiewe leer indien hierdie vyf eienskappe wel teenwoordig is. Elkeen van die eienskappe het in wese met motivering, sosiale interaksie, kognitiewe ontwikkeling of refleksie as belangrike elemente in die onderrig-leergebeure te make (Gunter, Estes & Schwab 2003). Hierdie eienskappe beliggaam ook belangrike pedagogiese elemente aangesien hulle ’n bydrae tot die opvoedende onderrig van die betrokke studente en/of leerders kan lewer.
Navorsing oor koöperatiewe leer bevestig dat dit ’n effektiewe onderrig-leerstrategie is wat toegepas kan word om begripvorming, kenniskonstruksie, akademiese prestasie, sosialisering onder student en/of leerders, kommunikasievaardighede en houding teenoor leer te verbeter (Gillies & Ashman 2003; Adeyemi 2008). Volgens Johnson, Johnson en Stanne (2000) is daar geen ander pedagogiese praktyk wat gelyktydig soveel uiteenlopende opvoedkundige uitkomste (kan) bereik nie. Dit bevorder die mees toepaslike waardes vir die toekomstige welstand van die leerders en/of studente in die samelewing (Johnson & Johnson 2006) en kan bestempel word as ’n onderrig-leerstrategie wat optimale leerwins bewerkstellig.
Johnson et al. (2000), Cheng en Warren (2000) sowel as Terwel (2003) noem bepaalde voordele van koöperatiewe leer in die onderrigsituasie wat die waarde daarvan in die klassituasie onderstreep. Studente en/of leerders kom byvoorbeeld te staan voor verskillende oplossings en menings van ander en dit bring ’n gewilligheid te weeg om eie oplossings vanuit verskillende nuwe perspektiewe te oorweeg en dit gee aanleiding tot die ontwikkeling van hoër kognitiewe vaardighede. Hulle kry ook die geleentheid om baat te vind by die kennis, ervarings en vaardighede wat in die hele groep beskikbaar is. Dit skep verder vir student en/of leerders die geleentheid om hul denke onder woorde te bring, wat tot gevolg kan hê dat ’n probleem skielik ingesien word, bloot omdat daar oor die probleem gedink moet word voordat dit in woorde gestel kan word. Verbeterde begrip en akademiese prestasie sowel as verhoogde ontwikkeling van kritiese denk- en redeneringsvaardighede word ook genoem as voordele van koöperatiewe leer (Gunter et al. 2003). Koöperatiewe leer kan ook volgens Gunter et al. (2003) verhoogde sosiale, kommunikasie-, probleemoplossings- en organisatoriese vaardighede tot gevolg hê. Omdat groeplede van mekaar verskil, word ’n groter verskeidenheid bronne tot beskikking van die groep gestel. Die diverse bydrae van die groeplede werk begrip in die hand vir die feit dat almal, ongeag hul vermoë, sosiale status, geslag of kultuurgroep, gerespekteer behoort te word (Johnson & Johnson 2009).
Die rol van die onderwyser en/of dosent in so ’n koöperatiewe leeromgewing is, benewens die opvoedende aspekte waarna hierbo verwys is, ook sterk gefokus op die doelwitte of uitkomste wat deur die onderrig bereik moet word en op die monitering van leer. Die onderwyser en/of dosent behoort ook vooraf elke lid in die groep se individuele verantwoordelikheid, rol of taak binne die groep duidelik te definieer. Doelwitte behoort vooraf duidelik gestel te word sodat elkeen presies weet wat van hom of haar in die groep verwag word en watter doel al die deelnemers saam as groep nastreef. Na afloop van ’n koöperatiewe leergeleentheid behoort die onderwyser en/of dosent terugvoer aan die verskillende groepe te gee, nie alleen oor hul akademiese vordering en die uitkomste wat bereik moes word nie, maar ook oor hul sosiale samewerking en interaksie (Johnson & Johnson 2009).
Volgens Olivares (2008) bestaan ’n gebrek aan konseptuele duidelikheid oor (die verskille en ooreenkomste tussen) koöperatiewe en samewerkende leer. In die bespreking hierna word gepoog om aan te toon hoe verskillende navorsers hierdie twee terme gebruik. Sommige gebruik die twee terme afwisselend omdat hulle meen dat albei gebruik maak van kleingroep-leer wat ten doel het om kennis te verbreed en probleme op te los deur ’n taak gesamentlik af te handel, inligting te deel, mekaar te ondersteun en van mekaar te leer (Joseph & Payne 2003; Barkley, Cross & Major 2005; Eisenhauer 2007). Ander is weer van mening dat daar tog duidelike verskille tussen die twee terme bestaan. Thomas (2007) en Olivares (2008) tref ’n onderskeid tussen die twee terme en plaas hulle in twee afsonderlike versamelings waar koöperatiewe leer meer gestruktureerd, en samewerkende leer meer ongestruktureerd, is. Hulle tref ook onderskeid tussen die rol van die onderwyser en/of dosent en dié van die leerders en/of studente. Waar die onderwyser en/of dosent in koöperatiewe leer steeds die onderrig bestuur, tree hul by samewerkende leer volgens Thomas (2007) en Olivares (2008) slegs as fasiliteerder op. Daar is ook na hulle mening ’n verskil in die optrede en taak van die leerders en/of studente. By samewerkende leer is die leerders en/of studente volgens hulle meer onafhanklik en selfstandig, terwyl bepaalde rolle aan leerders en/of studente by koöperatiewe leer toegeken word en hulle steeds in ’n groot mate afhanklik bly van die onderwyser en/of dosent se leiding. Volgens Matthews et al. (1995) is samewerkende leer meer geskik vir ouer leerders of studente wat oor meer sosiale vaardighede beskik en word dit gevolglik meer algemeen op tersiêre vlak gebruik as koöperatiewe leer. Samewerkende leer is volgens Bruffee (1995) en Matthews et al. (1995) meer geskik vir die bemeestering van hoërorde-kennis wat ’n kritiese benadering tot leer vereis, terwyl koöperatiewe leer meer geskik is vir die aanleer van kennis soos feite en formules. Sommige navorsers, soos Dillenbourg (1999), onderskei tussen samewerkende leer en koöperatiewe leer met betrekking tot die wyse waarop ŉ taak uitgevoer word. By koöperatiewe leer kan die verantwoordelikhede van die groeplede volgens Dillenbourg (1999) in subtake onderverdeel word wat elkeen individueel uitgevoer kan word, waarna dit dan weer saamgevoeg word om die uiteindelike doel te bereik. By samewerkende leer word alle take gesamentlik uitgevoer as een gekoördineerde aktiwiteit waar die insette van lede van die groep verweef is en die deel van inligting sentraal (Dillenbourg 1999; Curtis & Lawson 2001; Lutz & Huitt 2004). Brown en Lara (2007) beskou koöperatiewe leer as ’n spesiale tipe samewerkende leer. Johnson en Johnson (2009), wat as dié deskundiges rakende koöperatiewe leer beskou kan word, onderskei tussen verskillende tipes en metodes van koöperatiewe leer. Hulle verklaar dat in koöperatiewe leer ’n groep ’n taak in subtake kan indeel, maar dat ’n groep ook saam aan ’n taak kan werk waar elkeen hul eie toegekende rol vervul. Johnson en Johnson (2009) stel ook dat koöperatiewe leer vir enige opdrag in enige kurrikulum vir enige ouderdom geskik is. Jones en Jones (2008) verduidelik ook hoe hulle koöperatiewe leer met welslae in ’n tersiêre omgewing toegepas het. Koöperatiewe leer is egter volgens Johnson en Johnson (2009) méér as om net vir leerders in groepe in te deel en hulle aan te sê om saam te werk.
Uit die voorgaande bespreking kan afgelei word dat samewerkende leer as die sambreelterm beskou kan word waaronder koöperatiewe leer as ’n spesifieke onderrig-leer strategie val. Dit is egter nie sonder meer aanvaarbaar om te beweer dat koöperatiewe leer slegs geskik is vir die aanleer van feite en kennis, en samewerkende leer net vir probleemoplossing nie; ook nie dat koöperatiewe leer net geskik is vir kinders nie. Die groter gestruktureerdheid van koöperatiewe leer word deur al die geraadpleegde navorsers erken; dit is meer gestruktureerd as samewerkende leer. Dit kan toegeskryf word aan die feit dat veel meer navorsing oor koöperatiewe leer gedoen is, ’n duidelike definisie daarvoor geformuleer is en die beginsels waaronder optimale leer verkry kan word, deur navorsing bevestig is. Om die onderrig-leersituasie sterker te struktureer impliseer egter nie noodwendig dat leerders se kreatiewe, kritiese en hoëvlak-denke hulle ontneem word nie; ruimte bestaan steeds vir probleemoplossing, besluitneming en kreatiwiteit (Johnson & Johnson 2009). Die mate van kreatiwiteit en die vlak van denke wat in koöperatiewe leer toegepas word, word bepaal deur die opdrag wat die betrokke leerders en/of studente ontvang.
Die slotsom waartoe dus gekom kan word, is dat hoewel die verskille tussen koöperatiewe en samewerkende leer in ’n sekere mate bloot semanties is, daar tog ’n dieperliggende ontologiese verskil tussen hulle bestaan: koöperatiewe leer is ’n meer gestruktureerde vorm van leer as samewerkende leer.
Waar pas paarprogrammering dan in?
Laurie Williams, wat beskou kan word as die voorloper met betrekking tot die implementering van paarprogrammering in die onderrig van programmeringsvaardighede, en haar kollegas het in 2002 ’n saak daarvoor uitgemaak dat paarprogrammering ’n samewerkende leerstrategie is (Williams et al. 2002). Sy motiveer haar siening op grond van die werk wat Jehng in 1997 gepubliseer het waarin koöperatiewe leer gedefinieer word as ’n situasie waarin leerders op verskillende dele van ’n taak werk en samewerkende leer gedefinieer word as een waarin leerders saam aan ’n taak werk. Aangesien paarprogrammering veronderstel dat die programmeerders saam aan dieselfde program werk, en nie elkeen aan ’n ander deel van die taak nie, kom sy tot die gevolgtrekking dat paarprogrammering ’n samewerkende leerstrategie is (Williams et al. 2002). Dit word dan ook verder in die literatuur as ’n samewerkende leerstrategie gedefinieer (Simon 2008; Han, Lee & Lee 2010; Lewis 2011). Dit is egter hierby nodig om te let op die verskille en ooreenkomste tussen samewerkende en koöperatiewe leer soos hierbo bespreek, ten einde paarprogrammering in hierdie debat te kan posisioneer.
Soos reeds genoem, het paarprogrammering in die industrie ontstaan waar volwassenes aan dieselfde program saamwerk; waar die lewering van die een of ander eindproduk die doelwit is en nie elke individu se uitkomsbereiking nie; waar hoë kognitiewe denkvaardighede vereis word; en daar nie rigiede reëls bestaan oor wie wanneer en vir hoe lank watter rol moet vervul om seker te maak dat albei ’n bepaalde vaardigheid bemeester het, soos die geval is in die opvoedende onderrig-leersituasie nie. Die doel met paarprogrammering in die industrie is dus nie om ’n uiteindelike leerwins vir elke lid aan te toon nie, maar wel om ’n bepaalde produk op die mees koste-effektiewe wyse te lewer. Dit is dus oor die algemeen ’n ongestruktureerde omgewing waarin mense saamwerk, en dus per definisie ook samewerkend van aard.
In die onderrig-leersituasie kry die toepassing van paarprogrammering egter ’n ander – meer pedagogiese en/of opvoedende – doel by, naamlik om individuele leer by elkeen van die leerders en/of studente te bewerkstellig. Nou word onderrig-leerstrategieë vir effektiewe leer belangrik en uiteraard moet die implementering daarvan meer gestruktureerd wees. Die drywer en navigator het spesifieke take om te verrig. Chong en Hurlbutt (2007) sê gevolglik dat die navigator toestemming moet vra om die sleutelbord of die muis te gebruik, wat nie noodwendig in die industrie die geval is nie. Die rolle moet ook op vasgestelde tye omgeruil word (Williams & Kessler 2003), iets wat ook nie noodwendig vir die industrie geld nie. Williams et al. (2008) se 11 riglyne vir die implementering van paarprogrammering in die klaskamer dui ook daarop dat paarprogrammering nie ongestruktureerd is nie. Die onderwyser en/of dosent moet volgens hulle steeds aktief betrokke bly by die leersituasie en dit noukeurig bestuur, opdragte deeglik beplan en maatreëls instel om te voorkom dat die een op die ander se rug ry. Daar moet, volgens hulle, duidelike doelwitte en deeglike opleiding in paarprogrammering wees, en student en/of leerders moet ook individueel geassesseer word. Hierdie riglyne pas nie alleen almal in by een van die vyf eienskappe van koöperatiewe leer wat hierbo genoem is nie, maar getuig ook van ’n gestruktureerde onderrig-leersituasie met duidelike pedagogiese ondertone.
Namate paarprogrammering in die onderrig-leersituasie toegepas is, het al hoe meer navorsers voorstelle aan die hand begin doen ter bereiking van meer effektiewe leerwins uit paarprogrammering (Williams et al. 2008). Al hierdie voorstelle het daartoe gelei dat paarprogrammering toenemend meer gestruktureerd geraak het en eerder bestempel kan word as ’n koöperatiewe leerstrategie as ’n samewerkende leerstrategie. Die onderwyser en/of dosent bly steeds die vakinhoud-spesialis en bestuurder van die onderrig-leergebeure wat, soos Barkley et al. (2005) aanvoer, slegs die geval is by koöperatiewe leer. Vir suksesvolle koöperatiewe leer moet die leerders/studente verantwoordelikheid vir hul eie leer en dié van die groep aanvaar. Dit is presies wat paarprogrammering geslaagd maak (Ratti 2008) en wat ook pedagogiese (d.i. toerustende) betekenis daaraan verleen.
Dit blyk uit voorgaande dat paarprogrammering as onderrig-leerstrategie, anders as wat die literatuur aandui, op grond van die ontiese eienskap van die duidelik groter gestruktureerdheid daarvan eerder as ’n koöperatiewe leerstrategie bestempel kan word en dat dit gevolglik baat kan vind by die navorsing wat reeds oor koöperatiewe leer gedoen is. Indien paarprogrammering as ’n koöperatiewe leerstrategie beskou word, is die pedagogiese effektiwiteit daarvan hoër as wanneer dit as samewerkende leer beskou word, soos vervolgens aangetoon sal word.
Verhoogde leerwins gelewer met behulp van paarprogrammering binne ŉ koöperatiewe leerkonteks
In hul navorsing het Mentz, Van der Walt en Goosen (2008) aangetoon dat die toepassing van die vyf beginsels van koöperatiewe leer op paarprogrammering aanleiding gegee het tot verhoogde leerwins. Statisties en prakties betekenisvolle verskille is gevind in individuele eksamenuitslae en module-deurvloeikoers tussen ’n groep studente wat slegs paarprogrammering toegepas het (kodenaam: PP) en ’n groep wat paarprogrammering gekoppel aan die vyf beginsels van koöperatiewe leer toegepas het (kodenaam: PP_K).
Die ontleding van vraelyste oor studente se ervaring van paarprogrammering het aangetoon dat die PP_K-groep beter voldoen het aan die pedagogiese eis dat hulle toegerus moes word vir hul lewenstaak. Aanvanklik was beide groepe nie positief oor die gedagte om saam te werk nie. Die grootste klagte van die PP-groep aan die begin sowel as aan die einde van die module was dat een deelnemer krediet kry vir iets wat hy of sy nie gedoen het nie, en dat hulle gevolglik meer daarvan hou om elkeen op hul eie te werk. Die verskynsel van rugry was, soos ook in die literatuur vermeld, ’n probleem by die PP-groep. Hoewel die PP_K-groep dieselfde beswaar by die aanvang van die module gehad het, het geen student aan die einde van die module hierdie probleem geopper nie. Hulle het verder aangetoon dat hulle die probleme makliker verstaan en vinniger opgelos het; dat beredenering rakende ’n probleem daartoe meegewerk het dat dit beter begryp word; dat hulle geleer het om met ander met verskillende persoonlikhede en werkswyses as hulle eie saam te werk; en dat hulle geleer het om beter met ’n maat te kommunikeer. ’n Verdere positiewe resultaat van die koöperatiewe benadering was dat studente daarop gewys het dat hulle verskillende wyses van probleemoplossing aangeleer het. Die leerwins het verskuif van slegs bemeestering van programmeringsvaardighede na die verbetering van programmeringsvaardighede asook van sosiale en kommunikasievaardighede.
Enige handeling met leerders en/of studente, dus ook die onderrighandeling, soos dit gestalte vind in paarprogrammering, behoort ’n duidelik pedagogiese (d.i., toerustende) betekenis te hê. Wanneer paarprogrammering as koöperatiewe leerstrategie toegepas word, tree verskeie sodanige pedagogiese momente na vore. Leerders en/of studente weet presies wat die verwagtinge is wat aan hulle gestel word; hulle leer om te fokus en om stiptelik te wees in die afhandeling van hulle werk; hulle leer sosiale vaardighede aan; hulle leer om konflik te vermy en/of op te los; hulle leer die betekenis en waarde van verantwoordelikheid teenoor ander verstaan; hulle leer om hul eie, hul maat en ook ander groepe se werk op ’n billike wyse te assesseer; hulle leer die kuns van probleemoplossing aan; hulle besef die waarde daarvan om by ander te leer, en hoe eie leerwins verhoog kan word deur iets aan ’n ander persoon te verduidelik; hulle leer verder gespreksvaardighede aan en begin verstaan wat dit beteken om welslae deur middel van samewerking met ander te behaal. In ’n neutedop, ’n mens kan sê dat die leerders en/of studente wat blootgestel word aan die koöperatiewe leerbeginsels saam met paarprogrammering, sowel individueel as in groepverband in aanraking gebring word met al hierdie pedagogiese (dit is vormende en toerustende) elemente. Daarteenoor is paarprogrammering in ’n samewerkende leeromgewing minder gestruktureerd en gevolglik minder doelgerig, met die moontlikheid dat een student en/of leerder steeds op ’n ander se rug kan ry en gevolglik nie voldoende baat vind by die leergeleentheid nie.
Die pedagogiese verantwoording kenmerkend van die toepassing van paarprogrammering as onderrig-leerstrategie is noodsaaklik ten einde optimale leerwins te verseker. Riglyne vir die effektiewe toepassing van paarprogrammering behoort dus steeds ook pedagogies begrond te word.
Paarprogrammering behoort as ’n koöperatiewe onderrig-leerstrategie beskou te word. By die toepassing van paarprogrammering as onderrig-leerstrategie vir die aanleer van programmeringsvaardighede behoort die beginsels van koöperatiewe leer gevolglik in ag geneem te word ten einde optimale leerwins te bewerkstellig. Indien die elemente van koöperatiewe leer korrek by paarprogrammering ingebou word, sal dit voorkom dat een deelnemer op ’n ander se rug ry. Die gevoel dat jy nie jou maat in die steek wil laat nie – wat ontstaan as gevolg van positiewe interafhanklikheid – bevorder motivering en verhoog produktiwiteit.
Koöperatiewe leer het te make met die sosiale bemagtiging van leerders en/of studente sodat hulle op sterk gestruktureerde wyse deur die ondersteuning en selfvertroue wat hulle opdoen, hul volle potensiaal kan ontwikkel. Die sterk gestruktureerdheid van koöperatiewe leer as dié ontologiese eienskap daarvan, noodsaak noukeurige beplanning van elke paarprogrammeringsessie. Die indeling in groepe en/of pare, die skep van ’n klimaat waarin positiewe interafhanklikheid binne die groep en/of paar bestaan, die kontrole oor individuele verantwoordelikheid, die hantering van konflik, die ontwikkeling van toepaslike opdragte en assesseringskriteria en die bestuur van die aktiewe leeromgewing is noodsaaklik vir die bereiking van ’n effektiewe koöperatiewe leeromgewing (Felder & Brent 2007) en is gevolglik ook belangrik vir paarprogrammering.
Paarprogrammering het sy ontstaan in die industrie waar die hoofmotief winsbejag en ekonomiese oorwegings is en waar pedagogiese beginsels nie noodwendig ’n rol speel nie. Mettertyd het paarprogrammering ook ’n onderrigstrategie aan tersiêre onderwysinstansies geword waar dit, weens die eise van sodanige pedagogiese omgewing, sterker moes voldoen aan pedagogiese eise. Daar bestaan sowel ’n semantiese as ’n ontologiese onderskeid tussen koöperatiewe leer en samewerkende leer. Vir die toepassing van paarprogrammering as onderrig-leerstrategie binne’n opvoedingsomgewing voldoen koöperatiewe leer beter as samewerkende leer aan die pedagogiese eise wat gestel word, hoofsaaklik weens die groter gestruktureerdheid daarvan. Die beginsels van koöperatiewe leer in paarprogrammering het ook toepassingswaarde op vele ander vakterreine waar probleemoplossing sentraal staan.
Adeyemi, B.A., 2008, ‘Effects of cooperative learning and problem-solving strategies on junior secondary school students’ achievement in social studies’, Electronic Journal of Research in Educational Psychology 6(3), 691–708.
Adolphs, R., 2003, ‘Cognitive neuroscience of human social behaviour’, Nature reviews Neuroscience 4(1), 165–178. http://dx.doi.org/10.1038/nrn1056, PMid:12612630
Alexandrov, N. & Ramirez-Velarde, P.V., 2006, ‘Educational meta-model and collaborative learning’, paper presented at the ICBL2007 conference, Florianopolis, Brazil, 07 – 09th May, viewed 03 February 2011, from http://cs/.mty,itesm.mx/profesores/rramirez/documentos/ICBL-2007.pdf
Balijepally, V., Mahapatra, R., Nerur, S. & Price, K.H., 2009, ‘Are two heads better than one for software development? The productivity paradox of pair programming’, MIS Quarterly 33(1), 91–118.
Barkley, E.F., Cross, K.P. & Major, C.H., 2005, Collaborative learning techniques. A handbook for college faculty, Jossey-Bass, San Francisco.
Beck, K. & Andres, C., 2004, Extreme programming explained: Embrace change, 2nd edn., Addison-Wesley Professional, Boston.
Beck, K. & Fowler, M., 2000, Planning extreme programming, Addison-Wesley Longman, Boston.
Begel, A. & Nagappan, N., 2008, ‘Pair programming: What’s in it for me?’, in ESEM’08: Proceedings of the second ACM-IEEE international symposium on Empirical software engineering and measurement, 120–128, ACM, Kaiserslautern, Germany.
Berenson, S., Slaten, K.M., Williams, L. & Ho, C., 2004, ‘Voices of women in a software engineering course: reflections on collaboration’, ACM Journal of Educational Resources in Computing 4(1), 1–18.
Braught, G., Wahls, T. & Eby, L.M., 2011, ‘The case for pair programming in the Computer Science classroom’, ACM Tansactions on Computing Education 11(2), 2–21.
Brown, L. & Lara, V., 2007, Professional development module on collaborative learning, viewed 14 December 2010, from http://www.texascollaborative.org/Collaborative_Learning_Module.htm
Bruffee, K.A., 1995, ‘Sharing our toys’, Change 27(1), 12–18. http://dx.doi.org/10.1080/00091383.1995.9937722
Bryant, S., Du Boulay, B. & Romero, P., 2006, ‘XP and pair programming practices’, PPIG Newsletter, September, 1–7.
Chaparro, E.A., Yuksel, A., Romero, P. & Bryant, S., 2005, ‘Factors affecting the perceived effectiveness of pair programming in higher education’, paper presented at the 17th Workshop of Psychology of Programming Interest Group, Sussex, Brighton, 28 June–01 July, viewed 07 February 2011, from http://www.ppig.org/workshops/17th-programme.html
Cheng, W. & Warren, M., 2000, ‘Making a difference: using peers to assess individual students’ contributions to a group project’, Journal teaching in higher education 5(2), 243–255.
Chong, J. & Hurlbutt, T., 2007, ‘The social dinamics of pair programming’, paper presented at the 29th International Conference of software engineering, Minneapolis, USA, 20–26 May, viewed 08 February 2011, from http://web4.cs.ucl.ac.uk/icse07/
Cliburn, D.C., 2003, ‘Experiences with pair programming at a small college’, Journal of computing sciences in colleges 19(1), 20–29.
Conboy, K. & Fitzgerald, B., 2010, ‘Method and developer characteristics for effective Agile method tailoring: A study of XP expert opinion’, ACM Tansactions on software engineering and methodology 20(1), 1–30.
Curtis, D.D. & Lawson, M.J., 2001, ‘Exploring collaborative online learning’, Journal of the American Society for Information Science 5(1), 21–34.
DeClue, T., 2003, ‘Pair programming and pair trading: effect on learning and motivation in a CS2 course’, Journal of Computing in Small Colleges 18(5), 49–56.
Dehnadi, S. & Bornat, R., 2006, ‘The camel has two humps’, paper presented at the Little psychology of programming interest group workshop, Coventry, 12–13 January, viewed 03 February 2011, from http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf
Derry, S.J., 1999, ‘A fish called peer learning: searching for common themes’, in A.M. O’Donnell & A. King (eds.), Cognitive perspectives on peer learning, pp. 197–211, Lawency Erlbaim, Mahwah.
Dillenbourg, P., 1999, ‘What do you mean by collaborative learning’, in P. Dillenbourg (ed.), Collaborative-learning: cognitive and computational approach, pp. 1–19, Elsevier, Oxford.
Eisenhauer, G., 2007, ‘Cooperative learning as an effective way to interact’, Action research project report, University of Nebraska-Lincon, Battle Creek.
Erdogmus, H. & Williams, L., 2003, ‘The economics of software development by pair programmers’, The Engineering Economist 48(4), 283–319. http://dx.doi.org/10.1080/00137910309408770
Felder, R.M. & Brent, R., 2007, ‘Cooperative Learning’, in P.A. Mabrouk (ed.), Active learning: Models from the analytical sciences, ACS Symposium Series, pp. 34–53, American Chemical Society, Washington.
Ferzli, M., Wiebe, E.N. & Williams, L., 2002, ‘Paired programming project: focus groups with teaching assistants and students’, NCSU Technical Report TR-2002-16, 22 November, viewed 15 December 2010, from http://www.csc.ncsu.edu/research/tech/reports.php
Gay, G., Stefanone, M., Grace-Martin, M. & Hembrooke, T., 2001, ‘The effects of wireless computing in collaborative learning environments’, International Journal of Human-computer Interaction 13(2), 257–276. http://dx.doi.org/10.1207/S15327590IJHC1302_10
Gillies, R.M. & Ashman, A.F., 2003, ‘An historical review of the use of groups to promote socialization and learning’, in R.M. Gillies, A.F. Ashman (eds.), Co-operative learning the social and intellectual outcomes of learning in groups, Routledge Falmer, London.
Gordon, M., 2009, ‘Towards a pragmatic discourse of constructivism: Reflections on lessons from practice’, Educational Studies 45, 39–58.
Gunter, M.A., Estes, T.H. & Schwab, J., 2003, ‘Instruction a models approach’, 4th edn., Allyn and Bacon, Boston.
Han, K-W., Lee, E. & Lee, Y., 2010, ‘The impact of a peer-learning agent based on pair programming in a programming course’, IEEE Transactions on Education 53(2), 318–327. http://dx.doi.org/10.1109/TE.2009.2019121
Hanks, B., Fitzgerald, S., McCauley, R., Murphy, L. & Zander, C., 2011, ‘Pair programming in education: a literature review’, Computer Science Education 21(2), 135–173.
Hogarth, A., 2008, ‘Introducing a collaborative technology strategy for higher education students: recommendations and the way forward’, Journal of Education and Information Technology 13, 259–273. http://dx.doi.org/10.1007/s10639-008-9064-x
Howard, E.V., Evans, D., Courte, J. & Bishop-Clark, C., 2009, ‘A qualitative look at Alice and pair programming’, Information Systems Education Journal 7(80), viewed 14 December 2010, from http://isedj.org/7/80/
Johnson, D.W. & Johnson, F.P., 2006, Joining together, Group theory and group skills, 9th edn., Pearson Education, Boston.
Johnson, D.W. & Johnson, F.P., 2009, Joining together. Group theory and group skills, 10th edn., Pearson Education, New Jersey.
Johnson, R.T. & Johnson, D.W., 1994, ‘An overview of cooperative learning’, in J. Thousand, A. Villa & A. Nevin (eds.), Creativity and collaborative learning, Brookes Press, Baltimore.
Johnson, D.W., Johnson, R.T. & Stanne, N.W., 2000, ‘Cooperative learning methods: a meta-analysis’, viewed 08 February 2010, from http://www.co-operation.org/pages/cl-methods.html
Jones, K.A. & Jones, J.L., 2008, ‘Making cooperative learning work in the college classroom: an application of the ‘five pillars’ of cooperative learning to post-secondary instruction’, Journal of Effective Teaching 8(2), 61–76.
Joseph, A. & Payne, M., 2003, ‘Group dinamics and collaborative group performance’, paper presented at SIGCSE ‘03, Reno, Nivada, 19–22 February.
Kim, B., 2001, ‘Social constructivism’, in M. Orey (ed.), Emerging perspectives on learning, teaching and technology, viewed 08 February 2010, from http://www.coe.uga.edu/eptt/SocialConstructivism.htm
King, A., 2002, ‘Structuring peer interaction to promote high-level cognitive processing’, Theory into practice 41(1), 33–39. http://dx.doi.org/10.1207/s15430421tip4101_6
Lewis, C.M., 2011, ‘Is pair programming more effective than other forms of collaboration for young students?’, Computer Science Education 21(2), 105–134. http://dx.doi.org/10.1080/08993408.2011.579805
Lutz, S. & Huitt, W., 2004, ‘Connecting cognitive development and constructivism: implications from theory for instructions and assessment’, Constructivism in Human Sciences 9(1), 67–90.
Matthews, R.S., Cooper, J.L., Davidson, N. & Hawkes, P., 1995, ‘Building bridges between cooperative and collaborative learning’, Change 27(4), 34–37. http://dx.doi.org/10.1080/00091383.1995.9936435
McDowell, C., Hanks, B. & Werner, L., 2003, ‘Experimenting with pair programming in the classroom’, paper presented at ITiCSE’03, Thessaloniki, Greece, 30 June–02 July, viewed 08 February 2011, from http://www.ourglocal.com/url/?url=http://iticse2003.uom.gr/
Mentz, E., Van Der Walt, J.L. & Goosen, L., 2008, ‘The effect of incorporating learning principles in pair programming for student teachers’, Computer Science Education 18(4), 247–260. http://dx.doi.org/10.1080/08993400802461396
Metcalfe, M., 2005, ‘Generalisation: Learning across epistemologies’, FQS Forum: Qualitative social research 6(1), viewed 11 April 2011, from http://www.qualitative-research.net/index.php/fqs/article/viewArticle/525/1136
Nagappan, N. Williams, L., Wiebe, E., Miller, C., Balik, S., Ferzli, M. & Petlick, J., 2003, ‘Pair learning: with an eye towards future success’, in proceedings of the 3rd XP and 2nd AGILE universe conference, New Orleans, LA, 10–13 August, pp. 185–198.
Olivares, O.J., 2008, ‘Collaborative vs. co-operative learning: the instructors’ role in computer supported collaborative learning’, in K.L. Orvis & A.L.R. Lassiter, Computer-supported collaborative learning: best practices and principles for instructors, Information Science Publishing, New York. http://dx.doi.org/10.4018/978-1-59904-753-9.ch002
Ratti, S., 2008, Pair programming: Software Engineering project management project report, University of Ottawa, Ottawa.
Simon, B., 2008, ‘First-year students’ impressions of pair programming in CS1’, ACM Journal on Educational Resources in Computing 7(4), 2–28.
Terwel, J., 2003, ‘Co-operative learning in secondary education: a curriculum perspective’, in R.M. Gillies & A.F. Ashman, (eds.), Co-operative learning. The social and intellectual outcomes of learning in groups, pp. 54–68, Routledge Falmer, London.
Thomas, G.D., 2007, ‘Predictors of successful team-based testing’, PhD thesis, University of Texas, Texas.
VandeGrift, T., 2004, ‘Coupling pair programming and writing: learning about students’ perceptions and processes’, SIGCSE Bulletin 36(1), 2–6. http://dx.doi.org/10.1145/1028174.971306
Veenman, S., Denessen, E., Van Den Akker, A. & Van Der Rijt, J., 2005, ‘Effects of a cooperative learning program on the elaboration of students during help seeking and help giving’, American Educational Research Journal 42(1), 115–151.
Vygotsky, L.S., 1978, Mind in Society. The development of higher psychological processes, Harvard University Press, Cambridge.
Williams, L. & Kessler, R., 2003, Pair programming Illuminated, Addison-Wesley, Boston.
Williams, L.A., Kessler, R., Cunningham, W. & Jeffries, R., 2000, ‘Strengthening the case for pair programming’, IEEE Software, July/August, 19–25. http://dx.doi.org/10.1109/52.854064
Williams, L. & Upchurch, R.L., 2001, ‘In support of student pair-programming’, ACM SIGCSE Bulletin 33(1), 327–331. http://dx.doi.org/10.1145/366413.364614
Williams, L., Wiebe, E., Yang, K., Ferzli, M. & Miller, C., 2002, ‘In support of pair programming in the introductory Computer Science course’, Computer Science Education 12(3), 197–212. http://dx.doi.org/10.1076/csed.12.3.197.8618
Williams, L., McCrickard, D.S., Layman, L. & Hussein, K., 2008, ‘Eleven guidelines for implementing pair programming in the classroom’, in proceedings of the IEEE Computer Society AGILE conference, Toronto, 04–08 August, pp. 445–452.