7 research outputs found

    Pairing-based approach to support understanding of object-oriented concepts and programming

    Get PDF
    Blended learning comprises various learning modes with the support of digital resources. It has been a critical element in 21st-century teaching and learning environment at multiple levels of education, mainly tertiary level. In the software engineering field, pair programming is one of the techniques in Xtreme Programming principles in Agile software development methodology. Although pair programming is well-known among practitioners, studies have shown that pair programming can support computer science or software engineering students at higher learning institutions to understand the concepts in programming. Indeed, pair programming could support active learning among students. Inspired by pair programming, this study proposes that pairing-based pedagogy or "pairgogy" in blended learning could also increase students' confidence and interest in completing theoretical in-class exercises not limited to programming tasks with the support of an e-learning system. The proposed approach was applied to teaching object-oriented concepts using Java programs. The findings reflect that both pair programming and "pairgogy" complement each other as a pairing-based approach in blended learning to support understanding of object-oriented concepts and programming. Students' responses towards the approach applied in a semester were positive. The study also implies that most students preferred to be a driver, the person doing the program rather than a navigator who guides drivers on what to program. In this approach, students were also required to complete the in-class theoretical questions in pairs by tracing given programs and answered via the e-learning. Thus, the pairing-based approach has proven to be beneficial to support students in learning programming

    Pairing-Based Approach to Support Understanding of Object-Oriented Concepts and Programming

    Get PDF
    Blended learning comprises various learning modes with the support of digital resources. It has been a critical element in 21st-century teaching and learning environment at multiple levels of education, mainly tertiary level. In the software engineering field, pair programming is one of the techniques in Xtreme Programming principles in Agile software development methodology. Although pair programming is well-known among practitioners, studies have shown that pair programming can support computer science or software engineering students at higher learning institutions to understand the concepts in programming. Indeed, pair programming could support active learning among students. Inspired by pair programming, this study proposes that pairing-based pedagogy or “pairgogy” in blended learning could also increase students’ confidence and interest in completing theoretical in-class exercises not limited to programming tasks with the support of an e-learning system. The proposed approach was applied to teaching object-oriented concepts using Java programs. The findings reflect that both pair programming and “pairgogy” complement each other as a pairing-based approach in blended learning to support understanding of object-oriented concepts and programming. Students’ responses towards the approach applied in a semester were positive. The study also implies that most students preferred to be a driver, the person doing the program rather than a navigator who guides drivers on what to program. In this approach, students were also required to complete the in-class theoretical questions in pairs by tracing given programs and answered via the e-learning. Thus, the pairing-based approach has proven to be beneficial to support students in learning programming

    Toward Predicting Success and Failure in CS2: A Mixed-Method Analysis

    Full text link
    Factors driving success and failure in CS1 are the subject of much study but less so for CS2. This paper investigates the transition from CS1 to CS2 in search of leading indicators of success in CS2. Both CS1 and CS2 at the University of North Carolina Wilmington (UNCW) are taught in Python with annual enrollments of 300 and 150 respectively. In this paper, we report on the following research questions: 1) Are CS1 grades indicators of CS2 grades? 2) Does a quantitative relationship exist between CS2 course grade and a modified version of the SCS1 concept inventory? 3) What are the most challenging aspects of CS2, and how well does CS1 prepare students for CS2 from the student's perspective? We provide a quantitative analysis of 2300 CS1 and CS2 course grades from 2013--2019. In Spring 2019, we administered a modified version of the SCS1 concept inventory to 44 students in the first week of CS2. Further, 69 students completed an exit questionnaire at the conclusion of CS2 to gain qualitative student feedback on their challenges in CS2 and on how well CS1 prepared them for CS2. We find that 56% of students' grades were lower in CS2 than CS1, 18% improved their grades, and 26% earned the same grade. Of the changes, 62% were within one grade point. We find a statistically significant correlation between the modified SCS1 score and CS2 grade points. Students identify linked lists and class/object concepts among the most challenging. Student feedback on CS2 challenges and the adequacy of their CS1 preparations identify possible avenues for improving the CS1-CS2 transition.Comment: The definitive Version of Record was published in 2020 ACM Southeast Conference (ACMSE 2020), April 2-4, 2020, Tampa, FL, USA. 8 page

    An exploration of the teaching and learning of Information Technology (IT) programming in a higher education institution in KwaZulu-Natal (KZN)

    Get PDF
    Doctoral Degree. University of KwaZulu-Natal, Durban.In this study, classic grounded theory, threshold concepts, self-study and practitioner research capture the processes of Information Technology (IT) academics who teach computer programming to first-year IT students at a university of technology in Kwa-Zulu Natal. The qualitative data analysis revealed the basic pedagogy of teaching and learning computer programming, and described how IT academics perceived their vocation and their decisions to take action to ultimately improve the quality of teaching and learning of IT programming. From the data, the following four themes emerged in the process of teaching and learning computer programming: 1) Teaching IT; 2) Learning IT and its impact; 3) Challenges in teaching IT; 4) Recommendations for teaching IT programming. This study will assist first-year IT programming academics to understand their pedagogical impact at an institution of higher learning. This study will further potentially serve as a path for future research and aid in understanding the pedagogical impact of the teaching and learning of IT on first-year IT students

    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

    TRACING LEARNING ENVIRONMENT IN JAVA PROGRAMMING LANGUAGE

    Get PDF
    The visualisation approach is one of the programming learning styles that has been taken into account in programming education. A collection of visualisation tools has emerged with the aim of assisting novice programmers in learning how to program. Each tool has its own set of features that may or may not be helpful in gaining a better understanding. The methods that we used in this study are focused on using memory referencing and visualisation to clarify what happens during individual program statement executions. Understanding the efficacy of current instructional resources is a critical component of gathering students' requirements and needs for future improvement. The “Tracing Learning Environment” (TLE) is developed for novice programmers to help them trace the sequence of execution of a software program and the reserved place of data in the memory. The framework relies on using visualisation as the programs are run and to show the effect of each statement in the code. It provides an environment for learners to see what happens to the data while running the program. The specification of the TLE draws largely on research regarding the role of visualisation in teaching computer programming and associated literature on tools to support learning programming. The TLE framework has been evaluated by conducting an empirical study using a mixed-method approach with novice and expert participants. The study has included surveys, focus groups, and semi-structured interviews. Student performance was measured before and after using the visualisation tool and compared with a control group who participated in a standard teaching session only. Early findings highlighted the need to visualise the control of the execution of code, evaluation of expressions, represent the class hierarchy along with the importance of a good interface/usability of the tool and to consider the programming languages supported. The evaluation findings are in line with the literature surrounding the benefits of using visualisation in learning to program. The findings found visualisation increased the students’ performance and confidence. When compared to the regular lab activities, the visualisation contributed to better understanding and support for learning to program.Ministry of Education, Saudi Arabi
    corecore