Students require feedback on programming assignments to improve their programming skills. An Automated feedback generation (AFG) technique proposes to provide feedbackcorrected submissions for incorrect student progra...
详细信息
ISBN:
(纸本)9798350322590
Students require feedback on programming assignments to improve their programming skills. An Automated feedback generation (AFG) technique proposes to provide feedbackcorrected submissions for incorrect student programming submissions in programming courses. However, these techniques are limited as they rely on the availability of correct submissions as a reference to generate feedback. In situations where correct submissions are not available, they resort to using mutation operators, which can lead to a search space explosion problem. In this work, we propose REFERENT, Transformerbased feedback generation using assignment information. REFERENT uses transfer learning on a pre-trained model with data from students' submission history from the past assignment. To generate assignment-related feedback, we use a title, tag, assignment description, and test case as assignment information. REFERENT can generate feedback without a reference program in limited resources. We conducted a preliminary study to confirm the effectiveness of REFERENT and the feasibility of using assignment information. REFERENT generated feedback for 32.7% of incorrect submissions without reference programs and that its performance increased up to 50.7% when reference programs were used. We also check whether the submission history, assignment information, and repair knowledge of opensource software help generate feedback.
This demonstration introduces participants to using Web-CAT, an open-source automated grading system. Web-CAT is customizable and extensible, allowing it to support a wide variety of programming languages and assessme...
详细信息
ISBN:
(纸本)9781605580784
This demonstration introduces participants to using Web-CAT, an open-source automated grading system. Web-CAT is customizable and extensible, allowing it to support a wide variety of programming languages and assessment strategies. Web-CAT is most well-known as the system that "grades students on how well they test their own code," with experimental evidence that it offers greater learning benefits than more traditional output-comparison grading. Participants will learn how to set up courses, prepare reference tests, set up assignments, and allow graders to manually grade for design.
programming foundations is not an easy subject to be taught - many students have difficulties understanding the abstract concepts of programming and have a wrong view about the programming activity. In order to addres...
详细信息
ISBN:
(纸本)9781457703485
programming foundations is not an easy subject to be taught - many students have difficulties understanding the abstract concepts of programming and have a wrong view about the programming activity. In order to address these problems, experiences have suggested the integrated teaching of programming concepts and software testing in introductory CS courses. Shortly, the idea is that testing can contribute to enhance the students' capabilities of understanding and analysis. However, such perspective requires tools to provide an adequate feedback to evaluate the students' performance concerning programming and testing activities. In this paper we describe PROGTEST - a web-based tool for the submission and automatic evaluation of practical programming assignments based on testing activities. Results from a preliminary validation of PROGTEST are also presented. Such results provide evidences on the practical use of PROGTEST as a supporting mechanism for the integrated teaching of programming foundations and software testing.
Practical programming assignments are critical parts of programming courses in Computer Science education. Students are expected to translate programming concepts learned from lectures into executable implementations ...
详细信息
ISBN:
(纸本)9798400704987
Practical programming assignments are critical parts of programming courses in Computer Science education. Students are expected to translate programming concepts learned from lectures into executable implementations that solve the tasks outlined in the assignments. These implementations are primarily assessed based on their functional correctness, ensuring that students' code produces the expected output when provided with specific inputs. However, functional correctness is not the only metric that evaluates the quality of programs. Runtime efficiency is a metric that is less frequently evaluated in programming courses, yet it holds significant importance in the context of professional software development. To investigate this gap and its potential ramifications, we conducted a large-scale empirical study on the time efficiency of 250 programming assignments that are evaluated solely on functional correctness. The results demonstrate that students' programming assignments exhibit significant variance in terms of execution time. We further identified 27 recurring inefficient code patterns from these assignments, and observed that most of the inefficient patterns can be optimized by automated tools such as PMD, IntelliJ IDEA and ChatGPT. Our findings provide actionable guidelines for educators to enhance the organization and integration of code performance topics throughout the programming course curriculum.
Understanding cryptological primitives like encryption, hashing, signatures, and certificates is a central skill when working as an IT security professional or software developer but it is also a major educational cha...
详细信息
ISBN:
(纸本)9783031081729;9783031081712
Understanding cryptological primitives like encryption, hashing, signatures, and certificates is a central skill when working as an IT security professional or software developer but it is also a major educational challenge. The paper presents a study which measures and compares error rates in cryptological programming assignments. Over a ten-week period, 20 students solved 20 cryptological Java programming assignments checked by 350 tests that were automatically verified using a grader system. The error rate in similar to 60.000 test results is analyzed: Students made fewer errors in substitutions than transposition ciphers, symmetric ciphers rank lower than asymmetric ones, constructor, exception and padding tests appear easier to solve than signing and its verification. Asymmetric encryption has lower error rates than signing. A discussion of the findings, limitations, and possible future improvements concludes the paper. The approach allows identifying and measuring "hard" and "easy" cryptological assignments in order to improve teaching, which is desirable from an educational perspective.
programming assignment source code plagiarism detection is one of the important challenges in intelligent education. This paper provides an overview of program detection techniques in this field, reviews the related l...
详细信息
Pedagogical agents have received a large amount of interest in the recent years. Equipped with the ability to express emotions, these agents can influence the user attitudes, perceptions and behaviour. In our study, w...
详细信息
ISBN:
(纸本)9781450351034
Pedagogical agents have received a large amount of interest in the recent years. Equipped with the ability to express emotions, these agents can influence the user attitudes, perceptions and behaviour. In our study, we are leveraging these emotionally-intelligent pedagogical agents to deliver effective and efficient feedback to students about their programming assignments and also act as a teaching assistant for any general programming related queries. We have integrated the pedagogical agent as part of Web-CAT - an automated online grading tool for students' programs. One of our main objectives is to communicate clearly the feedback about student programs while motivating them to perform better. Displaying the feedback and motivational messages to students all the time can quickly become noise and students tend to ignore them. Our study is to strategically have the pedagogical agent communicate with the student to provide them growth mindset feedback and also provide motivation to improve upon their work. The feedback would be based upon few indicators which would be triggered based on the student's program and the agent would guide the students to the correct solution by providing appropriate suggestions. The students can also voluntarily ask the agent for feedback and areas of improvement in their work. In addition, the agent can also help the students with any programming related queries or ways to fix a specific error encountered in the student's program. We will conduct a user study to gather feedback from students about the influence of the agent in helping them achieve their goal
We present a sequence of programming projects for the CS2 introductory computer science course which provides a holistic experience for students in preparation for their future roles in any workplace in which software...
详细信息
ISBN:
(纸本)9781450336857
We present a sequence of programming projects for the CS2 introductory computer science course which provides a holistic experience for students in preparation for their future roles in any workplace in which software is developed, whether in academia, government, industry, or elsewhere. The progression of projects has several key features: (1) they are easily reused simply by changing the underlying input data set; (2) they offer a flexible degree of analysis objectives; (3) they take advantage of freely available open source data sets and encourage their use; (4) they are designed to be small models of the kinds of problems likely to be encountered outside of the classroom environment; (5) they facilitate the introduction of increasingly more sophisticated software testing concepts, starting with the most elementary; (6) a student who attempts to do them in earnest, even if unsuccessful, can still learn important lessons about the different facets of programming and problem solving; and (7) a student's understanding of the relationship between choice of data representation and performance will likely mature if he or she successfully completes the *** our poster, we present the first and last assignments of the sequence that we have employed in a CS2 course, and discuss some results. We also show how these assignments can serve as a paradigm that may be used in other CS2-like courses. Many of the underlying concepts can also be applied to CS1-like courses as well as more advanced computer science courses.
This article provides insight into how computing majors experience the process of doing programming assignments in their first programming course. This grounded theory study sheds light on the various processes and co...
详细信息
This article provides insight into how computing majors experience the process of doing programming assignments in their first programming course. This grounded theory study sheds light on the various processes and contexts through which students constantly assess their self-efficacy as a programmer. The data consists of a series of four interviews conducted with a purposeful sample of nine computer science majors in a research intensive state university in the United States. Use of the constant comparative method elicited two forms of results. First, we identified six stages of doing a programming assignment. Analysis captures the dimensional variation in students' experiences with programming assignments on a detailed level. We identified a core category resulting from students' reflected emotions in conjunction with self-efficacy assessment. We provide a descriptive model of how computer science majors build their self-efficacy perceptions, reported via four narratives. Our key findings are that some students reflect negative views of their efficacy, even after having a positive programming experience and that in other situations, students having negative programming experiences still have a positive outlook on their efficacy. We consider these findings in light of possible languages and support structures for introductory programming courses.
Teachers often utilize automatic program repair methods to provide feedback on submitted student code using model answer code. A state-of-the-art tool is Refactory, which achieves a high repair success rate and small ...
详细信息
ISBN:
(纸本)9798400704239
Teachers often utilize automatic program repair methods to provide feedback on submitted student code using model answer code. A state-of-the-art tool is Refactory, which achieves a high repair success rate and small patch size (less code repair) by refactoring code to expand the variety of correct code samples that can be referenced. However, Refactory has two major limitations. First, it cannot fix code with syntax errors. Second, it has difficulty fixing code when there are few correct submissions. Herein we propose a new method that combines Refactory and OpenAI's GPT models to address these issues and conduct a performance measurement experiment. The experiment uses a dataset consisting of 5 programming assignment problems and almost 1,800 real-life incorrect Python program submissions from 361 students for an introductory programming course at a large public university. The proposed method improves the repair success rate by 1-21% when the set of correct code samples is sufficient and the patch size is smaller than Refactory alone in 16-45% of the cases. When there was no set of correct code samples at all (only the model answer code was used as a reference for repair), method improves the repair success rate by 1-43% and the patch size is smaller than Refactory alone in 42-68% of the cases.
暂无评论