1,245 research outputs found

    An investigation of a manipulative simulation in the learning of recursive programming

    Get PDF
    Recursion is a fundamentally important topic in Computer Sciences; Even so, it is often omitted in introductory courses, or discussed only briefly. This is likely due, at least in part, to the fact that teaching recursion has been difficult. Perhaps the biggest problem in teaching recursion is that there are few, if any, naturally existing examples of recursion in our lives. However, successful simulations have shown that the computer may hold the key to solving this problem. A simulation of recursion presented to students before formal classroom instruction can provide a foundation of concrete experiences to build upon. The challenge is to develop an appropriate simulation and lesson plan for introducing recursion to students early in their programming experience;This research reviews previous attempts at teaching recursion, including detailed lesson plans, mental models of recursion, and other simulations. Then, a new simulation and lesson plan for its use are described. The effectiveness of the simulation is studied using two groups of students enrolled in a college-level, introductory programming course. Results indicate that students who used the simulation as their first exposure to recursion gained a deeper understanding of recursion than students receiving a lecture-based introduction to recursion. Specifically, students who used the simulation required fewer attempts to complete a set of recursive programming exercises and performed better on a follow-up exam given six weeks after the experiment;This research concludes with a discussion of two important questions: How should students think about recursion and how do they think about recursion. The simulation\u27s strengths and shortcomings in fostering effective ways of thinking about recursion are also discussed

    Natural Language Tutoring and the Novice Programmer

    Get PDF
    For beginning programmers, inadequate problem solving and planning skills are among the most salient of their weaknesses. Novices, by definition, lack much of the tacit knowledge that underlies effective programming. This dissertation examines the efficacy of natural language tutoring (NLT) to foster acquisition of this tacit knowledge. Coached Program Planning (CPP) is proposed as a solution to the problem of teaching the tacit knowledge of programming. The general aim is to cultivate the development of such knowledge by eliciting and scaffolding the problem solving and planning activities that novices are known to underestimate or bypass altogether. ProPL (pro-PELL), a dialogue-based intelligent tutoring system based on CPP, is also described. In an evaluation, the primary findings were that students who received tutoring from ProPL seemed to exhibit an improved ability compose plans and displayed behaviors suggestive of thinking at greater levels of abstraction than students in a read-only control group. The major finding is that NLT appears to be effective in teaching program composition skills

    Implications for the Design of Tutorial Systems for Teaching Program Comprehension: An Empirical User Study

    Get PDF
    This paper reports the results of an observational user study of a tutorial system for learning to comprehend Java programs. The study involved 9 undergraduate college students enrolled in introductory programming courses. For the study, we built a new system, Coding Companion, with a design generally representative of prior educational systems for learning program comprehension, but that incorporates several novel design decisions for addressing information overload and split-attention effect. Key ?ndings include the following. Participant feedback and usage data suggest that the system was generally helpful for learning and that the lesson interface was engaging and not overly confusing. All nine participants were strongly positive about quizzes provided by the system, and many found answer explanations helpful, even when they had answered the question correctly. Participant comments revealed a tension between information overload caused by long, complex program traces and the importance of completely explaining the traces, especially for beginners
    • 

    corecore