Especially in large courses, feedback is often given only on the final results;less attention is paid to the programming process. Today, however, some programming environments, e.g., Thonny, log activities during prog...
详细信息
Especially in large courses, feedback is often given only on the final results;less attention is paid to the programming process. Today, however, some programming environments, e.g., Thonny, log activities during programming and have the functionality of replaying the programming process. This information can be used to provide feedback, and this knowledge can be integrated into practical sessions in the classroom. This study aimed to analyse how feedback based on logs affects exam results, task completion time, the number of runs, error messages, and pastes (of the whole group and beginners and non-beginners separately). An experiment was conducted in 2020 and 2021 in the course "Introduction to programming". Some groups received additional feedback on homework throughout the course based on log information;the remaining groups worked as usual. Based on the information received from the logs, general recommendations were also offered in the practical sessions. Our study showed that feedback based on logs improved mainly exam test results and programming task solving time among beginners. Therefore, it would be a good method to use, especially in beginner groups.
In academia, plagiarism is a critical concern, and educators require effective tools to identify and prevent it. Presently, many plagiarism detection tools rely on source code comparison, which may not effectively cou...
详细信息
ISBN:
(纸本)9798350394023;9798350394030
In academia, plagiarism is a critical concern, and educators require effective tools to identify and prevent it. Presently, many plagiarism detection tools rely on source code comparison, which may not effectively counter the obfuscation techniques employed by students. This article presents an innovative solution to identifying potential plagiarism in programming assignments through the analysis of logs containing information on user actions during the programming process. The created tool adopts a history-based approach to plagiarism detection, which helps to counteract certain forms of obfuscation students use to conceal their plagiarism. The plagiarism detection tool analyses logs based on user-specific criteria such as run count, total time spent working, log file size, and pasted text ratio. The tool also compares log files for detection of duplicate files, identical texts pasted in different log files, source code pasted in different log files, and source code similarity. The solution also allows the user to specify the values for each analyzed metric for plagiarism detection. The effectiveness of the tool is demonstrated through experimental evaluations, enabling to identify cases of plagiarism that could not be detected with other available tools. The findings suggest that the tool can be an efficient and effective means for educators to identify plagiarism in programming assignments.
programming is considered a demanding task that requires focusing on detail at code level. Students learning to program need to learn to think like a programmer, which involves coming up with plans needed to solve pro...
详细信息
ISBN:
(纸本)9781450362597
programming is considered a demanding task that requires focusing on detail at code level. Students learning to program need to learn to think like a programmer, which involves coming up with plans needed to solve problems, and they need to learn to write the code that corresponds to the plans that they have thought of. The use of multiple files creates additional overhead to the process, as part of the code is not visible to the student. If a student does not remember the contents of a particular file, she needs to consciously move from writing code in one file to reading code in another file. This conscious transition of attention from one location to another is known as cognitive shifting. Using key-level data collected from a programming exam, we analyze students' movements within files and between files, and relate these movements with students' performance in the course. Our results indicate that frequently moving from one file to another may lead to worse performance than more focused actions, but no such effect exists when analyzing movements within an individual file.
Incremental development is the process of writing a small snippet of code and testing it before moving on. For students in introductory programming courses, the value of incremental development is especially higher as...
详细信息
ISBN:
(纸本)9781450394314
Incremental development is the process of writing a small snippet of code and testing it before moving on. For students in introductory programming courses, the value of incremental development is especially higher as they may suffer from more syntax errors, lack the proficiency to address complicated bugs, and may be more prone to frustration when struggling to correct code. However, to evaluate the effectiveness of interventions that aim to teach programming processes such as incremental development, we need to develop measures to assess such processes. In this paper, we present a way to measure incremental development. By qualitatively analyzing 15 student coding interviews, we identified common behaviors in the programming process that relate to incremental development. We then leveraged a dataset of over 1000 development sessions - about 52,000 code snapshots at compilation time - to automatically detect the common behaviors identified in our qualitative analysis. Finally, we crafted a formal metric, called the "Measure of Incremental Development" (MID), to quantify how effectively a student used incremental development during a programming session. The MID detects common non-incremental development patterns such as excessive debugging after large additions of code to automatically assess a sequence of snapshots. The MID aligns with human evaluations of incrementality with over 80% accuracy. Our metric enables new research directions and interventions focused on improving students' development practices.
The results of this study of user needs were intended to provide the initial information for a new office space planning standards programme for an international computer company. The objectives of the programming pro...
详细信息
暂无评论