系统将类似的学生项目聚集在一起,这样教师就可以确定大致的趋势

   日期:2019-03-15     浏览:4    评论:0    
核心提示:系统将类似的学生项目聚集在一起,这样教师就可以确定大致的趋势麻省理工学院研究生Elena Glassman和Jeremy Scott。在计算机科学
系统将类似的学生项目聚集在一起,这样教师就可以确定大致的趋势
麻省理工学院研究生Elena Glassman和Jeremy Scott。
在计算机科学课上,家庭作业包括编写程序。很容易创建自动化测试来确定给定程序是否为一系列输入生成正确的输出。但这些测试并没有说明程序代码是否清晰或令人困惑,是否包含不必要的计算,以及它是否符合赋值条件。

教授和助教会检查学生的代码,试图找出明显的错误,但即使是在本科课程中,他们通常也没有时间进行详尽的分析。而在网络课程中,这个问题要严重得多,因为有成千上万的学生,他们中的每一个人都可能以一种略微不同的方式来处理一个问题。
今年4月,麻省理工学院(MIT)的研究人员将在计算机械协会(Association for Computing Machinery)举办的“计算系统中的人为因素”(Human Factors In Computing Systems)会议上展示一个新系统,该系统将自动比较学生的解决方案和编程作业,并将使用相同技术的解决方案集中在一起。
对于每种方法,称为overcode的系统都会创建一个程序模板,使用的变量名恰好是大多数学生所使用的变量名。然后,它并排显示模板,并将它们共享的代码显示为灰色,这样差异就很明显了。而且,如果教师愿意,他们可以从任何模板中调出符合该标准的学生程序列表。
教师如果注意到不同模板之间的差异,而这些差异在实践中并没有什么不同,也可以编写规则来建立替代方案的等价性。例如,在某些情况下,“y*x”可能产生与“x*y”不同的结果,但在另一些情况下,根据定义x和y的方式,它不会产生相同的结果。如果没有,教师可以通过创建“y*x = x*y”规则进一步减少模板的数量。
系统将类似的学生项目聚集在一起,这样教师就可以确定大致的趋势
代码过多用户界面的屏幕截图。左上角的面板显示了集群(称为堆栈)的数量,以及可视化的解决方案的总数。第一列下面的下一个面板显示了最大的堆栈;第二列显示了剩余的堆栈。第三列显示了在栈的清理解决方案中出现的代码行及其频率。
该系统可以让在线课程的教师提供广义的反馈,针对更广泛的学生群体。但它也能提供信息,说明如何更好地设计计算机科学课程——包括在线课程和校园课程。
在线课程”,几个月后,你可以有多个数量级的学生经历相同的材料和找到所有有趣的替代方案或犯同样的错误,”埃琳娜•格拉斯曼说,麻省理工学院计算机科学与工程研究生,新论文的第一作者。“然后,我们要把人们所做的所有记录都记录下来,并加以理解,这样,当我们再次开设这门课程时,情况就会好一些。当我们开设常驻课程时,我们就能更好地处理定期与我们见面的那200名学生。”


执行相同计算的两个程序的代码可能看起来有些不同。程序员可能选择了不同的变量名——在一种情况下是“total”,而在另一种情况下是“result”。子函数可以按不同的顺序执行。
因此,除了比较程序的代码外,OverCode还观察变量在程序执行时所接受的值。如果两个程序的变量以相同的顺序取相同的值,则判断它们是相同的。
在他们的新论文中,格拉斯曼和她的合作者——她的论文导师、计算机科学与工程学教授罗布·米勒;她的研究生同伴杰里米·斯科特;Rishabh Singh去年在麻省理工学院完成了博士学位,现在在微软研究院工作;罗切斯特大学计算机科学助理教授Philip Guo也报告了两项评估过代码可用性研究的结果。
在这些研究中,24名经验丰富的程序员使用OverCode和一个每次显示一个解决方案的标准工具,对数千名学生的三个介绍性编程作业的解决方案进行了审查。对于每一项作业,受试者都有15分钟的时间来评估学生最常用的设计特定功能的策略,并提供对每种策略的一般反馈,最后给出示例代码。
值得注意的是,当评估这三种任务中最简单的一种时,分析原始代码的受试者与使用OverCode的受试者表现得一样好:在这两种情况下,他们识别的五种策略co
 
打赏
 
更多>同类资讯
0相关评论

推荐图文
推荐资讯
点击排行