investigating the role of program visualization and neo ... · pyshkin, e. (2011, oct. 31 2011-nov....

2
Editorial Team Chief Editor : Norizan Mohamad Editors : Nazatul Azleen Zainal Abidin Mohd Hanapi Abdul Latiff Siti ‘Aisyah Sa’dan Vol.: 1, Issue: Apr, 2015 A publication by members of Computer Science Department, Faculty of Computer and Mathematical Sciences, UiTM Terengganu BEYOND WINDOWS by: Norizan binti Mohamad Bulletin Investigating the Role of Program Visualization and Neo-Piagetian Approach in Teaching and Learning of Programming egies for both learners and teachers?”; and (2) “What resources and processes are involved in understanding programming?”. As a result, those engaged in the teaching of program- ming must consider how the learners learn and how they progress from one phase to the other in order to de- velop the programming skills (Baldwin & Kuljis, 2000). Some people believe that the best programmers have strong mathematical background (Pyshkin, 2011), how- ever giving too much computational mathematics for problem solving tasks does not guarantee that students are equipped with the necessary programming skills. There are still algorithmic analyses or theory of algo- rithms and its applications to teach to the students (Py- shkin, 2011). Consequently, one primary concern is “how to improve the approaches of teaching and learning of programming?” Teaching and Learning Approaches An improvement in programming learning approach- es has been proposed by Yacob et al. (2012) using Total Quality Management principles. In it, problem-based learning was implemented which involves a constructiv- ist approach to learning. Alternatively, writing programs is frequently referred to as an exercise in problem solv- ing. McCracken et al.(2001) defined problem solving as a five step process: (1) abstract the problem from its de- scription, (2) generate subproblems, (3) transform sub- problems into subsolutions, (4) recompose, and (5) evalu- ate and iterate. Abstraction, therefore has been treated as an important aspect of programming since experts programmers operate at a high-level of abstract reason- ing (Teague, 2012). In addition, Kramer (2007) asserted that the key differ- ence between top-performing and under-performing computing students is “The ability to perform abstract Background Computer programming is an essential skill that must be mastered by Computer Science students (Azwina & Rukaini, 2005). Yet, learning and teaching programming subject has been known as one of the grand challenges in computing education (Caspersen & Kolling, 2009). Many teachers agree that teaching beginners to pro- gram is difficult and this always has been and remains that way since decades. While teachers are anxious to teach all about program- ming, students find computer programming difficult and struggle to master the concepts (Bergin & Reilly, 2005; Farkas & Murthy, 2005; Robins, Rountree, & Roun- tree, 2003). Particularly for novices, they claimed that computer programming subject is complex, difficult, often boring and far from the real world (Pyshkin, 2011; Yacob, Saman, & Yusoff, 2012). As a result, often the sub- ject has the highest dropout rates (Robins, et al., 2003). Surprisingly, in the past, students who repeat the pro- gramming subject for the second time or third time are rarely able to obtain highest grade. Indeed, this situation has puzzled the teachers. This is worsen when some stu- dents still do not know how to program at the conclu- sion of their introductory years (McCracken et al., 2001). Why is learning programming hard for the students? In (Robins, et al., 2003), learning programming is consid- ered as a cognitive process that relates to knowledge, at- tention, memory, problem solving and decision making which are important for human behavior. With regard to the individual, students need to have both the will (moti- vation) and the skill (capability) to be successful learners (Helme & Clarke, 2001). Therefore, in order to teach more efficiently, teachers need to understand these two questions (Robins, et al., 2003): (1) “Are there successful and unsuccessful strat-

Upload: others

Post on 05-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Investigating the Role of Program Visualization and Neo ... · Pyshkin, E. (2011, Oct. 31 2011-Nov. 3 2011). Teaching Programming: What We Miss in Academia. Paper presented at the

Editorial Team Chief Editor : Norizan Mohamad

Editors : Nazatul Azleen Zainal Abidin Mohd Hanapi Abdul Latiff Siti ‘Aisyah Sa’dan

Vol.: 1, Issue: Apr, 2015A publication by members of Computer Science Department, Faculty of Computer and Mathematical Sciences, UiTM Terengganu

BEYOND WINDOWS

by: Norizan binti Mohamad

Bulletin

Investigating the Role of Program Visualization and Neo-Piagetian Approach in Teaching and Learning of Programming

egies for both learners and teachers?”; and (2) “What resources and processes are involved in understanding programming?”.

As a result, those engaged in the teaching of program-ming must consider how the learners learn and how they progress from one phase to the other in order to de-velop the programming skills (Baldwin & Kuljis, 2000).

Some people believe that the best programmers have strong mathematical background (Pyshkin, 2011), how-ever giving too much computational mathematics for problem solving tasks does not guarantee that students are equipped with the necessary programming skills. There are still algorithmic analyses or theory of algo-rithms and its applications to teach to the students (Py-shkin, 2011). Consequently, one primary concern is “how to improve the approaches of teaching and learning of programming?”

Teaching and Learning Approaches

An improvement in programming learning approach-es has been proposed by Yacob et al. (2012) using Total Quality Management principles. In it, problem-based learning was implemented which involves a constructiv-ist approach to learning. Alternatively, writing programs is frequently referred to as an exercise in problem solv-ing. McCracken et al.(2001) defined problem solving as a five step process: (1) abstract the problem from its de-scription, (2) generate subproblems, (3) transform sub-problems into subsolutions, (4) recompose, and (5) evalu-ate and iterate. Abstraction, therefore has been treated as an important aspect of programming since experts programmers operate at a high-level of abstract reason-ing (Teague, 2012).

In addition, Kramer (2007) asserted that the key differ-ence between top-performing and under-performing computing students is “The ability to perform abstract

Background Computer programming is an essential skill that must be mastered by Computer Science students (Azwina & Rukaini, 2005). Yet, learning and teaching programming subject has been known as one of the grand challenges in computing education (Caspersen & Kolling, 2009). Many teachers agree that teaching beginners to pro-gram is difficult and this always has been and remains that way since decades.

While teachers are anxious to teach all about program-ming, students find computer programming difficult and struggle to master the concepts (Bergin & Reilly, 2005; Farkas & Murthy, 2005; Robins, Rountree, & Roun-tree, 2003). Particularly for novices, they claimed that computer programming subject is complex, difficult, often boring and far from the real world (Pyshkin, 2011; Yacob, Saman, & Yusoff, 2012). As a result, often the sub-ject has the highest dropout rates (Robins, et al., 2003).

Surprisingly, in the past, students who repeat the pro-gramming subject for the second time or third time are rarely able to obtain highest grade. Indeed, this situation has puzzled the teachers. This is worsen when some stu-dents still do not know how to program at the conclu-sion of their introductory years (McCracken et al., 2001).

Why is learning programming hard for the students? In (Robins, et al., 2003), learning programming is consid-ered as a cognitive process that relates to knowledge, at-tention, memory, problem solving and decision making which are important for human behavior. With regard to the individual, students need to have both the will (moti-vation) and the skill (capability) to be successful learners (Helme & Clarke, 2001).

Therefore, in order to teach more efficiently, teachers need to understand these two questions (Robins, et al., 2003): (1) “Are there successful and unsuccessful strat-

Page 2: Investigating the Role of Program Visualization and Neo ... · Pyshkin, E. (2011, Oct. 31 2011-Nov. 3 2011). Teaching Programming: What We Miss in Academia. Paper presented at the

2

thinking and to exhibit abstraction skills”.

Neo-Piagetian Theory

Recent research has proposed neo-Piagetian theory as a useful way of describing the cognitive development of novice programmers (Gluga, Kay, Lister, Kleitman, & Kleitman, 2013). Neo-piagetian development theory deals with abstraction and reasoning ability which are particularly relevant in computer programming (Gluga, et al., 2013). The use of neo-Piagetian has been proven beneficial in programming (Corney, Teague, Ahadi, & Lister, 2012; Lister, 2011) since neo-piagetian provides a way to describe the abstraction abilities of novice pro-grammer.

It has been known that one of the causes of students’ fail-ure in programming subjects is their inability to visually illustrate the flow of program code during the program execution (Siti Rosminah & Ahmad Zamzuri, 2014). Us-ing Neo-Piagetian approach helps to explain the reasons why novice programmers make little use of diagrams and exhibit a non-systematic approach to writing pro-grams (Lister, 2011).

Conclusion

Programming demands complex cognitive skills such as reasoning and planning. In particular, understanding the cognitive development stages of the students is vital towards the acquisition of domain specific skills i.e. pro-gramming. As programming is the backbone of the tech-nological advancement, students should be adequately competent with their programming skills. Applying neo-Piagetian approach and program visualization can enhance learners understanding in learning program-ming. Thus, greater understanding of the related theory such as Neo-Piagetian and its benefit on the teaching and learning of programming should be exploited by educators.

References

Azwina, M. Y., & Rukaini, A. (2005). The Evolution of Programming Courses: Course Curriculum, Students, and Their Performance. inroads – The SIGCSE Bulletin, 37(4), 74-78. Baldwin, L. P., & Kuljis, J. (2000). Visualisation Techniques for Learning and Teach-ing Programming. Journal of Computing and Information Technology, 4, 285-291.

Bergin, S., & Reilly, R. (2005). Programming: Factors that Influence Success. Paper presented at the SIGCSE, St. Louis, Missouri, USA.

Caspersen, M. E., & Kolling, M. (2009). STREAM: A First Programming Process. ACM Transactions on Computing Education, 9(1). doi: 10.1145/1513593.1513597 Corney, M., Teague, D., Ahadi, A., & Lister, R. (2012). Some Empirical Results for Neo-Piagetian Reasoning in Novice Programmers and the Relationship to Code Explanation Questions. Paper presented at the Proceedings of the Fourteenth Aus-tralasian Computing Education Conference (ACE), Melbourne, Australia.

Farkas, D., & Murthy, N. (2005). Attitudes Toward Computers, the Introductory Course and Recruiting New Majors: Preliminary Results. Paper presented at the 17th Workshop of the Psychology of Programming Interest Group (PPIG), Sussex University.

Gluga, R., Kay, J., Lister, R., Kleitman, S., & Kleitman, S. (2013). Mastering Cogni-tive Development Theory in Computer Science Education. Computer Science Edu-cation, 23(1), 24-57. doi: 10.1080/08993408.2013.768830

Helme, S., & Clarke, D. (2001). Identifying Cognitive Engagement in Mathematics Classroom. Mathematics Education Research Journal, 13, 133-153.

Kramer, J. (2007). Is Abstraction the Key to Computing? Commun. ACM, 50, 36-42.

Lister, R. (2011). Concrete and Other Neo-Piagetian Forms of Reasoning in the Novice Programmer. Paper presented at the Proceedings of the Thirteenth Aus-tralasian Computing Education Conference (ACE ) Perth, Australia.

McCracken, M., Almstrum, V., Diaz, D., Guzdial, M., Hagen, D., Kolikant, Y., . . . Wi-lusz, T. (2001). A Multi-National, Multi-Institutional Study of Assessment of Pro-gramming Skills of First-year CS Students. SIGCSE Bulletin, 33(4), 125-140.

Pyshkin, E. (2011, Oct. 31 2011-Nov. 3 2011). Teaching Programming: What We Miss in Academia. Paper presented at the 7th Central and Eastern European on Software Engineering Conference in Russia (CEE-SECR)

Robins, A., Rountree, J., & Rountree, N. (2003). Learning and Teaching Program-ming: A Review and Discussion. Computer Science Education, 13(2), 137-172.

Siti Rosminah, M. D., & Ahmad Zamzuri, M. A. (2014). Integration of Visualization Techniques and Active Learning Strategy in Learning Computer Programming: A Proposed Framework. International Journal on New Trends in Education and Their Implications, 5(1), 93-103.

Teague, D. (2012, September 9–11, 2012). Programming and Neo-Piagetian The-ory. Paper presented at the International Computing Education Research (ICER), Auckland, New Zealand.

Yacob, A., Saman, M. Y. M., & Yusoff, M. H. (2012). A Framework for Learning Pro-gramming Using TQM. International Journal of Information and Education Tech-nology, 2(6), 627-632. doi: 10.7763/IJIET.2012.V2.219

We welcome any feedback, suggestions, questions or comments from the readers. Email them to: [email protected]