19 research outputs found

    Exploring student perceptions about the use of visual programming environments, their relation to student learning styles and their impact on student motivation in undergraduate introductory programming modules

    Get PDF
    My research aims to explore how students perceive the usability and enjoyment of visual/block-based programming environments (VPEs), to what extent their learning styles relate to these perceptions and finally to what extent these tools facilitate student understanding of basic programming constructs and impact their motivation to learn programming

    Re-designing program animation

    Get PDF

    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

    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

    Understanding notional machines through traditional teaching with conceptual contraposition and program memory tracing

    Get PDF
    A correct understanding about how computers run code is mandatory in order to effectively learn to program. Lectures have historically been used in programming courses to teach how computers execute code, and students are assessed through traditional evaluation methods, such as exams. Constructivism learning theory objects to students’ passiveness during lessons, and traditional quantitative methods for evaluating a complex cognitive process such as understanding. Constructivism proposes complimentary techniques, such as conceptual contraposition and colloquies. We enriched lectures of a “Programming II” (CS2) course combining conceptual contraposition with program memory tracing, then we evaluated students’ understanding of programming concepts through colloquies. Results revealed that these techniques applied to the lecture are insufficient to help students develop satisfactory mental models of the C++ notional machine, and colloquies behaved as the most comprehensive traditional evaluations conducted in the course.Universidad de Costa Rica/[]/UCR/Costa RicaMinisterio de Ciencia Tecnología y Telecomunicaciones de Costa Rica/[]/MICITT/Costa RicaUCR::Vicerrectoría de Investigación::Unidades de Investigación::Ingeniería::Centro de Investigaciones en Tecnologías de Información y Comunicación (CITIC)UCR::Vicerrectoría de Docencia::Ingeniería::Facultad de Ingeniería::Escuela de Ciencias de la Computación e Informátic

    An evaluation of programming assistance tools to support the learning of IT programming: a case study in South African secondary schools

    Get PDF
    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 introductory 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 programming 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. Selection 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 criteria 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 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 recommendations 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 contributions 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 criteria and, ultimately, the development of a new PAT, specifically designed to support IT learner understanding of programming concepts and motivation towards programming

    An evaluation of programming assistance tools to support the learning of IT programming: a case study in South African secondary schools

    Get PDF
    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 introductory 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 programming 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. Selection 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 criteria 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 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 recommendations 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 contributions 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 criteria and, ultimately, the development of a new PAT, specifically designed to support IT learner understanding of programming concepts and motivation towards programming

    Improved Teaching of Database Schema Modeling by Visualizing Changes in Levels of Abstraction

    Get PDF
    Conceptual modeling of databases is a complex cognitive activity, particularly for novice database designers. The current research empirically tests a new pedagogy for this activity. It examines an instructional approach that stresses visualizing gradual transitions between levels of abstraction in different hierarchic levels of a relational database schema. The new approach builds on a four-level TSSL model from the field of human-computer interaction. TSSL, an acronym for the Task, Semantics, Syntax, and Lexical levels, is applied here to describe the levels of conceptual database modeling and to explain how improved instructional design can help minimize extraneous cognitive load during the design of database schemas. We tested the effectiveness of the proposed instructional approach via a controlled experiment carried out on IS students. We divided students into two groups, those exposed to a visual emphasis on the syntax of gradual transitions in a schema structure and those not exposed to it. We then measured performance in terms of errors in students’ solutions while also recording their perceptions and attitudes toward the instructional approach and the activity of database modeling. Our results show that the new approach is an effective tool for teaching database modeling

    Emergence of computing education as a research discipline

    Get PDF
    This thesis investigates the changing nature and status of computing education research (CER) over a number of years, specifically addressing the question of whether computing education can legitimately be considered a research discipline. The principal approach to addressing this question is an examination of the published literature in computing education conferences and journals. A classification system was devised for this literature, one goal of the system being to clearly identify some publications as research – once a suitable definition of research was established. When the system is applied to a corpus of publications, it becomes possible to determine the proportion of those publications that are classified as research, and thence to detect trends over time and similarities and differences between publication venues. The classification system has been applied to all of the papers over several years in a number of major computing education conferences and journals. Much of the classification was done by the author alone, and the remainder by a team that he formed in order to assess the inter-rater reliability of the classification system. This classification work led to two subsequent projects, led by Associate Professor Judy Sheard and Professor Lauri Malmi, that devised and applied further classification systems to examine the research approaches and methods used in the work reported in computing education publications. Classification of nearly 2000 publications over ranges of 3-10 years uncovers both strong similarities and distinct differences between publication venues. It also establishes clear evidence of a substantial growth in the proportion of research papers over the years in question. These findings are considered in the light of published perspectives on what constitutes a discipline of research, and lead to a confident assertion that computing education can now rightly be considered a discipline of research
    corecore