1,730 research outputs found

    Introductory programming: a systematic literature review

    Get PDF
    As computing becomes a mainstream discipline embedded in the school curriculum and acts as an enabler for an increasing range of academic disciplines in higher education, the literature on introductory programming is growing. Although there have been several reviews that focus on specific aspects of introductory programming, there has been no broad overview of the literature exploring recent trends across the breadth of introductory programming. This paper is the report of an ITiCSE working group that conducted a systematic review in order to gain an overview of the introductory programming literature. Partitioning the literature into papers addressing the student, teaching, the curriculum, and assessment, we explore trends, highlight advances in knowledge over the past 15 years, and indicate possible directions for future research

    Automated Feedback for Learning Code Refactoring

    Get PDF

    A comparison of programming notations for a tertiary level introductory programming course

    Get PDF
    Increasing pressure from national government to improve throughput at South African tertiary education institutions presents challenges to educators of introductory programming courses. In response, educators must adopt effective methods and strategies that encourage novice programmers to be successful in such courses. An approach that seeks to increase and maintain satisfactory throughput is the modification of the teaching model in these courses by adjusting presentation techniques. This thesis investigates the effect of integrating an experimental iconic programming notation and associated development environment with existing conventional textual technological support in the teaching model of a tertiary level introductory programming course. The investigation compares the performance achievement of novice programmers using only conventional textual technological support with that of novice programmers using the integrated iconic and conventional textual technological support. In preparation for the investigation, interpretation of existing knowledge on the behaviour of novice programmers while learning to program results in a novel framework of eight novice programmer requirements for technological support in an introductory programming course. This framework is applied in the examination of existing categories of technological support as well as in the design of new technological support for novice programmers learning to program. It thus provides information for the selection of existing and the design of new introductory programming technological support. The findings of the investigation suggest strong evidence that performance achievement of novice programmers in a tertiary level introductory programming course improves significantly with the inclusion of iconic technological support in the teaching model. The benefits are particularly evident in the portion of the novice programmer population who have been identified as being at risk of being successful in the course. Novice programmers identified as being at risk perform substantially better when using iconic technological support concurrently with conventional textual technological support than their equals who use only the latter form. Considerably more at risk novice programmers using the integrated form of technological support are in fact successful in the introductory programming course when compared with their counterparts who use conventional textual technological support only. The contributions of this thesis address deficiencies existing in current documented research. These contributions are primarily apparent in a number of distinct areas, namely: • formalisation of a novel framework of novice programmer requirements for technological support in an introductory programming course; • application of the framework as a formal evaluation technique; • application of the framework in the design of a visual iconic programming notation and development environment; • enhancement of existing empirical evidence and experimental research methodology typically applied to studies in programming; as well as • a proposal for a modified introductory programming course teaching model. The thesis has effectively applied substantial existing research on the cognitive model of the novice programmer as well as that on experimental technological support. The increase of throughput to a recommended rate of 75 percent in the tertiary level introductory programming course at the University of Port Elizabeth is attributed solely to the incorporation of iconic technological support in the teaching model of the course

    A study of novice programmer performance and programming pedagogy.

    Get PDF
    Identifying and mitigating the difficulties experienced by novice programmers is an active area of research that has embraced a number of research areas. The aim of this research was to perform a holistic study into the causes of poor performance in novice programmers and to develop teaching approaches to mitigate them. A grounded action methodology was adopted to enable the primary concepts of programming cognitive psychology and their relationships to be established, in a systematic and formal manner. To further investigate novice programmer behaviour, two sub-studies were conducted into programming performance and ability. The first sub-study was a novel application of the FP-Tree algorithm to determine if novice programmers demonstrated predictable patterns of behaviour. This was the first study to data mine programming behavioural characteristics rather than the learner’s background information such as age and gender. Using the algorithm, patterns of behaviour were generated and associated with the students’ ability. No patterns of behaviour were identified and it was not possible to predict student results using this method. This suggests that novice programmers demonstrate no set patterns of programming behaviour that can be used determine their ability, although problem solving was found to be an important characteristic. Therefore, there was no evidence that performance could be improved by adopting pedagogies to promote simple changes in programming behaviour beyond the provision of specific problem solving instruction. A second sub-study was conducted using Raven’s Matrices which determined that cognitive psychology, specifically working memory, played an important role in novice programmer ability. The implication was that programming pedagogies must take into consideration the cognitive psychology of programming and the cognitive load imposed on learners. Abstracted Construct Instruction was developed based on these findings and forms a new pedagogy for teaching programming that promotes the recall of abstract patterns while reducing the cognitive demands associated with developing code. Cognitive load is determined by the student’s ability to ignore irrelevant surface features of the written problem and to cross-reference between the problem domain and their mental program model. The former is dealt with by producing tersely written exercises to eliminate distractors, while for the latter the teaching of problem solving should be delayed until the student’s program model is formed. While this does delay the development of problem solving skills, the problem solving abilities of students taught using this pedagogy were found to be comparable with students taught using a more traditional approach. Furthermore, monitoring students’ understanding of these patterns enabled micromanagement of the learning process, and hence explanations were provided for novice behaviour such as difficulties using arrays, inert knowledge and “code thrashing”. For teaching more complex problem solving, scaffolding of practice was investigated through a program framework that could be developed in stages by the students. However, personalising the level of scaffolding required was complicated and found to be difficult to achieve in practice. In both cases, these new teaching approaches evolved as part of a grounded theory study and a clear progression of teaching practice was demonstrated with appropriate evaluation at each stage in accordance with action researc

    Enhancing comprehension in open distance learning computer programming education with visualization

    Get PDF
    This thesis describes a research project aimed at improving the tracing skills of first-year programming students enrolled for an introductory C++ course at an open distance learning institution by means of a tutorial in the form of a program visualization tool to teach the students to draw variable diagrams. The research was based on the findings from the BRACElet project (Clear, Whalley, Robbins, Philpott, Eckerdal, Laakso & Lister, 2011). A design-based research methodology was followed. To guide the process of developing the tutorial, a framework of 26 guidelines for developing and using visualization tools to teach programming was synthesized from the literature on computing education research CER, educational psychology and computer graphics. Guidelines were supplemented with reasons or explanations for their recommendation and considerations to be taken into account when using a guideline. The framework was enhanced by lessons learnt during the development and testing of the tutorial. The tutorial was tested and refined during two implementation cycles. Both cycles included quantitative and qualitative investigations. All students registered for the introductory module received the tool with their study material. For the quantitative investigations, students completed a questionnaire after using the tutorial. Through the questionnaire biographical data was acquired, the manner in which students used the tutorial and how they experienced using it. The responses to the questionnaires were statistically analysed in combination with respondents’ final marks. The statistical modelling indicated that the students’ biographical properties (a combination of level of programming experience, marks obtained for Mathematics and English in matric and first-time registration for COS1511 or not), had the biggest impact on their final marks by far. During the qualitative investigations students were eye tracked in a Human-Computer Interaction laboratory. The gaze replays in both cycles revealed that students’ reading skills impacted largely on their success, connecting with the findings from the quantitative investigations. Reflections on why the tutorial did not achieve its purpose; and why poor reading skills may have such a strong effect on learning to program, contribute some theoretical understanding as to how novices learn to program.Computer ScienceD. Phil. (Computer Science

    Investigating the Impacts of Participating in a Virtual Literacy Clinic: A Case Study Exploring Self-Efficacy in Pre-Service Teachers

    Get PDF
    This study describes how participation in a university literacy clinic impacts self-efficacy in pre-service teacher candidates. This study was conducted one and a half years into the global COVID-19 pandemic, creating the need for the clinic’s program, Literacy Camp, to be completed through fully virtual means. Thus, ways in which the pre-service teachers’ experience was impacted by the method of instructional delivery was also detailed. Despite the body of growing research related to virtual learning and efficacy outcomes, there was a gap in the literature related to pre-service teachers’ participation in a fully virtual university literacy clinic and its impacts on their self-efficacy. This study was designed with a need to fill this hole in mind. The unique and personal experiences of 23 elementary pre-service teacher candidates completing a yearlong internship and participating in a university literacy clinic were explored in this qualitative case study, framed through a social constructivist lens (Creswell, 2013; Vygotsky, 1978) so that the voice of the individual was elevated and carefully considered. A convenience sampling scheme was utilized to collect and analyze data compiled from three main data sources provided by pre-service teacher candidate participants: an efficacy pre-survey, an efficacy post-survey, and ten daily debrief forms. Four original themes emerged from the data: Building a Learning Culture, Tutor as the Learner, Student First Approach to Intervention, and The Virtual Environment. Findings from this study indicate that participation in the virtual literacy clinic allowed pre-service teachers to successfully plan and implement a full, individualized intervention related to literacy learning for one elementary or middle school student. Participants were able to reflect on their experience to grow as a learner and recognize the impacts they made on their Literacy Camp students. Despite the challenges faced through a fully virtual learning setting, pre-service teachers were able to overcome obstacles and complete their practicum experience, gaining self-efficacy throughout the process

    The evaluation of a pedagogical-program development environment for Novice programmers : a comparative study

    Get PDF
    It is an acknowledged fact that many novice programmers experience difficulty in the process of learning to program. One of the contributing factors to this difficulty is the Program Development Environment (PDE). Professional-PDEs are those developed specifically for professional programmers, but are often used by educational institutions in the instruction of programming. It has long been accepted that such environments are inappropriate in the instruction of programming due to unnecessary complexity and lack of support for novice programmers in the learning process. Numerous pedagogical-PDEs supporting the mechanics of programming have been developed in response to this. A review of literature, however, indicates that very limited empirical studies comparing pedagogical-PDEs and professional-PDEs have been conducted. The current study investigates whether there are measurable benefits to using a pedagogical-PDE supporting the mechanics of programming in the instruction of programming instead of a professional-PDE. A comparative study of this nature requires a representative pedagogical-PDE and representative professional-PDE be compared with one another. The first part of the current study determines a set of requirements that a pedagogical- PDE should adhere to based on literature. A set of representative features for a pedagogical-PDE is derived by examining the features of existing PDEs in conjunction with the set of requirements. Based on these features, a pedagogical-PDE, known as SimplifIDE, is developed that implements the representative set of features and that meets are the requirements for a pedagogical-PDE. The second part of the current study is the specification and administration of an empirical experiment in which SimplifIDE and Borland© DelphiTM are compared with one another. A holistic approach in determining the differences between the PDEs is taken and three main areas are examined, namely academic performance, perceptions and programming behavior

    The Design and Evaluation of an Educational Software Development Process for First Year Computing Undergraduates

    Get PDF
    First year, undergraduate computing students experience a series of well-known challenges when learning how to design and develop software solutions. These challenges, which include a failure to engage effectively with planning solutions prior to implementation ultimately impact upon the students’ competency and their retention beyond the first year of their studies. In the software industry, software development processes systematically guide the development of software solutions through iterations of analysis, design, implementation and testing. Industry-standard processes are, however, unsuitable for novice programmers as they require prior programming knowledge. This study investigates how a researcher-designed educational software development process could be created for novice undergraduate learners, and the impact of this process on their competence in learning how to develop software solutions. Based on an Action Research methodology that ran over three cycles, this research demonstrates how an educational software development methodology (termed FRESH) and its operationalised process (termed CADET which is a concrete implementation of the FRESH methodology), was designed and implemented as an educational tool for enhancing student engagement and competency in software development. Through CADET, students were reframed as software developers who understand the value in planning and developing software solutions, and not as programmers who prematurely try to implement solutions. While there remain opportunities to further enhance the technical sophistication of the process as it is implemented in practice, CADET enabled the software development steps of analysis and design to be explicit elements of developing software solutions, rather than their more typically implicit inclusion in introductory CS courses. The research contributes to the field of computing education by exploring the possibilities of – and by concretely generating – an appropriate scaffolded methodology and process; by illustrating the use of computational thinking and threshold concepts in software development; and by providing a novel evaluation framework (termed AKM-SOLO) to aid in the continuous improvement of educational processes and courses by measuring student learning experiences and competencies
    • …
    corecore