Novice programmers can greatly improve their understanding of challenging programming concepts by studying worked examples that demonstrate the implementation of these concepts. Despite the extensive repositories of effective worked examples created by CS education experts, a key challenge remains: identifying the most relevant worked example for a given programming problem and the specific difficulties a student faces solving the problem. Previous studies have explored similar example recommendation approaches. Our research introduces a novel method by utilizing deep learning code representation models to generate code vectors, capturing both syntactic and semantic similarities among programming examples. Driven by the need to provide relevant and personalized examples to programming students, our approach emphasizes similarity assessment and clustering techniques to identify similar code problems, examples, and challenges. This method aims to deliver more accurate and contextually relevant recommendations based on individual learning needs. Providing tailored support to students in real-time facilitates better problem-solving strategies and enhances students' learning experiences, contributing to the advancement of programming education.
more »
« less
Combining Collaborative Reflection based on Worked-Out Examples with Problem-Solving Practice: Designing Collaborative Programming Projects for Learning at Scale
Contributing to the literature on aptitude-treatment interactions between worked examples and problem-solving, this paper addresses differential learning from the two approaches when students are positioned as domain experts learning new concepts. Our evaluation is situated in a team project that is part of an advanced software engineering course. In this course, students who possess foundational domain knowledge but are learning new concepts engage alternatively in programming followed by worked example-based reflection. They are either allowed to finish programming or are curtailed after a pre-specified time to participate in a longer worked example-based reflection. We find significant pre- to post-test learning gains in both conditions. Then, we not only find significantly more learning when students participated in longer worked example-based reflections but also a significant performance improvement on a problem-solving transfer task. These findings suggest that domain experts learning new concepts benefit more from worked example-based reflections than from problem-solving.
more »
« less
- PAR ID:
- 10295165
- Date Published:
- Journal Name:
- Comparing Example-Based Collaborative Reflection to Problem-Solving Practice for Learning during Team-Based Software Engineering Projects
- Page Range / eLocation ID:
- 255 to 258
- Format(s):
- Medium: X
- Sponsoring Org:
- National Science Foundation
More Like this
-
-
null (Ed.)Subgoal labels are function-based instructional explanations that describe the problem-solving steps to the learner, highlighting the solution process. There is strong evidence that the use of subgoal labels within worked examples improves student learning in other STEM fields. Initial research shows that using subgoal labels within computer science improves student learning, but this has only been tested using a single programming concept (indefinite loops) with text-based programming languages. The proposers are currently expanding subgoal labels to the main programming concepts taught in an introductory programming course using an imperative programming language. In this BOF we seek to uncover tacit knowledge that programming instructors have in order to develop instructional materials that bridge the gap between students, who are CS novices, and instructors, who are CS experts, to improve learning for students who are under-prepared for or struggle in CS1. We will be seeking feedback on the selection of programming topics to be covered, the defined subgoals for those topics and the worked examples created for instructional purposes.more » « less
-
Computer science pedagogy, especially in the higher education and vocational training context, has long-favored the hands-on practice provided by programming tasks due to the belief that this leads to better performance on hands-on tasks at work. This assumption, however, has not been experimentally tested against other modes of engagement such as worked example-based reflection. While theory suggests that example-based reflection could be better for conceptual learning, the concern is that the lack of practice will leave students unable to implement the learned concepts in practice, thus leaving them unprepared for work. In this paper, therefore, we experimentally contrast programming practice with example-based reflection to observe their differential impact on conceptual learning and performance on a hands-on task in the context of a collaborative programming project. The industry paradigm of Mob Programming, adapted for use in an online and instructional context, is used to structure the collaboration. Keeping with the prevailing view held in pedagogy, we hypothesize that example-based reflection will lead to better conceptual learning but will be detrimental to hands-on task performance. Results support that reflection leads to conceptual learning. Additionally, however, reflection does not pose an impediment to hands-on task performance. We discuss possible explanations for this effect, thus providing an improved understanding of prior theory in this new computer science education context. We also discuss implications for the pedagogy of software engineering education, in light of this new evidence, that impacts student learning as well as work performance in the future.more » « less
-
Recently, there has been a surge in developing curricula and tools that integrate computing (C) into Science, Technology, Engineering, and Math (STEM) programs. These environments foster authentic problem-solving while facilitating students’ concurrent learning of STEM+C content. In our study, we analyzed students’ behaviors as they worked in pairs to create computational kinematics models of object motion. We derived a domain-specific metric from students’ collaborative dialogue that measured how they integrated science and computing concepts into their problem-solving tasks. Additionally, we computed social metrics such as equity and turn-taking based on the students’ dialogue. We identified and characterized students’ planning, enacting, monitoring, and reflecting behaviors as they worked together on their model construction tasks. This study in-vestigates the impact of students’ collaborative behaviors on their performance in STEM+C computational modeling tasks. By analyzing the relationships between group synergy, turn-taking, and equity measures with task performance, we provide insights into how these collaborative behaviors influence students’ ability to construct accurate models. Our findings underscore the importance of synergistic discourse for overall task success, particularly during the enactment, monitoring, and reflection phases. Conversely, variations in equity and turn-taking have a minimal impact on segment-level task performance.more » « less
-
There have been many calls recently for computing for all across the nation. While there are many opportunities to study and use computing to advance the fields of computer science, software development, and information technology, computing is also needed in a wide range of other disciplines, including engineering. Most engineering programs require students take a course that teaches them introductory programming, which covers many of the same topics as an introductory course for computing majors (and at times may be the same course). However, statistics about the success of a course that is an introductory programming course are sobering; approximately half the students will fail, forcing them to either repeat the course or leave their chosen field of study if passing the course is required. This NSF IUSE project incorporates instructional techniques identified through educational psychology research as effective ways to improve student learning and retention in introductory programming. The research team has developed worked examples of problems that incorporate subgoal labels, which are explanations that describe the function of steps in the problem solution to the learner and highlight the problem-solving process. Using subgoal labels within worked examples, which has been effective in other STEM fields, students are able to see an expert's problem solving process, which helps students learn to solving problems before they can solve problem themselves. Experts, including instructors, teaching introductory level courses are often unable to explain the process they use in problem solving at a level that learners can grasp because they have automated much of the problem-solving processes after many years of practice. This submission will present the results of the first part of development of subgoals and will explain how to integrate them into classroom lessons in introductory computing classes.more » « less
An official website of the United States government

