论文部分内容阅读
摘要:针对数据结构课程实验教学中存在的问题,本文分析了问题产生的原因,研究了ACM竞赛的意义,其对数据结构实践教学和大学生实践能力培养的作用,提出了具体的实验教学改革措施,对以ACM竞赛驱动数据结构课程的实验教学改革进行了有益的探索。
关键词:ACM竞赛;数据结构;实践教学;教学改革
1、引言
高等教育改革要求高校转变教育观念,改革人才培养模式[1],改进教师教学方式和学生学习方式,积极采取启发式、研讨式的教学方法,探索有利于学生思维和能力培养、促进学生全面发展的新型教学模式。理论教学与实践教学是高校教育的两个重要组成部分,其中,实践教学环节对培养大学生的实践技能和创新能力起到非常重要的作用。
数据结构是计算机及相关专业的一门核心课程,主要研究信息的逻辑结构及其基本操作在计算机中的表示和实现。该课程学习的效果不仅关系到后续课程的学习,而且直接影响到学生软件设计水平能力的提高和专业素质的培养。数据结构实验课是学生践行所学理论知识,进而深入理解并探索和运用知识的过程。通过实验,学生不仅可以进一步理解相关基本知识,通过对不同存储结构和相应算法的对比编程实验,选择合理的数据结构并控制求解算法的时间、空间复杂度,而且能进一步提高软件设计能力和编程水平,提高学习的积极性和主动性,形成科学的思维方法和严谨的科学态度,因此数据结构实验课程十分重要。
ACM/ICPC[2](ACM International Collegiate Programming Contest,国际大学生程序设计竞赛)是ACM(Association for Computing Machinery,国际计算机协会)自1970年以来组织的世界公认的规模最大、水平最高的国际大学生程序设计竞赛,旨在使大学生运用计算机来充分展示自己分析问题和解决问题的能力。ACM竞赛已成为世界各国大学生最具影响力的国际级计算机类的赛事。ACM竞赛的显著效果就是对培养学生的创新设计能力与优秀人才的脱颖而出提供了很好的机会和条件[2],对推动专业课程体系与教学内容的改革起到了推波助澜的作用。在ACM竞赛模式指导下,教师在讲授课程原理前引人ACM竞赛相关的案例题目,能引发学生思考,激起学生兴趣。这种学习模式注重问题求解的编程实现,除了有良好地算法分析能力,还必须养成上机实践、编程、调试、纠错的良好素质。
本教改课题结合ACM竞赛项目对数据结构实验教学环节进行了教学改革,对数据结构实验教学中存在的问题和产生的原因进行了分析,在分析ACM竞赛特点的基础上,尝试结合ACM竞赛项目改革实验教学内容和教学模式,提出了解决问题的具体措施,并在实际教学应用中取得了一定的成效。
2、实验课程传统教学模式及其局限性
传统的数据结构实验教学基本上是“灌输式”的[3],老师给出实验目标、原理、算法主要思想,由学生设计、验证算法等。这种实验教学方式往往使学生处于消极被动的地位,影响其学习主观能动性的发挥,严重阻碍了学生的全面综合素质的培养。
(1) 在实验课程目标设计上,偏重于算法的程序语言实现,而忽视了算法的延展性设计。数据结构实验课程的行为目标使得教师处于支配地位,强调目标的具体化、精确化和可操作性,强调教师在教学中的绝对权威。这种教学方式抑制了学生学习的主动性。
(2) 在实验内容开发上,偏重于书本上已有的算法验证和设计,缺少综合型、研究型实验的认知探究。实验内容大多以章节为单位,以算法为主线,学生通常把注意力集中在某一个算法实现上,忽视了对概念的整体把握,和在解决较大规模问题时对算法的综合应用能力的培养。这种以教材为中心的教学内容使得学生缺乏在认知、探究过程中获取学习经验,忽视了学生对知识重新进行选择、重组和建构的能力培养。
(3) 在实验课程实施上,偏重于机械化地执行既定实验计划,忽视了培养学生的创造性和发散性思维。这种授课方式要求学生按实验目标完成任务,而不是引导学生创造和超越,学生被动地接受来自课程知识的刺激,缺少主动性和创造性。
3、基于 ACM 模式实践教学的意义
ACM竞赛模式是一个开放综合的实践过程,学生可以学习到比课堂教学内容更加宽泛和深入的编程思想、经验知识和最新技术[1,4],这种模式能够激发学生的学习热情,为学生构建了一个自主创新学习、团队合作学习的开放式学习环境。
(1) 协同合作,培养学生的团队精神
ACM竞赛要求以3名学生为一组参赛队的形式,在规定时间内完成规定任务的求解。学生的这种协同合作要求学生共享与互勉,在良性竞争的引导下相互合作、共负责任、共同承担,有利于学生的心理健康、社会责任感以及自尊心的建立,有利于开阔学生的视野,对学生实践能力、创新意识、团队合作精神也起到了积极地促进作用。
(2) 竞赛式学习,建设优良学风
ACM竞赛模式要求老师课堂讲授,学生课下讨论、实战练习相结合,这样既锻炼了学生对知识的综合运用能力,提高了学生分析问题和解决实际问题的能力,也对大学生的综合素质的提高、学风和校风的建设有着积极而深远的影响。
4、实验教学改革方案
ACM竞赛以解决问题为目标,而解题方法不受限制,可以让学生有更多的创新思维空间。将ACM模式引入到数据结构的实践教学中,可激发学生的学习热情和潜力,提高学生自主学习能力、创新能力,也有利于团队精神的培养。
(1) 实验内容分级
传统的实验内容多为验证型、设计型实验,很大程度上限制了学生的创新思维。我们又增加了应用提高型、综合型实验,每种类型的实验又设置若干实验题,每个实验题都设有相应的难度系数。学生可以根据自己的兴趣、编程能力等实际情况,在完成一道设计型实验题目的基础上,选择一项应用提高型或综合型的实验。这样有选择地进行程序设计和实践,可以使学有余力的同学尽早接触较大的应用实践题目,得到更多的锻炼。 另外,采取任务驱动教学方式[5,6],选取有一定趣味性、应用性、代表性的实验题目,加入到实验题库中,让学生可以清楚地认识到理论知识在实际中的应用,增进学生的学习兴趣和动力。
(2) 个体化实验教学方式
因为学生编程水平参次不齐,学习主动性也因人而异,因此不能搞“一刀切”,让所有学生练习同样的实验题目。我们根据学生的实践能力和接受能力不同,将实验教学进行分层,具体的实验项目也进行了难度划分,对学生实施因材施教,不同的“个体”根据自身的特点逐步完成实验锻炼,达到使每个学生都得到充分实践的目的。
教学过程还可以借鉴别人设计好的程序代码,让学生读懂程序后,思考他人为什么这样设计?能不能将程序进一步修改完善,以实现更多、更复杂的功能?能不能举一反三,将他人已成形的代码,复用到其他应用中?这样可以学到别人优秀的东西,进而提高自己的程序设计水平。
(3) 实验时间分散化
教师、学生普遍感觉到的问题是实验学时过少,理论知识学了很多,却缺乏实际上机锻炼,违背了该课程的学习宗旨。因此,实验时间不仅仅局限在课堂的90分钟上,积极开设第二课堂,开放实验室及实验项目,学生需合理安排自己的业余时间,在教师规定的时间期限内完成实验内容。
(4) 实验考核更科学化
实验成绩在数据结构课程总成绩中占的比例增为30%,实验总评成绩为多次实验项目的成绩及期末实验考核成绩的平均分。每次实验项目成绩的计算方法为:
实验项目成绩=源程序代码成绩*0.8+实验结果记录分数*0.1+实验报告分数*0.1
源程序代码成绩=设计型实验得分*0.7+应用提高型/综合型实验*0.3
将实验总评成绩细化,不仅在成绩评定上做到了客观、公正,还更好地发掘了学生的创新能力,提高他们对知识点的掌握程度。
(5) 构建阶梯式实践教学体系
传统的数据结构课程实践教学分为两个层次:实验部分和课程设计。随着高校建设应用型、创新型人才培养目标的提出,这种传统的两级实践教学体系已经不能满足高等教育的需求了。为了让学生掌握更多的知识,更好地激发学生的学习激情,切实提高动手实践能力,我们提出阶梯式四级实践教学体系:实验教学→课程设计教学→创新项目→科研项目开发。
创新实验教学注重开发学生的思维潜力,使学生学会主动地解决问题,把理论知识实际应用到实验中,拓展知识面,培养学生的实践能力和技巧、深刻的问题分析能力,激发学生的创新思维。
课程设计教学旨在对学生知识、能力、素质的综合培养,通过“程序设计、作品实现、报告撰写、答辩表现”四个方面的考核,培养学生独立思考、自主学习的能力,使学生具有主动探索意识,提高抽象思维能力,培养算法的设计和分析能力、科学报告的撰写能力和表达能力。
带领学生参加创新设计大赛,使学生在完成第一级、第二级实践环节的基础上,更有针对性和目的性地开展课题项目。这样不仅进一步提高了学生解决实际问题的能力,同时也可以系统培养学生的软件整体开发能力,培养学生的团队精神和开拓创新精神,更增强了学习自信心。
经过创新设计大赛的选拔,表现优秀的学生会被逐步吸纳进教师的各个研究组中,参加实际的科研项目的研发工作。这样不仅可以使学生快速积累、升华知识,还可以为就业或继续深造做好技能储备。目前,我们学院已有多名三、四年级的本科生参与到北京市级科研项目的研发中,并表现了良好的专业素养和实践能力。
5、结束语
将ACM竞赛应用到数据结构课程实践教学中,充分调动了学生的学习热情,促使学生将被动学习转化为主动探索,使学生的编程能力和解题思维能力得到了有效训练,培养了学生的创新思维和创新能力,教学效果显著提高。当然,以上的探索是初步的,数据结构实践教学改革还需继续深入,以期培养高水平、高素质的优秀人才。
[参考文献]
[1]祝昌宇,陈广贵. 从ACM竞赛谈计算机实验教学改革,实验科学与技术,2011(10).
[2]常子楠. 基于ACM模式的程序设计类课程实践教学探索,计算机教育,2010(16).
[3]赵耀红,孙宇. 数据结构实验教学的实践与探索,长春大学学报,2012(4).
[4]郑宏珍等. 以培养学生创新能力为核心的《数据结构》教学方法研究,现代计算机,2011(8).
[5]马彦. 数据结构实验教学改革探索,洛阳师范学院学报,2011(11).
[6]张颖,吕艳林等. 基于ACM竞赛的实验教学改革探索,科技教育,2011(33).
关键词:ACM竞赛;数据结构;实践教学;教学改革
1、引言
高等教育改革要求高校转变教育观念,改革人才培养模式[1],改进教师教学方式和学生学习方式,积极采取启发式、研讨式的教学方法,探索有利于学生思维和能力培养、促进学生全面发展的新型教学模式。理论教学与实践教学是高校教育的两个重要组成部分,其中,实践教学环节对培养大学生的实践技能和创新能力起到非常重要的作用。
数据结构是计算机及相关专业的一门核心课程,主要研究信息的逻辑结构及其基本操作在计算机中的表示和实现。该课程学习的效果不仅关系到后续课程的学习,而且直接影响到学生软件设计水平能力的提高和专业素质的培养。数据结构实验课是学生践行所学理论知识,进而深入理解并探索和运用知识的过程。通过实验,学生不仅可以进一步理解相关基本知识,通过对不同存储结构和相应算法的对比编程实验,选择合理的数据结构并控制求解算法的时间、空间复杂度,而且能进一步提高软件设计能力和编程水平,提高学习的积极性和主动性,形成科学的思维方法和严谨的科学态度,因此数据结构实验课程十分重要。
ACM/ICPC[2](ACM International Collegiate Programming Contest,国际大学生程序设计竞赛)是ACM(Association for Computing Machinery,国际计算机协会)自1970年以来组织的世界公认的规模最大、水平最高的国际大学生程序设计竞赛,旨在使大学生运用计算机来充分展示自己分析问题和解决问题的能力。ACM竞赛已成为世界各国大学生最具影响力的国际级计算机类的赛事。ACM竞赛的显著效果就是对培养学生的创新设计能力与优秀人才的脱颖而出提供了很好的机会和条件[2],对推动专业课程体系与教学内容的改革起到了推波助澜的作用。在ACM竞赛模式指导下,教师在讲授课程原理前引人ACM竞赛相关的案例题目,能引发学生思考,激起学生兴趣。这种学习模式注重问题求解的编程实现,除了有良好地算法分析能力,还必须养成上机实践、编程、调试、纠错的良好素质。
本教改课题结合ACM竞赛项目对数据结构实验教学环节进行了教学改革,对数据结构实验教学中存在的问题和产生的原因进行了分析,在分析ACM竞赛特点的基础上,尝试结合ACM竞赛项目改革实验教学内容和教学模式,提出了解决问题的具体措施,并在实际教学应用中取得了一定的成效。
2、实验课程传统教学模式及其局限性
传统的数据结构实验教学基本上是“灌输式”的[3],老师给出实验目标、原理、算法主要思想,由学生设计、验证算法等。这种实验教学方式往往使学生处于消极被动的地位,影响其学习主观能动性的发挥,严重阻碍了学生的全面综合素质的培养。
(1) 在实验课程目标设计上,偏重于算法的程序语言实现,而忽视了算法的延展性设计。数据结构实验课程的行为目标使得教师处于支配地位,强调目标的具体化、精确化和可操作性,强调教师在教学中的绝对权威。这种教学方式抑制了学生学习的主动性。
(2) 在实验内容开发上,偏重于书本上已有的算法验证和设计,缺少综合型、研究型实验的认知探究。实验内容大多以章节为单位,以算法为主线,学生通常把注意力集中在某一个算法实现上,忽视了对概念的整体把握,和在解决较大规模问题时对算法的综合应用能力的培养。这种以教材为中心的教学内容使得学生缺乏在认知、探究过程中获取学习经验,忽视了学生对知识重新进行选择、重组和建构的能力培养。
(3) 在实验课程实施上,偏重于机械化地执行既定实验计划,忽视了培养学生的创造性和发散性思维。这种授课方式要求学生按实验目标完成任务,而不是引导学生创造和超越,学生被动地接受来自课程知识的刺激,缺少主动性和创造性。
3、基于 ACM 模式实践教学的意义
ACM竞赛模式是一个开放综合的实践过程,学生可以学习到比课堂教学内容更加宽泛和深入的编程思想、经验知识和最新技术[1,4],这种模式能够激发学生的学习热情,为学生构建了一个自主创新学习、团队合作学习的开放式学习环境。
(1) 协同合作,培养学生的团队精神
ACM竞赛要求以3名学生为一组参赛队的形式,在规定时间内完成规定任务的求解。学生的这种协同合作要求学生共享与互勉,在良性竞争的引导下相互合作、共负责任、共同承担,有利于学生的心理健康、社会责任感以及自尊心的建立,有利于开阔学生的视野,对学生实践能力、创新意识、团队合作精神也起到了积极地促进作用。
(2) 竞赛式学习,建设优良学风
ACM竞赛模式要求老师课堂讲授,学生课下讨论、实战练习相结合,这样既锻炼了学生对知识的综合运用能力,提高了学生分析问题和解决实际问题的能力,也对大学生的综合素质的提高、学风和校风的建设有着积极而深远的影响。
4、实验教学改革方案
ACM竞赛以解决问题为目标,而解题方法不受限制,可以让学生有更多的创新思维空间。将ACM模式引入到数据结构的实践教学中,可激发学生的学习热情和潜力,提高学生自主学习能力、创新能力,也有利于团队精神的培养。
(1) 实验内容分级
传统的实验内容多为验证型、设计型实验,很大程度上限制了学生的创新思维。我们又增加了应用提高型、综合型实验,每种类型的实验又设置若干实验题,每个实验题都设有相应的难度系数。学生可以根据自己的兴趣、编程能力等实际情况,在完成一道设计型实验题目的基础上,选择一项应用提高型或综合型的实验。这样有选择地进行程序设计和实践,可以使学有余力的同学尽早接触较大的应用实践题目,得到更多的锻炼。 另外,采取任务驱动教学方式[5,6],选取有一定趣味性、应用性、代表性的实验题目,加入到实验题库中,让学生可以清楚地认识到理论知识在实际中的应用,增进学生的学习兴趣和动力。
(2) 个体化实验教学方式
因为学生编程水平参次不齐,学习主动性也因人而异,因此不能搞“一刀切”,让所有学生练习同样的实验题目。我们根据学生的实践能力和接受能力不同,将实验教学进行分层,具体的实验项目也进行了难度划分,对学生实施因材施教,不同的“个体”根据自身的特点逐步完成实验锻炼,达到使每个学生都得到充分实践的目的。
教学过程还可以借鉴别人设计好的程序代码,让学生读懂程序后,思考他人为什么这样设计?能不能将程序进一步修改完善,以实现更多、更复杂的功能?能不能举一反三,将他人已成形的代码,复用到其他应用中?这样可以学到别人优秀的东西,进而提高自己的程序设计水平。
(3) 实验时间分散化
教师、学生普遍感觉到的问题是实验学时过少,理论知识学了很多,却缺乏实际上机锻炼,违背了该课程的学习宗旨。因此,实验时间不仅仅局限在课堂的90分钟上,积极开设第二课堂,开放实验室及实验项目,学生需合理安排自己的业余时间,在教师规定的时间期限内完成实验内容。
(4) 实验考核更科学化
实验成绩在数据结构课程总成绩中占的比例增为30%,实验总评成绩为多次实验项目的成绩及期末实验考核成绩的平均分。每次实验项目成绩的计算方法为:
实验项目成绩=源程序代码成绩*0.8+实验结果记录分数*0.1+实验报告分数*0.1
源程序代码成绩=设计型实验得分*0.7+应用提高型/综合型实验*0.3
将实验总评成绩细化,不仅在成绩评定上做到了客观、公正,还更好地发掘了学生的创新能力,提高他们对知识点的掌握程度。
(5) 构建阶梯式实践教学体系
传统的数据结构课程实践教学分为两个层次:实验部分和课程设计。随着高校建设应用型、创新型人才培养目标的提出,这种传统的两级实践教学体系已经不能满足高等教育的需求了。为了让学生掌握更多的知识,更好地激发学生的学习激情,切实提高动手实践能力,我们提出阶梯式四级实践教学体系:实验教学→课程设计教学→创新项目→科研项目开发。
创新实验教学注重开发学生的思维潜力,使学生学会主动地解决问题,把理论知识实际应用到实验中,拓展知识面,培养学生的实践能力和技巧、深刻的问题分析能力,激发学生的创新思维。
课程设计教学旨在对学生知识、能力、素质的综合培养,通过“程序设计、作品实现、报告撰写、答辩表现”四个方面的考核,培养学生独立思考、自主学习的能力,使学生具有主动探索意识,提高抽象思维能力,培养算法的设计和分析能力、科学报告的撰写能力和表达能力。
带领学生参加创新设计大赛,使学生在完成第一级、第二级实践环节的基础上,更有针对性和目的性地开展课题项目。这样不仅进一步提高了学生解决实际问题的能力,同时也可以系统培养学生的软件整体开发能力,培养学生的团队精神和开拓创新精神,更增强了学习自信心。
经过创新设计大赛的选拔,表现优秀的学生会被逐步吸纳进教师的各个研究组中,参加实际的科研项目的研发工作。这样不仅可以使学生快速积累、升华知识,还可以为就业或继续深造做好技能储备。目前,我们学院已有多名三、四年级的本科生参与到北京市级科研项目的研发中,并表现了良好的专业素养和实践能力。
5、结束语
将ACM竞赛应用到数据结构课程实践教学中,充分调动了学生的学习热情,促使学生将被动学习转化为主动探索,使学生的编程能力和解题思维能力得到了有效训练,培养了学生的创新思维和创新能力,教学效果显著提高。当然,以上的探索是初步的,数据结构实践教学改革还需继续深入,以期培养高水平、高素质的优秀人才。
[参考文献]
[1]祝昌宇,陈广贵. 从ACM竞赛谈计算机实验教学改革,实验科学与技术,2011(10).
[2]常子楠. 基于ACM模式的程序设计类课程实践教学探索,计算机教育,2010(16).
[3]赵耀红,孙宇. 数据结构实验教学的实践与探索,长春大学学报,2012(4).
[4]郑宏珍等. 以培养学生创新能力为核心的《数据结构》教学方法研究,现代计算机,2011(8).
[5]马彦. 数据结构实验教学改革探索,洛阳师范学院学报,2011(11).
[6]张颖,吕艳林等. 基于ACM竞赛的实验教学改革探索,科技教育,2011(33).