An Evaluation of Programming Assistance Tools to Support the Learning of IT Programming: a Case Study in South African Secondary Schools
Total Page:16
File Type:pdf, Size:1020Kb
An Evaluation of Programming Assistance Tools to Support the Learning of IT Programming: A Case Study in South African Secondary Schools by Melisa Koorsse Submitted in fulfilment of the requirements for the degree of Philosophiae Doctor in Computer Science at the Nelson Mandela Metropolitan University Promoter: Prof C.B. Cilliers Co-Promoter: Prof. A.P. Calitz January 2012 Declaration I, Melisa Koorsse (199201064), hereby declare that the thesis for my qualification to be awarded is my own work and that it has not previously been submitted for assessment or completion of any postgraduate qualification to another University or for another quali- fication. M. Koorsse Copyright © 2012 Nelson Mandela Metropolitan University All rights reserved. ii Summary Worldwide, there is a decline in interest in the computer science profession and in the subject at secondary school level. Novice programmers struggle to understand introduc- tory programming concepts and this difficulty of learning to program is contributing to the lack of interest in the field of computer science. Information Technology (IT) learners in South African secondary schools are novice programmers, introduced to introductory programming concepts in the subject which also includes topics on hardware and system software, e-communication, social and ethical issues, spreadsheets and databases. The difficulties faced by IT learners are worsened by the lack of suitably qualified teachers, a saturated learning programme that allocates very little time to the understanding of complex programming concepts and limited class time where practical examples can be implemented with the support of the IT teacher. This research proposes that IT learners could be supported by a programming assistance tool (PAT). A 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. PATs use different techniques to assist novice programmers. The main objective of this research was to determine whether the use of a PAT impacted IT learners’ understanding of pro- gramming concepts and motivation towards programming. The literature study and feedback from IT learners and teachers were used to identify novice programming difficulties and IT learner programming difficulties, respectively. Se- lection criteria were derived from the programming difficulties identified. The selection criteria were grouped into three categories, namely, programming concepts, programming knowledge and programming skills. Existing PATs were evaluated using the selection cri- teria and three PATs, namely, RoboMind, Scratch and B#, were selected as suitable for use by IT learners. RoboMind was adapted in this research study, allowing it to support the Delphi programming language. The three PATs were evaluated by participating IT learners at four schools. The findings of this research provided no conclusive evidence that IT learners who used a PAT had a significantly better understanding of programming concepts and motivation iii SUMMARY iv towards programming than learners who did not use a PAT. IT learner feedback was used to identify the strengths and shortcomings of the three PATs and to provide recommen- dations for the development of PATs specifically to support IT learners. This research study has provided several theoretical and practical contributions, including the research design, selection criteria, adaptations to RoboMind and the evaluation of the three PATs. In addition, IT teachers and learners have been made aware of PATs and the support that can be provided by these PATs. IT teachers have also been provided with a means of selecting PATs applicable to the IT curriculum. All the research contribu- tions have formed the basis for future work, such as improving and extending RoboMind’s functionality and support of programming concepts, the refinement of the selection cri- teria and, ultimately, the development of a new PAT, specifically designed to support IT learner understanding of programming concepts and motivation towards programming. Acknowledgements This research could not have been completed without the contributions of many different people, who have supported and assisted in this research in different ways. I would like to extend my appreciation to the following: I would like to thank God for the perseverance and wisdom that He has bestowed upon me during this research, and throughout my life. The following words have been a constant source of encouragement: “I can do all things through Christ who strengthens me.” (Phillipians 4:13) My promoters, Charmain Cilliers and André Calitz, for their invaluable guidance and continuous support for the duration of this research. Their advice and suggestions were always constructive and improved the quality of the work. The participating schools and learners for their co-operation during this study. A special thank you to the IT teachers at the participating schools for their time and co-operation with regards to the administration of questionnaires and class tests. Their contribution has been invaluable to this research study. The Department of Computing Sciences for allowing me to conduct this research and for providing ongoing research support. Prof. Danie Venter and John Cullen for their time and assistance with statistical analysis and language editing, respectively. Clayton Burger for giving his time to provide feedback and technical support. Finally, I would like to thank my family, in particular my mother, for unconditional support and encouragement throughout a challenging time. The financial assistance of the National Research Foundation (NRF) towards this research is hereby acknowledged. Opinions expressed and conclusions arrived at, are those of the author and are not necessarily to be attributed to the NRF. v Dedications This thesis is dedicated to my grandmother Dorothy Enith Cunningham vi Contents Acknowledgements v Dedications vi Contents vii List of Figures xii List of Tables xiv Listings xvi 1 Introduction 1 1.1 Background . 1 1.2 Research Relevance . 4 1.3 Research Outline . 5 1.3.1 Problem Statement . 6 1.3.2 Thesis Statement . 6 1.3.3 Research Objectives . 7 1.4 Research Methodology . 9 1.5 Scope and Limitations . 10 1.6 Conclusion and Thesis Structure . 12 2 Research Design and Methods 15 2.1 Introduction . 15 2.2 Research Strategy . 15 2.2.1 Identification of Suitable PATs . 17 2.2.2 Evaluation of Proposed PATs . 18 2.3 Research Hypotheses . 22 2.4 Participant Selection . 23 2.5 Data Collection . 23 2.5.1 Questionnaires . 24 2.5.1.1 IT Teacher Questionnaires . 24 2.5.1.2 IT Decision Questionnaire . 25 vii CONTENTS viii 2.5.1.3 Perceived Difficulty of Programming Questionnaire . 26 2.5.1.4 Motivated Strategies for Learning Questionnaire (MSLQ) . 27 2.5.1.5 Visual, Aural, Read/Write, Kinaesthetic (VARK) Ques- tionnaire . 28 2.5.1.6 PAT Evaluation Questionnaire . 29 2.5.2 Class Tests . 31 2.6 Data Analysis . 32 2.7 Risks and Limitations . 33 2.8 Conclusion . 33 3 Introductory Programming 35 3.1 Introduction . 35 3.2 Difficulties of Learning to Program . 36 3.2.1 Programming Skills and Knowledge . 36 3.2.2 Teaching Approach . 40 3.2.3 Programming Language and Environment . 42 3.2.4 Programming Concepts . 43 3.3 Approaches to Address Programming Difficulties . 45 3.4 Conclusion . 47 4 Selection Criteria for PATs to Support IT Programming 50 4.1 Introduction . 50 4.2 IT Teacher Feedback . 51 4.2.1 Teaching IT in South African Secondary Schools . 51 4.2.2 Teaching IT Programming Content . 53 4.2.3 Selection Criteria from IT Teacher Feedback . 55 4.3 IT Learner Feedback . 56 4.3.1 Perceived Difficulty of IT . 57 4.3.2 Selection Criteria from IT Learner Feedback . 60 4.4 Selection Criteria . 60 4.5 Conclusion . 63 5 Programming Assistance Tool Selection 65 5.1 Introduction . 65 5.2 Techniques Used by PATs . 66 5.2.1 Definition of a PAT . 66 5.2.2 Evaluation of Techniques used by PATs . 68 5.2.3 Learning Preferences of IT learners . 69 5.3 Programming Assistance Tools for IT . 72 5.3.1 RoboMind . 73 5.3.2 BlueJ . 74 CONTENTS ix 5.3.3 Greenfoot . 75 5.3.4 Scratch . 76 5.3.5 B# . 78 5.3.6 Jeliot . 79 5.3.7 Ville . 80 5.3.8 PlanAni . 81 5.3.9 Alice . 82 5.3.10 jGRASP . 84 5.4 PAT Selection . 85 5.4.1 Programming Knowledge . 85 5.4.2 Programming Skills . 87 5.4.3 Programming Concepts . 88 5.4.4 Techniques used by the PATs . 90 5.4.5 PAT Selection for this Research Study . 91 5.5 Conclusion . 92 6 PAT Preparation for IT Learners 94 6.1 Introduction . 94 6.2 Programming Concepts in Delphi and the PATs . 95 6.2.1 Delphi . 96 6.2.2 RoboMind . 101 6.2.2.1 Unadapted RoboMind . 102 6.2.2.2 Adapted RoboMind . 103 6.2.3 Scratch . 109 6.2.4 B# . 113 6.3 Conclusion . 116 7 The Impact of PATs on the Understanding of Programming Concepts 118 7.1 Introduction . 118 7.2 Application of Experimental Procedure . 119 7.2.1 Research Sample . 119 7.2.2 Supplementary Support . 120 7.2.3 Data Collection, Analysis and Presentation . 121 7.2.4 Overall Results . 124 7.2.5 Difficulties Experienced . 124 7.3 Evaluation of PATs ..