AC— ICPC竞赛模式下C++程序设计实验课的教学探 讨
ACM国际大学生程序设计竞赛(ACMI nternatio nal CollegiateProgrammingContest , ACM-ICPC 是由美国计算机协
会(AssociationforComputingMachinery ,ACM 主办,是最具
影响力的大学生计算机竞赛。如何抓住机遇,结合 ACM竞赛,提
高教学质量和水平, 培养高质量的人才等问题成为广大教师的探 索热点和各高校相关教师之间热议的话题。 笔者积极探索将它引 入到C++程序设计实验课当中,提高教学效果。
一、C++程序设计实验教学中存在的问题
由于本学科的特点、 生源的客观情况及硬件条件的限制等使 得实验课教学仍有一些不足之处,进而学生对这么课程失去兴 趣。 1)重视程度不够。由于实验环节常常被看作是理论环节的 附属部分,最终成绩仍以卷面为主,实验成绩只占一小部分,另 外实验考核还容易出现缺乏清晰的依据的情况, 有限实践时间里 学习动力不足。 2)验证性实验内容为主。以往实验教学中,实 验内容的安排完全服从理论章节的学习, 学生的注意力集中在某 种结构或某个算法实现上, 容易忽视对概念整体性理解把握, 对 于规模较大、 较复杂的问题往往素手无策。 综合设计能力得不到 很好地训练。 3)实验考核方法单一。传统的考核一般由两种方 式组成:一是教师检查程序的运行结果。工作量很大,而且也不 一定能在课时内完成, 既费时又费力。 二是检查实验报告中的程 序编写情况。批改中容易忽略学生的独特思路。由此一来,某种 程度上限制了学生思维的拓展,不利于学生创新能力的培养。
经积极探索与实践,将 ACM-ICPC竞赛引入实验课教学,能 够很好解决以上问题,并取得良好效果。
二、ACM-ICPC竞赛简介
(一) ACM-ICPCW要规则如下
以团队的形式代表各学校参赛, 每队由 3名队员组成。 每位 队员必须是在校学生,有一定的年龄限制,并且最多可以参加 2 次全球总决赛和 5 次区域选拔赛。比赛期间,每队使用 1 台电脑。 需要在 5 个小时内使用 C、 C++、 Pascal 或 Java 中的一种编写程 序解决 7到 11个问题。程序完成之后提交裁判运行,运行的结 果会判定为正确或错误两种并及时通知参赛队。 每队在正确完成 一题后, 升起一只代表该题颜色的气球。 每道试题用时将从竞赛 开始到试题解答被判定为正确为止, 其间每一次提交运行结果被 判错误的话将被加罚 20 分钟时间,未正确解答的试题不记时。
(二) ACM竞赛给教学带来的好处有
ACM竞赛题目的涉及面广,融入多门学科的知识,参赛队 员必须掌握大量的学科基础理论,包括程序设计、算法分析、数 据结构、数学建模等等,这也大大激发了学生学习的动力。
为以后做实际项目做了很好的衔接。
分组实验教学, 由教师为主体转变为学生团队为主体的模
式,学生学会了如何分工协作,与人沟通。
AC M网络拓展了学生的知识面。教师可以引导学生加入这 个大平台,从简单的小题开始做起。学生们在这里增长了知识, 开阔了视野,结识了更多优秀的人。
利用OnlineJudge (简称OJ)平台改变学生评价方法。平 时的作业和实验课都充分利用开放的 OJ系统进行评判。
三、实验课中 OnlineJudge 平台的应用
OnlineJudge系统(简称0J)是一个在线的判题系统。用户 可以在线提交程序多种程序(如 C、 C++、Pascal )源代码,系 统对源代码进行编译和执行, 并通过预先设计的测试数据来检验 程序源代码的正确性。用于 ACM-ICPC竞赛和0I
(OlympiadinInformatics )信息学奥林匹克竞赛中的自动判题 和排名。 现广泛应用于各地高校学生程序设计训练、 参赛队员选 拔、各种竞赛以及数据结构和算法的学习中。
(一) 强化基础,突出实践
从竞赛的题目来看, 试题涉及到多门学科, 要求学生具有一 定的数据建模知识,算法分析能力,软件工程的思想,综合性很 强,与C++程序设计课程能力培养的目标要求是一致的。
(二) 案例、任务驱动式的实验教学模式 在实验教学中,同学们分析、学习别人设计好的程序代码。
还可以将日常教学的课程内容融合在 ACM竞赛题目中。教师根据 实际情况布置任务, 简单任务由单个人完成, 复杂任务让同学们 自行分组。在完成实验中,每个人必须完成其中一部分,开展组 内或组间学习和讨论。 学生们经过这些锻炼之后, 程序设计能力、 团结合作能力、沟通能力都得到极大的提高。
(三)弥补实验课时不足,课堂教学的延伸
利用 OnlineJudge 系统的网络环境, 可以随时在线进行学习 和练习。如今随着信息化、网络化的迅速普及,学生团队对自己 分
原创力文档

文档评论(0)