11 research outputs found

    Employing Subgoals in Computer Programming Education

    Get PDF
    The rapid integration of technology into our professional and personal lives has left many education systems ill-equipped to deal with the influx of people seeking computing education. To improve computing education, we are applying techniques that have been developed for other procedural fields. The present study applied such a technique, subgoal labeled worked examples, to explore whether it would improve programming instruction. The first two experiments, conducted in a laboratory, suggest that the intervention improves undergraduate learners’ problem solving performance and affects how learners approach problem solving. A third experiment demonstrates that the intervention has similar, and perhaps stronger, effects in an online learning environment with in-service K-12 teachers who want to become qualified to teach computing courses. By implementing this subgoal intervention as a tool for educators to teach themselves and their students, education systems could improve computing education and better prepare learners for an increasingly technical world

    Varying effects of subgoal labeled expository text in programming, chemistry, and statistics

    Get PDF
    Originally intended as a replication study, this study discusses differences in problem solving performance among different domains caused by the same instructional intervention. The learning sciences acknowledges similarities in the learners’ cognitive architecture that allow interventions to apply across domains, but it also argues that each domain has characteristics that might affect how interventions impact learning. The present study uses an instructional design technique that had previously improved learners’ problem solving performance in programming: subgoal labeled expository text and subgoal labeled worked examples. It intended to replicate this effect for solving problems in statistics and chemistry. However, each of the experiments in the three domains had a different pattern of results for problem solving performance. While the subgoal labeled worked example consistently improved performance, the subgoal labeled expository text, which interacted with subgoal labeled worked examples in programming, had an additive effect with subgoal labeled worked examples in chemistry and no effect in statistics. Differences in patterns of results are believed to be due to complexity of the content to be learned, especially in terms of mapping problem solving procedures to solving problems, and the familiarity of tools used to solve problems in the domain. Subgoal labeled expository text was effective only when students learned more complex content and used unfamiliar problem solving tools

    Scaffolding Problem Solving with Learners’ Own Self Explanations of Subgoals

    Get PDF
    Procedural problem solving is an important skill in most technical domains, like programming, but many students reach problem solving impasses and flounder. In most formal learning environments, instructors help students to overcome problem solving impasses by scaffolding initial problem solving. Relying on this type of personalized interaction, however, limits the scale of formal instruction in technical domains, or it limits the efficacy of learning environments without it, like many scalable online learning environments. The present experimental study explored whether learners’ self-explanations of worked examples could be used to provide personalized but non-adaptive scaffolding during initial problem solving to improve later performance. Participants who received their own self-explanations as scaffolding for practice problems performed better on a later problem-solving test than participants who did not receive scaffolding or who received expert’s explanations as scaffolding. These instructional materials were not adaptive, making them easy to distribute at scale, but the use of the learner’s own explanations as scaffolding made them effective

    The curious case of loops

    Get PDF
    Background and Context Subgoal labeled worked examples have been extensively researched, but the research has been reported piecemeal. This paper aggregates data from three studies, including data previously unreported, to holistically examine the effect of subgoal labeled worked examples across three student populations and across different instructional designs. Objective By aggregating the data, we provide more statistical power for somewhat surprising yet replicable results. We discuss which results generalize across populations, focusing on a stable effect size for subgoal labels in programming instruction. Method We use descriptive and inferential statistics to examine the data collected from different student populations and different classroom instructional designs. We concentrate on the effect size across samples of the intervention for generalization. Findings Students using two variations of subgoal labeled instructional materials perform better than the others: the group that was given the subgoal labels with farther transfer between worked examples and practice problems and the group that constructed their own subgoal labels with nearer transfer between worked examples and practice problems

    Effect of Implementing Subgoals in Code.org\u27s Intro to Programming Unit in Computer Science Principles

    Get PDF
    The subgoal learning framework has improved performance for novice programmers in higher education, but it has only started to be applied and studied in K-12 (primary/secondary). Programming education in K-12 is growing, and many international initiatives are attempting to increase participation, including curricular initiatives like Computer Science Principles and non-profit organizations like Code.org. Given that subgoal learning is designed to help students with no prior knowledge, we designed and implemented subgoals in the introduction to programming unit in Code.org\u27s Computer Science Principles course. The redesigned unit includes subgoal-oriented instruction and subgoal-themed pre-written comments that students could add to their programming activities. To evaluate efficacy, we compared behaviors and performance of students who received the redesigned subgoal unit to those receiving the original unit. We found that students who learned with subgoals performed better on problem-solving questions but not knowledge-based questions and wrote more in open-ended response questions, including a practice Performance Task for the AP exam. Moreover, at least one-third of subgoal students continued to use the subgoal comments after the subgoal-oriented instruction had been faded, suggesting that they found them useful. Survey data from the teachers suggested that students who struggled with the concepts found the subgoals most useful. Implications for future designs are discussed

    Effect of Implementing Subgoals in Code.org’s Intro to Programming unit in Computer Science Principles

    Get PDF
    The subgoal learning framework has improved performance for novice programmers in higher education, but it has only started to be applied and studied in K-12 (primary/secondary). Programming education in K-12 is growing, and many international initiatives are attempting to increase participation, including curricular initiatives like Computer Science Principles and non-profit organizations like Code.org. Given that subgoal learning is designed to help students with no prior knowledge, we designed and implemented subgoals in the introduction to programming unit in Code.org’s Computer Science Principles course. The redesigned unit includes subgoal-oriented instruction and subgoal-themed pre-written comments that students could add to their programming activities. To evaluate efficacy, we compared behaviors and performance of students who received the redesigned subgoal unit to those receiving the original unit. We found that students who learned with subgoals performed better on problem-solving questions but not knowledge-based questions and wrote more in open-ended response questions, including a practice Performance Task for the AP exam. Moreover, at least a third of subgoal students continued to use the subgoal comments after the subgoal-oriented instruction had been faded, suggesting that they found them useful. Survey data from the teachers suggested that students who struggled with the concepts found the subgoals most useful. Implications for future designs are discussed

    Finding the Best Types of Guidance for Constructing Self-Explanations of Subgoals in Programming

    Get PDF
    Subgoal learning, a technique used to break down problem solving into manageable pieces, has been used to promote retention and transfer in procedural domains, such as programming. The primary method of learning subgoals has been passive, and passive learning methods are typically less effective than constructive methods. To promote constructive methods of learning subgoals, learners were prompted to self-explain the subgoals of a problem-solving procedure. Self-explanation asks learners to make sense of new information based on prior knowledge and logical reasoning. Self-explanation by novices is typically more effective when they receive guidance, because it helps them to focus on relevant information. In the present experimental study, the types of guidance that students received while self-explaining determined whether the constructive learning method was more effective than the passive method. Participants assigned to the constructive learning method performed best when they either received hints about the subgoals or received correct explanations as feedback, but not when they received both. These findings suggest that constructive learning of subgoals can further improve the benefits of subgoal learning when students receive only guidance that complements their construction of knowledge. This nuance is important for educators who engage their students in constructive learning and self-explanation

    The Curious Case of Loops

    Get PDF
    Background and Context: Subgoal labeled worked examples are effective for teaching computing concepts, but the research to date has been reported in a piecemeal fashion. This paper aggregates data from three studies, including data that has not been previously reported upon, to examine more holistically the effect of subgoal labeled worked examples across three student populations and across different instructional designs. Objective: By aggregating the data, we provide more statistical and explanatory power for somewhat surprising yet replicable results. We discuss which results generalize across populations, focusing on a stable effect size to be expected when using subgoal labels in programming instruction. Method: We use descriptive and inferential statistics to examine the data for the effect of subgoal labeled worked examples across different student populations and different classroom instructional designs. We specifically concentrate on the potential effect size across samples of the intervention for potential generalization. Findings: Two groups of students learning how to write loops using subgoal labeled instructional materials perform better than the others. The better performing groups were the group that was given the subgoal labels with farther transfer between worked examples and practice problems and the group that constructed their own subgoal labels with nearer transfer between worked examples and practice problems, both with medium-large effect sizes. Implications: For educators wishing to improve student learning using subgoal labeled materials should either provide students with subgoal labels while having them practice with a wide range of practice problems or allow students to generate their own subgoal labels and practice problems within similar contexts

    The Example Guru: Suggesting Examples to Novice Programmers in an Artifact-Based Context

    Get PDF
    Programmers in artifact-based contexts could likely benefit from skills that they do not realize exist. We define artifact-based contexts as contexts where programmers have a goal project, like an application or game, which they must figure out how to accomplish and can change along the way. Artifact-based contexts do not have quantifiable goal states, like the solution to a puzzle or the resolution of a bug in task-based contexts. Currently, programmers in artifact-based contexts have to seek out information, but may be unaware of useful information or choose not to seek out new skills. This is especially problematic for young novice programmers in blocks programming environments. Blocks programming environments often lack even minimal in-context support, such as auto-complete or in-context documentation. Novices programming independently in these blocks-based programming environments often plateau in the programming skills and API methods they use. This work aims to encourage novices in artifact-based programming contexts to explore new API methods and skills. One way to support novices may be with examples, as examples are effective for learning and highly available. In order to better understand how to use examples for supporting novice programmers, I first ran two studies exploring novices\u27 use and focus on example code. I used those results to design a system called the Example Guru. The Example Guru suggests example snippets to novice programmers that contain previously unused API methods or code concepts. Finally, I present an approach for semi-automatically generating content for this type of suggestion system. This approach reduces the amount of expert effort required to create suggestions. This work contains three contributions: 1) a better understanding of difficulties novices have using example code, 2) a system that encourages exploration and use of new programming skills, and 3) an approach for generating content for a suggestion system with less expert effort

    Exploring the use of robotics in the learning of programming.

    Get PDF
    Doctoral Degree. University of KwaZulu-Natal, Durban.Computer Programming is seen as a valuable skill in the digital era that we presently live in. However, for the novice programmer, it is often accompanied with difficulties resulting in negative reactions. The dawning of the Fourth Industrial Revolution has catapulted many initiatives local and global to promote Computer Programming and Robotics. A major initiative by the South African government is the planning and implementing of a new subject in school to raise the awareness of coding at an early age. The lack of coding exposure and awareness leads to little or no interest in Computer Programming related courses after schooling years. This study focuses on exploring the learning of coding through the use of Robotics among computer registered students with no prior coding knowledge at a University in South Africa. Unlike the traditional use of block-based programming to introduce Computer Programming, which is limited to screen output, the study opted to use a physical manipulative by using a robotic element through prototype building using text-based programming, resulting in live autonomous output of code. The Arduino kit was used as the robot element to acquire knowledge development to the fundamental concepts of Computer Programming using the Python programming language. Participants' coding knowledge was assessed through a series of hands-on online activities. Design Based Research was adopted with the integration of Kolb’s Experiential Learning Cycle, framed within the second-generation Activity Theory. Mix methods were supported as it is in accordance with the pragmatic paradigm favoured by Design Based Research. All data collection took place online through workshops, surveys, questionnaires and a focus group interview. The sample size was 75 achieving a significant partial least squares structural equation model as a minimum of 50 participants was needed based on the ten times rule. The results show that students acquiring a direct learning experience with text-based code with the aid of the robotic element proved to be successful. The robot coding simplified the assimilation of text-based coding as participants could see the execution of their code on the prototype in reality. The eradication of the abstract nature of Computer Programming through Robotics as a physical manipulative solidified the understanding of coding structures. Furthermore, students' belief, interest, motivation, confidence, and Mathematics skill set were found to contribute success in Computer Programming. It was revealed that learning to code in a text-based environment can be made fun. In addition, learning programming with the use of the robot is effective for first time learning of text-based code. The researcher proposes that the introduction of learning programming integrated through the building of prototypes and coding resulting in autonomous robots enhances the learning experience of text-based code
    corecore