Asia-Pacific Forum on Science Learning and Teaching, Volume 19, Issue 2, Article 16 (Dec., 2018) |
Overview of programming courses
Computer programming teaches learners to design, develop and manage computer programs with the objective of instructing a computer to carry out specific activities in order to yield the desired intention as required by the developer. Various researchers argue that understanding and learning to code are regarded as challenging tasks (Robins, Rountree & Rountree, 2003; Gomes & Mendes, 2007). According to Winslow (1996), programming needs critical thinking and translation of abstract concepts into real-life application which is not easy for many learners; students who are a bit slow in understanding abstraction therefore always find learning programming difficult both theoretically and practically (Winslow, 1996; Minelli, Mocci & Lanza, 2015).
Following an earlier study by Bennedsen and Caspersen (2007), Watson and Li (2014) analysed the failure rates in introductory programming courses across the world. Their revised study provided results on programming course literature. The data set containing the pass rate data included 161 introductory programming courses from 51 institutions across 15 different countries. The 2014 study indicated a mean global pass rate of 67.7%, which corroborated the finding of the first study, that is, 67% by Bennedsen and Caspersen (2007). The mean global failure and dropout rate was 32.3%. Their 2014 study also found that the mean failure rate in South Africa was 44% which better than the global mean failure rate.
Factors affecting learning on programming
Understanding of programming poses many challenges for first-year students. Ability to read and understand what a piece of code does was observed by Perkins and Martin (1986) to be an important skill required by new programmers. Entry-level programmers are often seen to be having difficulty in grasping the foundation-level programming concepts early in their studies, leading to grief and frustration and ultimately surrender (Shuhaidan et al., 2009.
Programming involves intensive problem solving skills and strategies. Understanding of algorithmic problem solving is considered to be at the core of learning computer programming (Lishinski, Yadav, Enbody, & Good, 2016; Sheth, Murphy, Ross, & Shasha, 2016). Huggard and Goldrick (2009) note that learners even fail to know where to begin their solution when faced with programming problems. While the McCracken group reported on entry-level programming students' poor problem solving skills (McCracken et al., 2001), the Lister working group reported that students even lacked in knowledge and skills that are a precursor or a pre-requisite to problem-solving such as reading and understanding the code and tracing or tracking skills (Lister et al., 2004).
Accessing relevant prior knowledge and adopting an approach to study that will go beyond memorizing, applying and transferring the domain concepts to a new situation are the main issues faced by entry-level programmers (Affleck and Smith, 1999). A large number of students enter ICT programmes with little or no relevant prior knowledge (Falkner & Munro, 2009) . Many students face programming courses for the first time in their lives. Lack of preparation, lack of previous exposure to computers and the level of complexity are some of the inherent problems with entry-level programming courses (Gonzalez, 2006).
Abstraction and abstract thinking are crucial components for learning computer programming (Or-Bach & Lavy, 2004; Bennedsen and Caspersen 2006). Difficulties with the abstract concepts of knowing how to model a solution to a problem, fragment it into manageable and codable subcomponents or sub-problems and then conceive a hypothetical error situation to test and figure out mistakes constitute a major issue faced by entry-level students (Esteves, Fonseca, Morgado, & Martins, 2011) . Students certainly need to learn a number of different skills and processes in learning to programme.
Inquiry learning is a "learning process that uses questions and problems to provide contexts for learning" (Prince & Felder, 2006, p.127) where "students learn content as well as discipline-specific reasoning skills and practices by collaboratively engaging in investigations" (Hmelo-Silver, Duncan, & Chinn, 2007, p.100). According to Prince and Felder (2007), in GIL, students are presented with a challenge (such as a question to be answered, an observation or data set to be interpreted, or a hypothesis to be tested) while allowing them to accomplish the desired learning in the process of responding to that challenge. Inquiry Based Learning (IBL) is a form of inductive collaborative learning. According to Lee (2004), IBL enables the learner to formulate good questions, to identify and gather evidence and present them systematically, to analyse, interpret and formulate conclusions and evaluate the worthiness of those conclusions. IBL also involves the ability to identify problems, examine problems, generate possible solutions and select the best solution with appropriate justification. These are seen as critical skills required to be mastered by entry-level programmers. Prince and Felder (2006) state that "Inquiry learning is the simplest of the inductive approaches and might be the best one for inexperienced or previously-traditional instructors to begin with" (p.134).
Traditional ways of collecting, structuring and presenting topics/information do not meet the needs of the students in the ever-increasing/demanding dynamic environment. The results of a survey conducted to study the progress of learning by first-year programming students in a collaborative learning environment by Teague and Roe (2008) indicate that learning in a collaborative environment becomes a social process where students learn by working with others. They further observe that through collaborative learning, students are interactively engaged in the subject material, observing each other's approaches to problem solving, keeping each other focused on the task, and being encouraged to verbalise issues and decisions along the way. With this in mind, McKinney and Denton (2006) conducted an empirical study in the School of Computer Science and Information Sciences, University of Alabama where the students in an introductory programming course were exposed to collaborative learning environments such as team-based problem solving and pair programming. They observed that early use of collaborative learning benefits included deeper learning, developing skills wanted by industry, higher retention, higher achievement, higher course success rates, higher interest and a higher sense of belonging. These benefits were enjoyed by all students but were important for first-year students who were at risk of leaving the discipline.
Several studies conducted on the implementation of the GIL approach within other science- learning fields for example, chemistry also proved the effectiveness of GIL (Farrel, Moog, & Spencer, 1999; Gaddis & Schoffstall, 2007). Several common, and important outcomes observed in all these assessments of implementations were that more students successfully completed the courses, students' mastery of content was at least as high as in traditional instructional methods and students generally preferred the GIL approach to traditional methods. GIL also gives educators enough flexibility to adapt to the environment where it is implemented.
Copyright (C) 2018 EdUHK APFSLT. Volume 19, Issue 2, Article 16 (Dec., 2018). All Rights Reserved.