论文部分内容阅读
C语言程序设计课程作为计算机科学相关专业的入门课程对初学者来说十分重要,而C语言编程的学习是需要理论和实践相结合。目前在C语言教学中存在两个亟待解决的问题。第一,学生使用的编译环境多样而复杂,这给初学者带来了麻烦,而且初学者对计算机执行代码的过程并不了解,抽象的代码严重影响了他们对程序执行的理解。第二,在C语言课程中,一个简单的练习作业,学生们可能提交大量不同的解决方案。对于教师来说,这些存在多种差异的解决方案可能存在着很有价值的教学资源,例如一些典型的错误,了解这些差异并给学生们提供反馈对于C语言教学也具有重要意义。本文提出一种基于Web的C语言交互式教学平台来解决C语言课程教学中存在的以上问题。本文所做的主要工作包括三个方面:1.提出一种基于Web的交互式C语言在线集成开发环境。该集成开发环境实现了代码编辑、编译、运行以及调试等功能。通过该编译环境可以去除因开发环境差异导致的代码不兼容性,使学生更多关注语言本身而非采用的编程环境。同时在线开发环境无需下载和安装开发工具,直接通过浏览器联网访问即可进行编程学习,提高了教学环境的部署效率。2.本文提出了一种时间复杂度为O(n)的C语言代码分类算法,该算法首先根据函数调用关系的相似性进行初步分类,接着对代码进行格式化和变量重命名等操作,最后根据代码内容的相似性进行二次分类,从而完成对C语言代码的自动分类。通过该算法对代码分类,使得相似度较高的代码被归为一类,相似度差异较大的代码被归为不同类,分类后的代码使得教师批改作业时省去许多重复性的工作,也使教师从中提取出代码之间的相似性和差异性更方便。算法对代码进行了格式化和变量重命名等操作,统一了代码风格和变量命名规则,有效的提高了代码的可读性,同时减轻了教师对学生代码的阅读难度。采用实际的C语言课程教学数据对算法进行测试,该算法具有良好的分类效果且与人工分类结果具有较高的吻合度。3.本文结合C语言在线集成开发环境和C语言代码分类算法,提出了一种基于Web的C语言交互式可视化教学平台,并对该平台进行了设计与实现,经过实验发现该平台可以更好的发挥在线集成开发环境和C语言代码分类算法的作用,有利于C语言课程的学习与教学。本文提出的C语言在线教学平台有着广泛的应用前景,因为它不仅实现了在线编程的环境,去除了学生因为不同编译环境的差异导致的困惑,它还实现了代码分类算法,帮助教师批改作业与提取有用的教学资源,提高教学效率。