The Use of Wiki in Teaching Programming: Effects Upon Achievement, Attitudes, and Collaborative Programming Behaviors

The Use of Wiki in Teaching Programming: Effects Upon Achievement, Attitudes, and Collaborative Programming Behaviors

Yu-Tzu Lin (National Taiwan Normal University, Taipei, Taiwan), Cheng-Chih Wu (National Taiwan Normal University, Taipei, Taiwan) and Chiung-Fang Chiu (National Chi Nan University, Puli Township, Taiwan)
Copyright: © 2018 |Pages: 28
DOI: 10.4018/IJDET.2018070102


This article explores the feasibility of employing cooperative program editing tools in teaching programming. A quasi-experimental study was conducted, in which the experimental group co-edited the programs with peers using the wiki. The control group co-edited the programs with peers using only the face-to-face approach. The findings show that the co-editing platform was effective in assisting collaborative learning of programming, especially for program implementation. By observing editing histories, students could compare programs and then reflect more deeply about programming. The use of the wiki history tool also helped to illuminate nonlinear and dynamic procedures utilized in programming. Students who engaged more in the collaborative programming or interacted more with partners on the wiki showed greater program implementation achievements. The major benefit of using the wiki was the enhanced ability to observe the dynamic programming procedure and to encounter programming conflicts, which contributed to the process of procedural knowledge acquisition and elaboration.
Article Preview


Computer programming is challenging for most students (Mayer, Dyck, & Vilberg, 1986; Winslow, 1996; Costelloe, 2004). It is a dynamic and non-linear procedure. In traditional programing instruction, teachers usually demonstrate and explain static code without showing the whole non-linear programming procedure (Soloway, 1986). As a result, novice programmers often feel frustrated with the whole process of implementation and, more often than not, cannot finish a whole program by themselves. With the growing interest in computer supported collaborative learning (CSCL), it has been argued that collaborative programming would not only provide students with opportunities for interacting with peers and utilizing each other’s resources and skills but would also facilitate better learning of computer programming (Williams & Jacobs, 2004; Wu, Chang, Shieh, & Lai, 2009; Alorda, Suenaga, & Pons, 2011; Hwang, Shadiev, Wang, & Huang, 2012). Possible reasons why collaborative programming can foster problem solving and improve programming skills are many. Firstly, students can foster more ideas from observing others’ programs (Byrne & Lyons, 2001; DeClue, 2003). Secondly, they also gain experience from seeing others’ mistakes (Wei, 2013). Lee (2008) claimed that the metacognitive activities inherited in collaborative programming can foster students’ self-monitoring which can, in turn, improve problem solving abilities. Bravo, Marcelino, Gomes, Esteves, and Mendes, (2005) also showed that paired-collaborative programming activities could help students with problem-solving. Students not only can develop better problem-solving abilities, but also can create more effective programs when using collaborative programming (Bryant, Romero, & Boulay, 2005; Braught, Eby, & Wahls, 2008). Collaborative programming has been shown to help with motivation, engagement, retention, and building confidence in students (McDowell et al., 2006; Chong & Hurlbutt, 2007). Learning tools for collaborative programming must be, therefore, designed specifically and deliberately to support learner engagement (Chong & Hurlbutt, 2007). By browsing the source programs and feedback from peers during beginning stages of learning, students could gradually improve their independent coding skills through imitating peers’ programs or being enlightened by observing peers’ programs. This has been shown to be especially true for low and medium ability students (Hwang, Wang, Hwang, Huang, & Huang, 2008; Hwang, Shadiev, Wang, & Huang, 2012). Since programming involves declarative, procedural, and strategic knowledge (McGill & Volet, 1997), more adaptive collaborative learning platforms and activities should be developed to help students build different types of knowledge. Traditional programming instruction, however, focuses more on declarative knowledge.

Complete Article List

Search this Journal:
Open Access Articles: Forthcoming
Volume 17: 4 Issues (2019): 1 Released, 3 Forthcoming
Volume 16: 4 Issues (2018)
Volume 15: 4 Issues (2017)
Volume 14: 4 Issues (2016)
Volume 13: 4 Issues (2015)
Volume 12: 4 Issues (2014)
Volume 11: 4 Issues (2013)
Volume 10: 4 Issues (2012)
Volume 9: 4 Issues (2011)
Volume 8: 4 Issues (2010)
Volume 7: 4 Issues (2009)
Volume 6: 4 Issues (2008)
Volume 5: 4 Issues (2007)
Volume 4: 4 Issues (2006)
Volume 3: 4 Issues (2005)
Volume 2: 4 Issues (2004)
Volume 1: 4 Issues (2003)
View Complete Journal Contents Listing