Rethinking computer science education from a test-first perspective

Rethinking computer science education from a test-first perspective
复制标题

从测试优先的角度重新思考计算机科学教育

DOI:
--
复制
发表时间:
2003
期刊:
Conference on Object-Oriented Programming Systems, Languages, and Applications
影响因子:
--
通讯作者:
S. Edwards
S. Edwards
中科院分区:
--
文献类型:
--
作者:
S. Edwards

文献摘要

被引文献

相似文献

尽管我们作为教育工作者付出了最大的努力并抱有良好的意图,但学生程序员在获取理解和分析技能方面仍然困难重重。学生们认为,一旦程序在示例数据上运行成功,它就是正确的;大多数编程错误是由编译器报告的;当程序出现异常行为时,调整语句顺序和修改表达式以查看会发生什么是最好的调试方法。本文提出了一种计算机科学教育的新愿景,其核心是从计算机科学入门课程(CS1)开始,在所有编程作业中使用测试驱动开发。该策略的一个关键要素是对学生的作业进行全面、自动化的评估,包括正确性、学生测试的全面性和有效性,以及使用工业级工具进行自动编码风格评估。通过将该策略作为学生常规编程活动的一部分在整个课程中系统地应用,并提供学生认为有价值的快速、具体、有用的反馈,就有可能促使学生行为方式发生文化上的转变。
Despite our best efforts and intentions as educators, student programmers continue to struggle in acquiring comprehension and analysis skills. Students believe that once a program runs on sample data, it is correct; most programming errors are reported by the compiler; when a program misbehaves, shuffling statements and tweaking expressions to see what happens is the best debugging approach. This paper presents a new vision for computer science education centered around the use of test-driven development in all programming assignments, from the beginning of CS1. A key element to the strategy is comprehensive, automated evaluation of student work, in terms of correctness, the thoroughness and validity of the student's tests, and an automatic coding style assessment performed using industrial-strength tools. By systematically applying the strategy across the curriculum as part of a student's regular programming activities, and by providing rapid, concrete, useful feedback that students find valuable, it is possible to induce a cultural shift in how students behave.