One of the important scaffolding tasks in programming learning is writing a line of code performing the necessary action. This allows students to practice skills in a playground with instant feedback before writing more complex programs and increases their proficiency when solving programming problems. However, answers in the form of program code have high variability. Among the possible approaches to grading and providing feedback, we chose template matching. This paper reports the results of using regular-expression-based questions with string completion hints in a CS1 course for 4 years with 497 students. The evaluation results show that Perl-compatible regular expressions provide good precision and recall (more than 99\%) when used for questions requiring writing a single line of code while being able to provide string-completion feedback regardless of how wrong the initial student's answer is. After introducing formative quizzes with string-completion hints to the course, the number of questions that teachers and teaching assistants received about questions in the formative quizzes dropped considerably: most of the training question attempts resulted in finding the correct answer without help from the teaching staff. However, some of the students use formative quizzes just to learn correct answers without actually trying to answer the questions.
翻译:在编程学习中,重要的脚架任务之一是编写一套守则,以采取必要的行动。这样,学生可以在操场上实践技能,在撰写更复杂的程序之前,即时反馈,提高他们在解决编程问题时的熟练程度。然而,以程序代码形式回答的问题差异很大。在分级和提供反馈的可能方法中,我们选择了匹配模板。本文报告了在CS1课程中使用基于常规表达的问题并带有弦补全提示的结果,为期4年,共有497名学生参加。评价结果显示, Perl兼容的常规表达方式在用于需要撰写单行代码的问题时,提供精确度和回溯(超过99 ⁇ ),同时能够提供弦补全反馈,而不论最初学生的回答有多么错误。在引入带有弦补全提示的课程的成型测试后,教师和教学助理收到的关于编程调试题的问题数量大幅下降:大多数培训问题尝试是在没有教职员帮助的情况下找到正确的答案。然而,有些学生只是使用编程猜题来学习正确的答案,而没有实际尝试回答问题。