Lecturers of introductory programming courses are often faced with the challenge of supervising a large number of students. Reviewing a large number of programming exercises is time-consuming, and an automated overvie...
详细信息
ISBN:
(纸本)9783031504846;9783031504853
Lecturers of introductory programming courses are often faced with the challenge of supervising a large number of students. Reviewing a large number of programming exercises is time-consuming, and an automated overview of the available solution approaches would be helpful. In this paper, we focus on source code similarity at the level of students' selected solution approaches. We propose a method to compare Java classes using variable usage paths (VUPs) extracted from modified abstract syntax trees (ASTs). The proposed approach involves matching semantically equivalent functions and attributes between classes by comparing their VUPs. We define a F-1-based similarity measure on how well one student submission matches another. We evaluate our approach using students' submissions from an introductory programming exercise and the results indicate the effectiveness of our method in identifying different solution approaches. The proposed approach outperforms simplified comparisons and the widely used plagiarism detection tool JPlag in accurately grouping submissions by solution approach similarity.
The demand for qualified computing professionals is high, with thousands of positions remaining unfilled each year. To create more qualified professionals, initiatives to attract and engage students in computer scienc...
详细信息
ISBN:
(纸本)9781450394314
The demand for qualified computing professionals is high, with thousands of positions remaining unfilled each year. To create more qualified professionals, initiatives to attract and engage students in computerscience have been proposed, but they tend to concentrate on primary, secondary (K-12), and post-secondary (college) levels. With many adults looking for better career opportunities, it is surprising that few computerscience initiatives focus on attracting adult learners to the field. This paper presents the results of an informal computerprogramming course that teaches the foundational concepts of computerprogramming to adults as they program hip-hop beats. This course is designed to attract adult learners that otherwise might have never considered computerprogramming, building their confidence and skills. We conducted this course online, two nights a week, for five weeks, for about 40 participants. Afterward, we conducted a qualitative analysis of written survey data. We found that the adult learners' perception of computerprogramming changed during the course, with many participants planning their next step in computing education.
This paper presents GAMAI, an AI-powered exercise gamifier, enriching the Framework for Gamified programming Education (FGPE) ecosystem. Leveraging OpenAI APIs, GAMAI enables the teachers to leverage the storytelling ...
详细信息
ISBN:
(数字)9783031643156
ISBN:
(纸本)9783031643149;9783031643156
This paper presents GAMAI, an AI-powered exercise gamifier, enriching the Framework for Gamified programming Education (FGPE) ecosystem. Leveraging OpenAI APIs, GAMAI enables the teachers to leverage the storytelling approach to describe the gamified scenario. GAMAI decorates the natural language text with sentences needed by OpenAI APIs to contextualize the prompt. Once the gamified scenario has been generated, GAMAI automatically produces the exercise files for the FGPE AuthorKit editor. We present preliminary results in AI-assessed gamified exercise generation, showing that most generated exercises are ready to be used with none or minimum human effort needed.
Inspired by recent progress in dynamic programming approaches for weighted model counting, we investigate a dynamic-programming approach in the context of boolean realizability and synthesis, which takes a conjunctive...
详细信息
ISBN:
(纸本)9783031656323;9783031656330
Inspired by recent progress in dynamic programming approaches for weighted model counting, we investigate a dynamic-programming approach in the context of boolean realizability and synthesis, which takes a conjunctive-normal-form boolean formula over input and output variables, and aims at synthesizing witness functions for the output variables in terms of the inputs. We show how graded project-join trees, obtained via tree decomposition, can be used to compute a BDD representing the realizability set for the input formulas in a bottom-up order. We then show how the intermediate BDDs generated during realizability checking phase can be applied to synthesizing the witness functions in a top-down manner. An experimental evaluation of a solver - DPSynth - based on these ideas demonstrates that our approach for Boolean realizabilty and synthesis has superior time and space performance over a heuristics-based approach using same symbolic representations. We discuss the advantage on scalability of the new approach, and also investigate our findings on the performance of the DP framework.
Computational thinking can be deemed as thinking in algorithmic way, with which one can transpose given problems into computer algorithms. Since computational thinking requires abstract reasoning, it should not depend...
详细信息
ISBN:
(纸本)9781450394338
Computational thinking can be deemed as thinking in algorithmic way, with which one can transpose given problems into computer algorithms. Since computational thinking requires abstract reasoning, it should not depend on particular programming languages. Unfortunately, introductory programming courses (CS1) often give students false impression that their goals are to teach a particular programming language. This study shares the design of new pedagogy for CS1 that removes dependency on a particular language and promotes computational thinking by teaching multiple programming languages simultaneously. Specifically, chosen programming languages range from low-level to high-level to expose students to different levels of abstraction from the details of computer architecture. Initial student survey responses from both trial and control groups show that there are significant improvements for the trial groups.
Creating programming questions that are both meaningful and educationally relevant is a critical task in computerscience education. This paper introduces a fine-tuned GPT4o-mini model (C2Q). It is designed to generat...
详细信息
Swarm programming is focused on the design and implementation of algorithms for large-scale systems, such as fleets of robots, ensembles of IoT devices, and sensor networks. Writing algorithms for these systems requir...
详细信息
ISBN:
(纸本)9783031626968;9783031626975
Swarm programming is focused on the design and implementation of algorithms for large-scale systems, such as fleets of robots, ensembles of IoT devices, and sensor networks. Writing algorithms for these systems requires skills and familiarity with programming languages, which can be a barrier for non-expert users. Even if visual programming environments have been proposed for swarm systems, they are often limited to specific platforms or tasks, and do not provide a high-level programming model that can be used to design algorithms for a wide range of swarm systems. Therefore, in this paper, we propose a low-code swarm programming environment, called ScaFi-Blocks, which allows users to design and implement swarm algorithms visually. ScaFi-Blocks is based on the ScaFi aggregate computing framework, which provides a high-level programming model for the design of distributed algorithms. Aggregate computing is based on the concept of field-based coordination, and it allows users to design algorithms by composing simple building blocks, which motivates the design of the proposed artefact. The environment is designed to be user-friendly and to support the design of a wide range of collective applications. In this paper, we present the architecture of ScaFi-Blocks, discuss its features and capabilities, and provide a preliminary evaluation of the programming environment
Introducing programming to non-majors is challenging. To increase accessibility, Ozobots are integrated into an introductory programming class for grammar schools focusing on economic topics (Economics major). Besides...
详细信息
ISBN:
(纸本)9798400710056
Introducing programming to non-majors is challenging. To increase accessibility, Ozobots are integrated into an introductory programming class for grammar schools focusing on economic topics (Economics major). Besides a description of how to integrate the tool, a comparison of students' learning outcomes exposed to Ozobot-assisted instruction with those using traditional programming tools is described. Therefore, three classes were assessed with a pre-/post-test on basic algorithmic competencies. The results highlight the potential of robotics in programming education and emphasize the importance of hands-on, experiential learning for fostering a deeper understanding of algorithmic design and programming concepts.
This work introduces and evaluates ccheck, a lenient automatic grader and C style-checker, to guide students to improve their coding practices. Many computing classes rely heavily on autograders-software that automate...
详细信息
ISBN:
(纸本)9798400704239
This work introduces and evaluates ccheck, a lenient automatic grader and C style-checker, to guide students to improve their coding practices. Many computing classes rely heavily on autograders-software that automates grading and alleviates staff workload in classes with large enrollments. At best, autograders offer timely and consistent feedback to students. However, existing autograders primarily judge on functional correctness-they are generally strict and inflexible in marking beginner programming assignments. They tend not to provide feedback on programming style and structure, which instead requires delayed, tedious manual assessment. ccheck, the tool we introduce, aims to address this gap and provide more meaningful, real-time feedback with a pedagogical focus. We deploy ccheck in a class of 440 first-year computerscience students. Teaching assistants employ the system for marking assistance, while students use the same system for self-evaluation prior to finalizing their submissions. Feedback was solicited through a survey of 76 students and a focus group of the teaching team. 82% of the students surveyed said that the system helped them learn good coding practices, while 75% emphasized that the feedback received from the system is meaningful and helpful. The teaching team focus group related to how they valued the automation of menial marking tasks, which enabled them to direct their time toward other meaningful feedback. Overall, we find that teaching, learning and student experiences are improved through the deployment of ccheck.
暂无评论