基于ACM平台的程序设计课程教学改革

来源 :软件工程师 | 被引量 : 0次 | 上传用户:ivan_wongxc
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:针对程序设计类课程教学中存在的问题及原因,在分析ACM平台特点的基础上,给出了基于ACM平台的程序设计课程理论和实践教学方法,提出了具体措施,实践中收到了较好的效果。
  关 键 词:ACM;教学改革;程序设计课程
  0引言
  高等院校计算机相关专业的课程中程序设计类课程占了较大的比重,程序设计类课程的实践性很强,课程教学的最终目标是要求学生具有一定的程序设计能力。以往教学过程中主要强调程序设计语言的语法、实验内容也相应分成不同的模块,导致在教学过程中教师往往将重点偏向理论,忽视了理论和实际程序设计之间的联系,降低了实际程序设计能力的训练和考察,不能有效地培养也不能提高学生的程序设计水平。国际大学生程序设计竞赛(简称ACM) 是由美国计算机学会主办的,公认的规模最大、水平最高的程序设计竞赛。竞赛对程序设计语言和算法的学习使用作为整体来进行考察,将ACM 竞赛的平台与程序设计类课程的教学结合起来,提高学生的程序设计能力,是一个十分有意义的问题。
  1传统程序设计类课程教学中的问题
  1.1理论教学中的问题
  高级语言程序设计(C、C )一直以来都是计算机相关专业的基础课程,也是公共计算机教学的主要课程。高级语言程序设计及其后续课程(数据结构,算法分析和设计)同属工科课程,实践性很强,对实践的要求很高。但是,传统的课程安排基本上都是以理论教学为主,只安排了较少的实践内容。以沈阳师范大学为例,实践教学的比例一般为三分之一左右。理论教学以语法为主线,主要强调学生对语法和典型例题的掌握。实践教学环节主要是模块化的内容,学生只要掌握一两个知识点即可完成实验。最后的考核以笔试为主,实践所占的比例很小。学生不需要调试程序,很多学生通过死记硬背也能得到比较高的分数。这种教学模式无法很好地考察实践能力,对程序设计能力的训练和提升也没有实质的帮助,不能激发学生的学习兴趣。
  上述情况造成了计算机学科教学中的“学与用”的矛盾。一方面,基础的程序设计类课程距离实践运用相差甚远,学生学了很多基础语法和典型的数据结构及算法,却不能使用所学内容去解决实际问题,以至于很多学生学过了所有课程,考试得了很高的分数,却不会编写程序,学生因此觉得课程没有用处,不愿意去学习;另一方面,学生过分强调实践,关注和学习最新的计算机技术。虽然开始的时候能够学到一定的技术,但是随着学习和应用的深入,由于缺少基础课程的支撑,限制了学生水平的进一步提升。
  1.2 实践教学中的问题
  相比传统教学,程序设计类课程的实践教学得到了一定重视,但是无论是教学计划制订者,还是教师和学生,都将实践环节看作是理论教学的辅助手段。这可以从学时分配、课程内容的顺序,以及考核所占的比重中体现出来。
  以往的实验基本是按照章节组织内容,主要考察单个的算法。 学生一般只关注对单个算法的理解和使用,对于从整体上掌握概念和应用多个算法解决相对复杂的问题关注的很少。验证性实验占实验内容的很大部分,对于软件开发过程中的分析、设计、实现,调试、测试等环节很少涉及。学生对实验内容没有整体的把握,综合设计能力不能有效地提高[1]。
  传统实践教学对学生实验课内容的检查存在不足。学生的程序是否正确,只是学生使用自己想到的和实验指导书上提供的数据进行测试。实验指导书不可能提供严格的测试数据集,学生自己也往往不能够全面地考虑问题。并且现在的教学班人数普遍较多,教师不可能一一检查,传统方式根本无法发现程序中疏漏的情况和不易察觉的错误。由于精力有限,检查实验报告时教师很难区分是学生抄写过程中的错误,还是程序实现过程中的代码错误。另外,由于知识面限制和惯性思维的作用,教师有可能误判学生的不同于参考答案的算法。综上所述,传统的检查方式不能有效地发现程序中的非语法问题。同时,针对少数知识掌握比较好,实践能力较强的学生开发的不同于参考答案的程序,也不能提供较好的检查,而且不能对这部分学生的进一步提升提供帮助[2]。
  受困于实践教学学时的限制,实践教学过程中很难安排具有难度和综合性的题目。为了解决这个问题,很多院校设置了课程设计环节。学生以分组的形式在要求的时间内完成指定的实验。课程设计的目的在于综合所学知识,提高学生的分析能力、设计能力和解决问题的能力,以及培养学生的团队精神和相互协作能力。但是实践过程中,由于教师精力和学术水平的限制,所选的题目与实际联系不够紧密、考核的方式以小组报告和小组答辩为主,不能够体现团队分工,常导致学生对课程设计缺乏兴趣,收效甚微。
  2 ACM的特点
  ACM是由美国计算机学会主办,其宗旨是考察大学生使用程序设计语言和算法分析和解决问题的能力。ACM的模式对培养程序设计能力、团队精神和创新意识都具有积极的作用。ACM 具有以下特点:
  2.1 题目涉及面广,要求高
  ACM题目涉及相当广泛的知识,包括程序设计语言、数据结构、算法、人工智能、离散数学等程序设计类课程的理论和方法。同时,为了提高参赛选手的兴趣,与实践相结合,ACM的题目注意生活化和趣味化,对数学建模、概率论、计算几何、组合数学等一般计算机专业没有开设的课程也有要求。参赛学生为了在比赛中取得好的成绩,需要学习和应用很多上述课程的知识,使学生将做题和学习结合在一起,提高了学生的学习兴趣,调动了学生的积极性。
  2.2 对选手的团队配合能力有很高的要求
  ACM竞赛中每支参赛队伍由不超过3名队员组成,每支队伍只会分配一台计算机。这就要求队员明确每个人的特长,合理地根据问题进行分工,提高解题的效率。对于没有明确解题算法的题目,要求队员讨论时有较高的对算法思路的描述能力以及对所提解决方案的合理论证能力。所有这些都要求队员具有较高的协作能力。
  2.3 要求学生具有较高的抗压能力,能够快速地理解和解决问题
