论文部分内容阅读
[摘要]《算法设计与分析》是计算机专业的一门核l心课程。本文结合多年教学实践,从加强理论和实践相结合,增强教学实验课环节的效果和加强课程平台建设和人才培养工作三个方面介绍了我们在课程教学和建设中的几点经验。
[关键词]算法设计与分析 教学方法 研讨 人才培养
[基金项目]国家自然科学基金项目(60873107),湖北省高等学校省级教学研究项目(No.20060175),中国地质大学研究生课程与教材建设项目。
《算法设计与分析》是高校计算机专业学生的一门重要专业课程。其主要目的是理解和掌握算法设计的主要方法,使学生在选择或设计算法时能够进行时空耗费分析,进而编写出高效程序,为开发出优秀软件系统奠定基础。由于算法领域的知识覆盖面广、难度大、理论推导复杂,学生们普遍认为它难于其他专业课程,这主要是由于这门课程本身的一些特点造成的:1.它具有很强的理论性,要求学生有很扎实的数学、数据结构和至少一种高级语言的基本功。2.它涉及的领域广、应用性强,这就要求学生不能机械记忆,而需要理解性地学习,并灵活运用。3.它有极强的可扩展性、可开发性,学生必须善于思考,有较强的探索欲望,才能从这门课中得到真正的乐趣。
学生调研情况介绍
为了更好地掌握学生在学习这门课程中的情况和需求,我们在近几年的教学过程中,通过发放问卷的形式,对学生情况进行调查。通过调研,我们发现学生在学习这门课程中主要关心以下几点问题:1.由于这门课程具有很强的理论性,课程中大量讲解算法的基本定义、原理、推导等,容易造成学习积极性降低,不知道学习这门课对将来的专业积累有何帮助等问题。2.在上机实验课程安排上,希望能设计一些结合实际或有项目背景需求的题目,最好能有一些参考代码。3.课后希望能够提供一个继续学习的平台,或能够参加老师的一些相关算法研究项目。
教学经验
根据笔者多年的算法设计与分析课程的教学经验,结合上述的学生提出的一些问题,我们在教学中不断进行改进,总结了一些教学心得和比较成功的教学方法,提出以下几点建议:
1.加强理论和实践相结合
科研和教学应该相辅相成,在教学过程中,通过加入最新的研究成果和国内外研究前沿,将有助于开阔学生视野,同时提高学生学习的积极性和能动性。(1)在讲课的内容上,首先讲解几类经典算法,如:分治法、动态规划法等典型算法,教师应不局限于教材内容,可将计算机领域热门话题或前沿知识扩展到教学中,启发并引导学生主动探索知识。(2)将科研成果融入到算法教学中。目前,我们在算法讲解中,将多目标优化概念,各种最新的多目标演化算法,拟物算法,以及将这些算法在实际工程项目中的应用成果引入到教学。通过科研推动教学的方式,调动学生学习的积极性,激发他们从事算法研究的兴趣。
2.加强教学实验课环节的设计
对于算法设计和分析课程,实验环节的设计非常重要。经过多年的摸索,我们在本科生课程教学中,采取了类似研究生小组研讨的方式来进行。我们将4~5个相同专业学生分为一组,每组推选一位小组长,负责整个小组组织和协调工作。在选题方面,我们采用老师出题和学生自主选题相结合,这样做的目的是不同专业的学生可以选择本专业领域中感兴趣的算法。同时,通过集中汇报的方式,不同专业的学生可以互相了解不同领域的算法,从而拓宽他们的知识面。在准备初期,每小组同学都要进行资料的收集和学习,在后期,小组要进行任务分工和协调,各司其职,整个研讨课程,要求完成所选算法的编码和测试工作,编写算法研究报告和最后的算法研讨汇报几项内容。
对于研讨课环节,有几点需要注意:(1)在选题过程中,对于算法研究能力较差的学生,老师要指定题目,并提供一定的资料和参考代码,引导他们进行研究工作。(2)在整个研讨准备过程中,要加强监督和检查工作,及时了解各小组的分工和进展情况,调动小组每个学生的积极性。(3)由于一般的本科生在研究汇报方面的经验不足,所以汇报前,老师要进行必要的指导,提供汇报模版和建议。
通过在课程中设置研讨环节,使不同专业学生能够了解更多的算法和不同的应用领域,拓宽他们的知识而。同时,通过分组和汇报的形式,提高了学生自主学习的能力,提高了学生团队合作和学术交流的能力,对他们将来从事科研工作或找工作都有很好的帮助。
3.加强课程平台建设和人才培养工作
在课程教学之外,我们积极开展ACM等算法竞赛平台建设,为学生提供一个长期的学习平台。鼓励学生在课后能够参与此类练习,从根本上提高自身的算法设计能力和编程能力。
在人才培养方面,通过课程教学,我们发现一些对算法研究有兴趣和希望从事研究工作的同学,鼓励其参与老师的相关科研课题,帮助学生能够尽早地从事一些科研工作,更深入地了解算法领域,对学生未来从事研究生学习或工作都有很大的帮助。
总结
通过多年的教学实践和摸索,我们在算法设计与分析课程中,提出的小组研讨,以研促教等方法,不断提高教学质量。从对学生的调研来看,这些教学方法的改革得到学生的认可,学习的积极性和能动性得到激发,很多同学开始萌发研究型思维,课余思考和解决一些算法问题,提高自身的算法理论和编程能力。同时,我们每年发现和培养了一批具有较好研究能力的学生,大部分已经成为科研骨干,在研究生阶段作出不错的科研成果,发表高水平学术论文。
参考文献:
[1]王楠,浅析《计算机算法设计与分析》专业课教学方法吉林广播电视大学学报,2006(2):53~55
[2]徐子珊,“算法设计与分析”课程教学和创新能力培养合肥工业大学学报(社会科学版),2008(6):64~66
[3]高尚“算法设计与分析”课程改革初探计算机教育,2008(14):37~38
[4]戴光明,王茂才,彭雷,《算法设计与分析》课程教学的几点体会,计算机科学,2008(35):102~104
[关键词]算法设计与分析 教学方法 研讨 人才培养
[基金项目]国家自然科学基金项目(60873107),湖北省高等学校省级教学研究项目(No.20060175),中国地质大学研究生课程与教材建设项目。
《算法设计与分析》是高校计算机专业学生的一门重要专业课程。其主要目的是理解和掌握算法设计的主要方法,使学生在选择或设计算法时能够进行时空耗费分析,进而编写出高效程序,为开发出优秀软件系统奠定基础。由于算法领域的知识覆盖面广、难度大、理论推导复杂,学生们普遍认为它难于其他专业课程,这主要是由于这门课程本身的一些特点造成的:1.它具有很强的理论性,要求学生有很扎实的数学、数据结构和至少一种高级语言的基本功。2.它涉及的领域广、应用性强,这就要求学生不能机械记忆,而需要理解性地学习,并灵活运用。3.它有极强的可扩展性、可开发性,学生必须善于思考,有较强的探索欲望,才能从这门课中得到真正的乐趣。
学生调研情况介绍
为了更好地掌握学生在学习这门课程中的情况和需求,我们在近几年的教学过程中,通过发放问卷的形式,对学生情况进行调查。通过调研,我们发现学生在学习这门课程中主要关心以下几点问题:1.由于这门课程具有很强的理论性,课程中大量讲解算法的基本定义、原理、推导等,容易造成学习积极性降低,不知道学习这门课对将来的专业积累有何帮助等问题。2.在上机实验课程安排上,希望能设计一些结合实际或有项目背景需求的题目,最好能有一些参考代码。3.课后希望能够提供一个继续学习的平台,或能够参加老师的一些相关算法研究项目。
教学经验
根据笔者多年的算法设计与分析课程的教学经验,结合上述的学生提出的一些问题,我们在教学中不断进行改进,总结了一些教学心得和比较成功的教学方法,提出以下几点建议:
1.加强理论和实践相结合
科研和教学应该相辅相成,在教学过程中,通过加入最新的研究成果和国内外研究前沿,将有助于开阔学生视野,同时提高学生学习的积极性和能动性。(1)在讲课的内容上,首先讲解几类经典算法,如:分治法、动态规划法等典型算法,教师应不局限于教材内容,可将计算机领域热门话题或前沿知识扩展到教学中,启发并引导学生主动探索知识。(2)将科研成果融入到算法教学中。目前,我们在算法讲解中,将多目标优化概念,各种最新的多目标演化算法,拟物算法,以及将这些算法在实际工程项目中的应用成果引入到教学。通过科研推动教学的方式,调动学生学习的积极性,激发他们从事算法研究的兴趣。
2.加强教学实验课环节的设计
对于算法设计和分析课程,实验环节的设计非常重要。经过多年的摸索,我们在本科生课程教学中,采取了类似研究生小组研讨的方式来进行。我们将4~5个相同专业学生分为一组,每组推选一位小组长,负责整个小组组织和协调工作。在选题方面,我们采用老师出题和学生自主选题相结合,这样做的目的是不同专业的学生可以选择本专业领域中感兴趣的算法。同时,通过集中汇报的方式,不同专业的学生可以互相了解不同领域的算法,从而拓宽他们的知识面。在准备初期,每小组同学都要进行资料的收集和学习,在后期,小组要进行任务分工和协调,各司其职,整个研讨课程,要求完成所选算法的编码和测试工作,编写算法研究报告和最后的算法研讨汇报几项内容。
对于研讨课环节,有几点需要注意:(1)在选题过程中,对于算法研究能力较差的学生,老师要指定题目,并提供一定的资料和参考代码,引导他们进行研究工作。(2)在整个研讨准备过程中,要加强监督和检查工作,及时了解各小组的分工和进展情况,调动小组每个学生的积极性。(3)由于一般的本科生在研究汇报方面的经验不足,所以汇报前,老师要进行必要的指导,提供汇报模版和建议。
通过在课程中设置研讨环节,使不同专业学生能够了解更多的算法和不同的应用领域,拓宽他们的知识而。同时,通过分组和汇报的形式,提高了学生自主学习的能力,提高了学生团队合作和学术交流的能力,对他们将来从事科研工作或找工作都有很好的帮助。
3.加强课程平台建设和人才培养工作
在课程教学之外,我们积极开展ACM等算法竞赛平台建设,为学生提供一个长期的学习平台。鼓励学生在课后能够参与此类练习,从根本上提高自身的算法设计能力和编程能力。
在人才培养方面,通过课程教学,我们发现一些对算法研究有兴趣和希望从事研究工作的同学,鼓励其参与老师的相关科研课题,帮助学生能够尽早地从事一些科研工作,更深入地了解算法领域,对学生未来从事研究生学习或工作都有很大的帮助。
总结
通过多年的教学实践和摸索,我们在算法设计与分析课程中,提出的小组研讨,以研促教等方法,不断提高教学质量。从对学生的调研来看,这些教学方法的改革得到学生的认可,学习的积极性和能动性得到激发,很多同学开始萌发研究型思维,课余思考和解决一些算法问题,提高自身的算法理论和编程能力。同时,我们每年发现和培养了一批具有较好研究能力的学生,大部分已经成为科研骨干,在研究生阶段作出不错的科研成果,发表高水平学术论文。
参考文献:
[1]王楠,浅析《计算机算法设计与分析》专业课教学方法吉林广播电视大学学报,2006(2):53~55
[2]徐子珊,“算法设计与分析”课程教学和创新能力培养合肥工业大学学报(社会科学版),2008(6):64~66
[3]高尚“算法设计与分析”课程改革初探计算机教育,2008(14):37~38
[4]戴光明,王茂才,彭雷,《算法设计与分析》课程教学的几点体会,计算机科学,2008(35):102~104