Programming assistance tools to support the learning of IT programming in South African secondary schools

Novice programmers struggle to understand introductory programming concepts and this difficulty, associated with learning to program, contributes mainly to the lack of interest in the field of Computer Science at tertiary level. Programming assistance tools have been used to assist novice programmers extensively at education institutions. A programming assistance tool (PAT) is a software program that can be used by novice programmers to learn how to program and/or improve their understanding of programming concepts.This research proposes that novice programmers, specifically Information Technology (IT) scholars in South African secondary schools, could be supported by PATs. The main objective of this research was to determine whether the use of a PAT impacted IT scholars' understanding of programming concepts and their motivation towards programming in general. Criteria for the selection of PATs were derived from the programming difficulties identified in literature and from surveys to IT teachers and scholars. The selection criteria were grouped into programming knowledge and programming skills categories. Existing PATs were evaluated using the selection criteria and three PATs, namely, RoboMind, Scratch and B#, were selected for evaluation in this research study. A convenience sample of schools participated in the study. The three PATs provided different approaches while being able to support the Delphi programming language used in schools that participated in the study.The findings of this research indicated that, although scholars perceived the PATs to be useful in the explanation of certain of the programming concepts, there was no conclusive evidence that IT scholars who used a PAT had a significantly better understanding of programming concepts and motivation towards programming than scholars who did not use a PAT. Participant feedback was used to identify the strengths and shortcomings of the three PATs and to provide recommendations for the development of future PATs specifically designed to support IT scholars. Investigation of software to support novice programming in South African schools.Selection criteria for programming assistance tools (PATs) were derived.PATs were selected for use and evaluation by participating scholars.PATs did not have a significant impact on understanding of programming concepts.PATs need to support the programming concepts and syntax being taught to scholars.

[1]  Michael Kölling,et al.  The Problem of Teaching Object-Oriented Programming, Part I: Languages , 1999, J. Object Oriented Program..

[2]  Arto Kaarna,et al.  Classification of computerized learning tools for introductory programming courses: learning approach , 2004, IEEE International Conference on Advanced Learning Technologies, 2004. Proceedings..

[3]  Mordechai Ben-Ari,et al.  An Extended Experiment with Jeliot 2000 , 2000 .

[4]  Mohamed A. Nour,et al.  On the Development of a Programming Teaching Tool: The Effect of Teaching by Templates on the Learning Process , 2006, J. Inf. Technol. Educ..

[5]  Michael de Raadt Teaching programming strategies explicitly to novice programmers , 2008 .

[6]  Cristiana Areias,et al.  A tool to help students to develop programming skills , 2007, CompSysTech '07.

[7]  Hossana Twinomurinzi,et al.  Changing career choice factors as the economic environment changes , 2012, SAICSIT '12.

[8]  Marc Roper,et al.  Using cognitive conflict and visualisation to improve mental models held by novice programmers , 2008, SIGCSE '08.

[9]  Eric Rosenbaum,et al.  Scratch: programming for all , 2009, Commun. ACM.

[10]  Katherine Maillet,et al.  Dec-CS: the computer science declining phenomenon , 2010, WCE 2010.

[11]  Jasna Kuljis,et al.  Visualisation techniques for learning and teaching programming , 2000, ITI 2000. Proceedings of the 22nd International Conference on Information Technology Interfaces (Cat. No.00EX411).

[12]  Sarah Hug,et al.  Cultivating a K12 computer science community: a case study , 2013, SIGCSE '13.

[13]  L. Cohen,et al.  Research Methods in Education , 1980 .

[14]  Robert McCartney,et al.  A multi-national study of reading and tracing skills in novice programmers , 2004, ITiCSE-WGR '04.

[15]  Elsa Mentz,et al.  The school subject information technology: a South African perspective , 2009 .

[16]  D. A. Kenny,et al.  A quasi-experimental approach to assessing treatment effects in the nonequivalent control group design. , 1975 .

[17]  Lauri Malmi,et al.  A survey of literature on the teaching of introductory programming , 2007, ACM SIGCSE Bull..

[18]  Chris Stephenson,et al.  Running on Empty: the Failure to Teach K--12 Computer Science in the Digital Age , 2010 .

[19]  Robert B. Allen,et al.  The Impact of Different Teaching Approaches and Languages on Student Learning of Introductory Programming Concepts , 2016, ACM Trans. Comput. Educ..

[20]  André P. Calitz,et al.  A model for the alignment of ICT education with business ICT skills requirements , 2010 .

[21]  Barry C. Gribbons,et al.  True and Quasi-Experimental Designs , 1996 .

[22]  Janet Rountree,et al.  Learning and Teaching Programming: A Review and Discussion , 2003, Comput. Sci. Educ..

[23]  Gul A. Agha,et al.  Concurrent object-oriented programming , 1993, CACM.

[24]  Kirsti Ala-Mutka,et al.  A study of the difficulties of novice programmers , 2005, ITiCSE '05.

[25]  J. Bruner,et al.  The role of tutoring in problem solving. , 1976, Journal of child psychology and psychiatry, and allied disciplines.

[26]  Stuart K Garner A Program Design Tool to Help Novices Learn Programming , 2007 .

[27]  A.P. Calitz,et al.  B#: The Development and Assessment of an Iconic Programming Tool for Novice Programmers , 2006, 2006 7th International Conference on Information Technology Based Higher Education and Training.

[28]  Caitlin Kelleher,et al.  Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers , 2005, CSUR.

[29]  Margaret Hamilton,et al.  A taxonomic study of novice programming summative assessment , 2009, ACE '09.

[30]  David J. Malan,et al.  Scratch for budding computer scientists , 2007, SIGCSE.

[31]  Mark Pendergast,et al.  Teaching Introductory Programming to IS Students: Java Problems and Pitfalls , 2006, J. Inf. Technol. Educ..

[32]  Michael de Raadt Teaching Programming Strategies Explicitly to Novice Programmers: Can the way we teach strategies improve novice outcomes? , 2009 .