面向纸笔计算机科学教育的手写代码识别
计算机视觉与模式识别
2024-08-15 v1 人工智能
计算机与社会
人机交互
摘要
通过让学生用纸笔手写程序来教授计算机科学(CS)具有关键的教学优势:与使用具有智能支持工具或'尝试各种方法'的集成开发环境(IDE)相比,它允许专注学习并要求仔细思考。纸笔的熟悉环境也减轻了没有计算机使用经验的学生的认知负荷,因为对这些人而言,仅仅基本使用计算机就可能令人望而生畏。最后,这种教学方法为计算机访问受限的学生打开了学习机会。然而,一个关键障碍是目前缺乏用于处理和运行手写程序的教学方法和支持软件。手写代码的光学字符识别(OCR)具有挑战性:微小的 OCR 错误,可能由于不同的书写风格,很容易导致代码无法运行,而识别缩进对 Python 等语言至关重要,但由于手写中不一致的水平间距而难以实现。我们的方法集成了两种创新方法。第一种方法将 OCR 与缩进识别模块和专为后 OCR 错误纠正而设计的语言模型相结合,且不引入幻觉。据我们所知,该方法在手写代码识别方面超越了所有现有系统。它将错误率从最先进的 30% 降低到 5%,且对学生程序的逻辑修复幻觉极少。第二种方法利用多模态语言模型以端到端的方式识别手写程序。我们希望这一贡献能激发进一步的教学研究,并为实现 CS 教育的普遍可及性做出贡献。我们发布了一个手写程序和代码数据集以支持未来研究,地址为 https://github.com/mdoumbouya/codeocr
引用
@article{arxiv.2408.07220,
title = {Handwritten Code Recognition for Pen-and-Paper CS Education},
author = {Md Sazzad Islam and Moussa Koulako Bala Doumbouya and Christopher D. Manning and Chris Piech},
journal= {arXiv preprint arXiv:2408.07220},
year = {2024}
}