论文部分内容阅读
摘要:针对数据结构课程设计教学过程中存在的问题,分析了数据结构课程的特点与课程设计的重要性,阐述了教学过程中课程设计的选题,实施方法,以及评价标准等方面的一些感受与体会。
关键词:数据结构;课程设计;教学过程;实施方法;评价标准
中图分类号:TP311.12 文献标识码:A 文章编号:1009-3044(2013)22-5101-02
数据结构是计算机科学与技术专业的一门必修的专业基础课,是计算机理论与技术的重要基石。该课程的主要特点是实践性很强,不仅要学习基本理论知识,更要注重上机实践,通过上机实践验证算法的正确性,掌握和巩固所学理论知识。该课程的主要目的是通过学习,使学生学会分析研究计算机加工的数据结构的特性,以便为涉及的数据选择适当的逻辑结构、存储结构及相应的算法,并初步了解对算法的时间分析和空间分析技术;另一方面,通过算法设计和上机实践的训练,培养学生的数据抽象能力和程序设计的能力,为后续课程,特别是软件类课程打下坚实的基础。
数据结构课程要求学生掌握各种常用数据结构的逻辑结构、存储结构,及相关操作的算法,而学生在算法设计或程序设计方面还不具备足够的技巧,因而会感到难以理解和掌握。学生理解教材上的基本概念并不难,然而,他们在解决具体问题时就会感觉到力不从心,特别是对那些有一定难度的算法设计题更显得无从下手[1-2]。因此,培养学生的学习兴趣和自信心,提高其学习的主动性、创新性及应用能力,是数据结构课程教学中的重要任务。
数据结构课程一般是在大学二年级上学期开设,而数据结构课程设计在大学二年级下学期开设。作为一个重要的实践教学环节,该课程是数据结构课堂理论教学的延续与补充,其基本目标是运用所学知识,对实际问题进行分析,选取合适的数据结构,独立地进行设计相对应的存储结构,并用算法加以实现,从而解决所提出的问题[3-4]。在此过程中,进一步巩固、加深和融合所学的专业课程知识,锻炼学生独立思考的能力、分析问题和解决问题的能力、综合设计能力、开拓创新能力、自学能力,以及团队协作能力等。因此,课程设计对全面提高学生综合素质具有重要意义。
笔者在多年的教学实践中体会到,数据结构课程设计的教学要循序渐进,如何让学生理解课程内容与较好地解决实际问题两者相结合是本门课程教学的主要目标。为了让学生准确理解并巩固所学的基本概念、原理和方法,将所学的基本知识、基本技能用于解决实际问题,达到具备今后软件了开发工作所需的能力,最重要的是让他们勤加苦练。经过循序渐进地练习,使学生掌握更多的程序设计技巧和方法,提高他们分析、解决问题的能力,培养他们的团队协作精神。接下来,笔者就如何激发学生的兴趣,提高数据结构课程设计的教学效率和效果,阐述几点感受与体会,与同行一起探讨。
1 课程设计教学过程中的体会
数据结构课程设计比教学实验复杂一些,涉及的深度更广些,而且更加实用一些。教学过程中,教师根据学校的特点和教学计划选择相应的课程设计内容,帮助学生系统掌握数据结构这门课的主要内容,从而顺利完成教学任务。为实现课程教学目标,笔者结合自身的教学经验和研究成果,就教学过程中课程设计内容的选题,实施方法,以及评价标准等方面谈谈自己的一些体会。
1.1 课程设计内容的选题
数据结构课程设计应遵循以下原则:坚持以能力为本位,以学生为主体,教师角色转换为倡导者。选题时尽量达到以下特点:新颖性、实用性、难度适中、各有所需。
一个好的选题既可以反映课程设计大纲的要求,又能反映本学科新技术的发展前沿,还能通过本课程设计训练,培养学生分析问题、解决问题的能力,从而掌握数据结构这门课程的主要内容。首先,选题要新颖,因为新颖的选题能进一步激发学生的学习兴趣,调动其学习的积极性。其次,选题应具有实用性,接近实际工程的需要,引导学生根据需求分析,利用所学知识去解决与日常生活中密切相关的问题。再次,选题难易程度要适中。课程设计的内容基本上能让大多数同学接受,难度过大会让学生产生一种消极,甚至是抵触的情绪;难度过于简单也同样达不到预期目标。最后,选题范围要足够广泛,让不同层次水平的学生都有问题可想,为学生提供发挥其创新性思维的平台;同时,工程大的选题在一定程度上更能锻炼学生独立思考的能力和团队协作能力。对某些课程设计提出部分需要改进或进一步完善的要求,供那些学有余力的学生来拓宽自己的设计思路,提高自身的解题能力及水平。当然,学生也可以自主设计一些有挑战性的题目。
1.2 课程设计的实施方法
本课程是在保证基础理论教学质量的前提下,进一步加强学生解决实际问题的动手实践能力的培养。根据课程设计的实际情况,给出一些具有一定规模的问题,并对课程设计内容做系统安排,具体实施过程如下。
1.2.1 分组
以设计小组形式,每3~5人组成一组,同一班级自由组合;如需要跨班组合,可向指导教师提出申请。每个小组选出一名基础较好且具有一定组织能力的学生担任组长,组长负责本小组的选题,系统模块划分和任务安排,使每位小组成员负责一部分功能的实现。
1.2.2 选题与分工
各小组成员共同协商选择合适的题目,然后进行分工。小组之间也可以相互合作,将各自的系统模块进行整合,以解决更大规模的问题。指导教师根据各个学生的实际情况作适当调整,保证工作量的合理分配,以确保各小组设计工作的顺利进行。
1.2.3 定期检查
定期检查或抽查每个学生的完成情况,了解各个小组的课程设计进展;督促学生积极思考,比如,描述要解决的问题,根据操作对象选择相应的数据结构,建立模型,定义抽象数据类型,画出算法流程图,引导他们锻炼自己的分析问题和解决问题以及编程实现的能力。
1.2.4 提交实验报告
实验报告的正文必须至少包括以下内容: 1)问题描述:根据自己的理解,描述选题要实现的功能。
2)数据结构:为处理所需要的功能,自己设计数据结构,包括各自完成的有关数据类型,操作的定义,以及存储结构。
3)算法描述:根据问题的要求和所设计的数据结构,描述算法过程。
4)效果与测试情况:给出系统的测试情况与最终效果,可通过截取一些界面用于解释说明。给出测试数据结构的使用手册,以及完成其他数据类型的测试与测试报告。
5)分析与讨论:分析所采用算法的优缺点,时间复杂度,算法实现过程中遇到问题,所采用的解决方法,自己提出的算法的改进方案。本课程设计的不足之处,改进思路,以及实验过程体会。
6)参考资料:文中所引用的参考资料撰写格式参照国家标准(GB-T 7714-2005)。
7)致谢:感谢在完成本课程设计报告过程中对自己提供帮助的个人/集体。
8)附录:附上结构完整的程序,带有详细注释的源程序清单。
1.3 课程设计的评价标准
课程设计完成后,应对每位学生提交的课程设计报告进行评价,可分为小组互评和指导教师评价两个过程。
1.3.1 小组互评
小组互评包括自评和组长评价两部分。首先,每位组员根据各自参与程度、完成的工作量、效果在小组内自评,自评分值占50%。其次,组长在报告封面上描述组内每位组员的具体工作,并为组内各成员打分,组长评分值占50%,同时规定:组长100分,排名靠后的组员的成绩与前一位组员的成绩分数差距为6~10分。课程设计采用分组形式的宗旨是鼓励合作,但反对挂名。
1.3.2 指导教师评价
小组互评之后,由指导教师组织学生进行课程设计报告的现场答辩,答辩过程包括:以小组为单位进行现场演示,解答教师或其他组的同学所提出的问题。现场演示检查可以提高学生对课程设计方法的理解,锻炼他们对相关问题的表达能力。而在现场提问环节中,小组成员可以通过协商共同解答他人的提问,以此提高学生的临场应变能力和相互协作能力。指导教师对课程设计报告要进行认真的评判,评分时各部分的分值比例如下:选题难度,包括完成目标的难度,占20%;完成质量,主要考虑其设计方法和实现技术,占30%;实验报告撰写质量,占30%;演示效果,占20%。上述分值比例及评定方法可根据实际情况适当调整。
指导教师评价学生的设计时采用如下标准:
1)若完成的课程设计特别优秀,且创新性强,可给予90分以上,但严格控制90分以上的数量。
2)若能保证程序完全正确,则可获得80~84分;如果学生设计算法有自己独特的见解,并通过代码实现,而且具有一定的创新性,则可考虑加分到85~89分。
3)若在设计算法和代码实现的过程中出现极少的错误,则应给予70~79分。
4)若设计错误不算太多,大部分算法与实现程序都能通过,则应给予60~69分。
5)若程序中有比较多的错误,不能达到规定的要求,则其成绩给予不及格。
2 结论
课程设计是让学生综合运用所学知识解决实际问题的重要教学实践环节。如何通过课程设计环节实践,培养学生分析并解决具有一定规模的实际问题的能力,提高数据结构课程设计的教学效率和效果,是教师一直在不断研究和探讨的问题。笔者根据自己在教学中的体会,介绍并探讨了对课程设计内容的选取,组织与实施,以及评价标准,并将其应用到本校数据结构课程设计的实际教学中,取得了较好的教学效果,为同行提供一定的可参考价值。
参考文献:
[1] 严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,2006.
[2] 苏仕华.数据结构课程设计[M].北京:机械工业出版社,2005.
[3] 李英梅,夏伟宁,邢恺.“数据结构”课程设计教学过程的研究与实践[J].计算机教育,2009(10):68-69.
[4] 华蓓,赵明.对“数据结构”课程设计教学的一些体会[J].广西大学学报:自然科学版,2007(32):220-222.
关键词:数据结构;课程设计;教学过程;实施方法;评价标准
中图分类号:TP311.12 文献标识码:A 文章编号:1009-3044(2013)22-5101-02
数据结构是计算机科学与技术专业的一门必修的专业基础课,是计算机理论与技术的重要基石。该课程的主要特点是实践性很强,不仅要学习基本理论知识,更要注重上机实践,通过上机实践验证算法的正确性,掌握和巩固所学理论知识。该课程的主要目的是通过学习,使学生学会分析研究计算机加工的数据结构的特性,以便为涉及的数据选择适当的逻辑结构、存储结构及相应的算法,并初步了解对算法的时间分析和空间分析技术;另一方面,通过算法设计和上机实践的训练,培养学生的数据抽象能力和程序设计的能力,为后续课程,特别是软件类课程打下坚实的基础。
数据结构课程要求学生掌握各种常用数据结构的逻辑结构、存储结构,及相关操作的算法,而学生在算法设计或程序设计方面还不具备足够的技巧,因而会感到难以理解和掌握。学生理解教材上的基本概念并不难,然而,他们在解决具体问题时就会感觉到力不从心,特别是对那些有一定难度的算法设计题更显得无从下手[1-2]。因此,培养学生的学习兴趣和自信心,提高其学习的主动性、创新性及应用能力,是数据结构课程教学中的重要任务。
数据结构课程一般是在大学二年级上学期开设,而数据结构课程设计在大学二年级下学期开设。作为一个重要的实践教学环节,该课程是数据结构课堂理论教学的延续与补充,其基本目标是运用所学知识,对实际问题进行分析,选取合适的数据结构,独立地进行设计相对应的存储结构,并用算法加以实现,从而解决所提出的问题[3-4]。在此过程中,进一步巩固、加深和融合所学的专业课程知识,锻炼学生独立思考的能力、分析问题和解决问题的能力、综合设计能力、开拓创新能力、自学能力,以及团队协作能力等。因此,课程设计对全面提高学生综合素质具有重要意义。
笔者在多年的教学实践中体会到,数据结构课程设计的教学要循序渐进,如何让学生理解课程内容与较好地解决实际问题两者相结合是本门课程教学的主要目标。为了让学生准确理解并巩固所学的基本概念、原理和方法,将所学的基本知识、基本技能用于解决实际问题,达到具备今后软件了开发工作所需的能力,最重要的是让他们勤加苦练。经过循序渐进地练习,使学生掌握更多的程序设计技巧和方法,提高他们分析、解决问题的能力,培养他们的团队协作精神。接下来,笔者就如何激发学生的兴趣,提高数据结构课程设计的教学效率和效果,阐述几点感受与体会,与同行一起探讨。
1 课程设计教学过程中的体会
数据结构课程设计比教学实验复杂一些,涉及的深度更广些,而且更加实用一些。教学过程中,教师根据学校的特点和教学计划选择相应的课程设计内容,帮助学生系统掌握数据结构这门课的主要内容,从而顺利完成教学任务。为实现课程教学目标,笔者结合自身的教学经验和研究成果,就教学过程中课程设计内容的选题,实施方法,以及评价标准等方面谈谈自己的一些体会。
1.1 课程设计内容的选题
数据结构课程设计应遵循以下原则:坚持以能力为本位,以学生为主体,教师角色转换为倡导者。选题时尽量达到以下特点:新颖性、实用性、难度适中、各有所需。
一个好的选题既可以反映课程设计大纲的要求,又能反映本学科新技术的发展前沿,还能通过本课程设计训练,培养学生分析问题、解决问题的能力,从而掌握数据结构这门课程的主要内容。首先,选题要新颖,因为新颖的选题能进一步激发学生的学习兴趣,调动其学习的积极性。其次,选题应具有实用性,接近实际工程的需要,引导学生根据需求分析,利用所学知识去解决与日常生活中密切相关的问题。再次,选题难易程度要适中。课程设计的内容基本上能让大多数同学接受,难度过大会让学生产生一种消极,甚至是抵触的情绪;难度过于简单也同样达不到预期目标。最后,选题范围要足够广泛,让不同层次水平的学生都有问题可想,为学生提供发挥其创新性思维的平台;同时,工程大的选题在一定程度上更能锻炼学生独立思考的能力和团队协作能力。对某些课程设计提出部分需要改进或进一步完善的要求,供那些学有余力的学生来拓宽自己的设计思路,提高自身的解题能力及水平。当然,学生也可以自主设计一些有挑战性的题目。
1.2 课程设计的实施方法
本课程是在保证基础理论教学质量的前提下,进一步加强学生解决实际问题的动手实践能力的培养。根据课程设计的实际情况,给出一些具有一定规模的问题,并对课程设计内容做系统安排,具体实施过程如下。
1.2.1 分组
以设计小组形式,每3~5人组成一组,同一班级自由组合;如需要跨班组合,可向指导教师提出申请。每个小组选出一名基础较好且具有一定组织能力的学生担任组长,组长负责本小组的选题,系统模块划分和任务安排,使每位小组成员负责一部分功能的实现。
1.2.2 选题与分工
各小组成员共同协商选择合适的题目,然后进行分工。小组之间也可以相互合作,将各自的系统模块进行整合,以解决更大规模的问题。指导教师根据各个学生的实际情况作适当调整,保证工作量的合理分配,以确保各小组设计工作的顺利进行。
1.2.3 定期检查
定期检查或抽查每个学生的完成情况,了解各个小组的课程设计进展;督促学生积极思考,比如,描述要解决的问题,根据操作对象选择相应的数据结构,建立模型,定义抽象数据类型,画出算法流程图,引导他们锻炼自己的分析问题和解决问题以及编程实现的能力。
1.2.4 提交实验报告
实验报告的正文必须至少包括以下内容: 1)问题描述:根据自己的理解,描述选题要实现的功能。
2)数据结构:为处理所需要的功能,自己设计数据结构,包括各自完成的有关数据类型,操作的定义,以及存储结构。
3)算法描述:根据问题的要求和所设计的数据结构,描述算法过程。
4)效果与测试情况:给出系统的测试情况与最终效果,可通过截取一些界面用于解释说明。给出测试数据结构的使用手册,以及完成其他数据类型的测试与测试报告。
5)分析与讨论:分析所采用算法的优缺点,时间复杂度,算法实现过程中遇到问题,所采用的解决方法,自己提出的算法的改进方案。本课程设计的不足之处,改进思路,以及实验过程体会。
6)参考资料:文中所引用的参考资料撰写格式参照国家标准(GB-T 7714-2005)。
7)致谢:感谢在完成本课程设计报告过程中对自己提供帮助的个人/集体。
8)附录:附上结构完整的程序,带有详细注释的源程序清单。
1.3 课程设计的评价标准
课程设计完成后,应对每位学生提交的课程设计报告进行评价,可分为小组互评和指导教师评价两个过程。
1.3.1 小组互评
小组互评包括自评和组长评价两部分。首先,每位组员根据各自参与程度、完成的工作量、效果在小组内自评,自评分值占50%。其次,组长在报告封面上描述组内每位组员的具体工作,并为组内各成员打分,组长评分值占50%,同时规定:组长100分,排名靠后的组员的成绩与前一位组员的成绩分数差距为6~10分。课程设计采用分组形式的宗旨是鼓励合作,但反对挂名。
1.3.2 指导教师评价
小组互评之后,由指导教师组织学生进行课程设计报告的现场答辩,答辩过程包括:以小组为单位进行现场演示,解答教师或其他组的同学所提出的问题。现场演示检查可以提高学生对课程设计方法的理解,锻炼他们对相关问题的表达能力。而在现场提问环节中,小组成员可以通过协商共同解答他人的提问,以此提高学生的临场应变能力和相互协作能力。指导教师对课程设计报告要进行认真的评判,评分时各部分的分值比例如下:选题难度,包括完成目标的难度,占20%;完成质量,主要考虑其设计方法和实现技术,占30%;实验报告撰写质量,占30%;演示效果,占20%。上述分值比例及评定方法可根据实际情况适当调整。
指导教师评价学生的设计时采用如下标准:
1)若完成的课程设计特别优秀,且创新性强,可给予90分以上,但严格控制90分以上的数量。
2)若能保证程序完全正确,则可获得80~84分;如果学生设计算法有自己独特的见解,并通过代码实现,而且具有一定的创新性,则可考虑加分到85~89分。
3)若在设计算法和代码实现的过程中出现极少的错误,则应给予70~79分。
4)若设计错误不算太多,大部分算法与实现程序都能通过,则应给予60~69分。
5)若程序中有比较多的错误,不能达到规定的要求,则其成绩给予不及格。
2 结论
课程设计是让学生综合运用所学知识解决实际问题的重要教学实践环节。如何通过课程设计环节实践,培养学生分析并解决具有一定规模的实际问题的能力,提高数据结构课程设计的教学效率和效果,是教师一直在不断研究和探讨的问题。笔者根据自己在教学中的体会,介绍并探讨了对课程设计内容的选取,组织与实施,以及评价标准,并将其应用到本校数据结构课程设计的实际教学中,取得了较好的教学效果,为同行提供一定的可参考价值。
参考文献:
[1] 严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,2006.
[2] 苏仕华.数据结构课程设计[M].北京:机械工业出版社,2005.
[3] 李英梅,夏伟宁,邢恺.“数据结构”课程设计教学过程的研究与实践[J].计算机教育,2009(10):68-69.
[4] 华蓓,赵明.对“数据结构”课程设计教学的一些体会[J].广西大学学报:自然科学版,2007(32):220-222.