其他文献
蓟镇边线绵长而地势险要,在永乐迁都后,成为“京师之肘腋,天下之腹心”,边防战略地位十分重要。隆庆年间,鉴于蒙古进犯凶猛而蓟镇边防薄弱、练兵屡次无效,明廷北调抗倭名将福
人类社会的发展历史表明,中国古代家国组织的社会形态及其法律文化传统是古代司法二元性的重要基础和基本特征。古代中国是一个宗法制国家,以家为基础,集家成族,合族成国,是
高职院校中数学是一门重要的基础学科。如何运用数学知识,服务于对应的专业课,如何有效应用专业理论,打好实践基础,已成为重中之重。对于我校的铁道工程专业,很多课程(包括工
针对高等教育信息化评价指标体系不够全面和完善,缺乏统一等问题,结合我国高校教育信息化的特点与现状,借鉴国内外高校信息化发展过程中的成果,运用多学科理论构建高等教育信
随着高校社会化程度的深入,越来越多城市往市郊地区建设大学城,大学城里的高校之间联系更加紧密,校园周边复杂的郊区环境也使得校园安全问题更加突出,交通、消防、盗窃、诈骗
晚唐五代大量“醉梦词”的出现有着特殊的时代原因。政治黑暗、局势动荡的社会境况和南方城市经济的畸形繁荣共同造就了文人们醉生梦死的末世心态和生活方式,也促使他们形成了
饲草玉米是一种一年生或多年生草本植物,植株形似玉米,分蘖较多且茎直立,同时饲草玉米也是一种喜温、喜湿、耐肥饲料作物,其具有较强的实用性,栽培技术相对简单,具有高营养、
将崇仁麻鸡 36 0只 (公母各半 )随机分成三组 ,分别饲喂不同能量和蛋白质水平的日粮。试验结果表明 ,不同营养水平对 6 0日龄前各期体重有显著 (P <0 .0 5 )的影响 ;对 70日
随着全媒体时代的到来,媒体融合不断向纵深发展,依靠传统媒介的就业服务模式已无法满足毕业生实际就业需求。高校应紧追全媒体时代媒体融合发展的脚步,充分利用媒体平台创新
摘要:公路体制改革是各级公路工作者普遍关注的问题。在实现由事业单位转换为企业改制的过程中,如何防止国有资产流失,使各级公路企业尽快成为市场主体,加快公路交通的大发展,需要各级公路部门在实践中探索。本文试图探讨内部审计在公路企业改制中如何发挥作用,进而达到服务公路企业改制的目的。  关键词:公路改制企业;内部审计;作用  中图分类号:F54  文献标识码:A 文章编号:1003-949X(2007