《“数据结构”综合性课程设计教学探索与实》由会员分享,可在线阅读,更多相关《“数据结构”综合性课程设计教学探索与实(23页珍藏版)》请在金锄头文库上搜索。
1、“数据结构”综合性课程设计教学探索与实践 摘要:本文针对“数据结构”课程的传统教学方法存在的问题,就综合性课程设计的内容选择、实施方法与激励手段等方面进行了一系列的改革探索。关键词本文来自:计算机毕业网 :数据结构;课程设计;启发式教学1引言“数据结构”作为实践性很强的计算机专业的基础课,教学中必然离不开实践。针对数据结构的课程设计实践不仅可以帮助学生巩固和加深对课程内容的理解,更重要的是可以进一步锻炼程序设计的技能,并初步感受软件开发的规范,更能全面培养学生综合运用知识的能力、文献检索与分析能力、工程化能力、进行研究性学习的能力、创新能力以及团队合作的能力等。本文是作者所在教学团队八年来的课
2、程设计实践小结,介绍了在“数据结构”综合性课程设计的内容选择、实施方法与激励手段等方面进行的一系列改革探索。2传统教学方法存在的问题及解决思路数据结构的课程实践可分为一般性实验和综合性课程设计。在传统的课程教学中,往往采用一般性实验作为课程实践的主要内容,即布置针对本次课堂教学内容的小型练习题,让学生独立完成程序设计与实现。这样的实践主要存在两方面问题:第一,练习题所需要用到的知识点就是课堂教学刚讲授过的内容,学生只要直接拿来用就可以,不需要自己去考虑各种可能的解决方案并找到最合适的方法。这种实践是验证性的,比较简单直接,学生受到的锻炼相对较少。第二,学生独立完成小型程序,虽然可以在一定程度上
3、锻炼编程能力,但这个锻炼的层次和涉及面都比较窄。现代软件开发的规模,使得团队合作在大多数情况下成为必须。而且部分数据结构只有在处理大规模输入的复杂问题时才能体现出优势,编写小型程序很难使学生真正认识到该数据结构存在的意义。针对上述问题,我们在设计较大规模的综合性课程设计时就必须注意两个方面:第一,课程设计题目覆盖的知识点应尽可能避免单一,要采用启发式的设计思路,引导学生围绕课程设计目标,通过查找与分析有关参考资料,进行探究式的学习,激发创造的意识和能力。所以,在题目设计和实施中,不应该只是“手把手”地教,要给学生留出发挥想象力和创造力的空间。第二,题目的规模应充分大,并且努力使学生对规范性的软
4、件开发有初步体验,在一定程度上使得学生的工程化能力和团队合作能力得到锻炼。而上述两方面的考虑若要取得真正好的效果,还必须有一套行之有效的激励机制,既可以公平地判定每个学生作为个体的能力,又可以鼓励团队精神,同时还可以鼓励学生开拓创新思维,主动进行研究性学习。3课程设计的内容选择、实施方法与激励手段3.1内容选择综合性课程设计应强调知识的综合运用,锻炼学生对复杂问题进行分析与求解的能力,所以在选择内容时可以从以下三方面考虑:第一,题目应避免涉及单一知识点。例如“迷宫问题”,即输入一个迷宫的布局,要求找到一条走出迷宫的路径并用图形界面显示。学生可以选择用不同的数据结构表示迷宫以及移动方向,可以选择
5、用深度优先或者宽度优先搜索的算法来得到路径,同时还锻炼了对图形界面的编程技巧的掌握。又例如“宇宙旅行”,即给定两星球间各个中转空间站的临时客流容量,求终点星球接待站的总客流容量。此题目的解法主要涉及网络流算法;在每一步修正流量时,可以选择剩余图中从起点到终点的最短路径,则又涉及到单源最短路径算法;最后为了提高查找空间站名称的效率,可以采用散列表进行名称映射。第二,为锻炼学生进行研究性学习的能力,可设计算法效率分析比较类型的题目。例如比较普通的二叉搜索树、平衡搜索树和伸展树的插入与删除操作效率,要求通过实验取得三者的实际运行时间,绘出三者复杂度函数的曲线,分析比较它们的效率并给出证明等等。第三,
6、采用启发式教学思路,设计有多种解法的题目,可以给学生留出发挥想享力和创造力的空间,锻炼学生灵活运用知识分析问题和解决问题的能力。例如“熊猫烧香”,即以著名病毒“熊猫烧香”的传播规律为背景,要求计算整个网络被各种病毒变种感染的情况。题目可以简单地用广度优先搜索解决,但是效率比较低。巧妙一点的方法可以将求单源最短路径的Dijkstra算法略做修改,得到效率明显提高的解决方案。更快的算法则是利用并查集。教师可以通过设计不同层次的测试数据来区分不同效率的算法,鼓励学生自己去尝试各种方案,找出最有效的解决办法。在内容选择方面,我们还建议参考历届ACM国际大学生程序设计竞赛的题目,该竞赛特别强调考察参赛选
7、手对各种算法的应用能力,题目的综合性较强,非常适合辅助学生学习体会数据结构的妙用。浙江大学建设有全球著名的程序设计竞赛练习网站(http:/ 参考文献1 教育部高等学校计算机科学与技术教学指导委员会. 高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)M. 北京:高等教育出版社,2006.2 何钦铭,冯雁,陈越. 数据结构课程设计M. 杭州:浙江大学出版社,2007.3 林正范. 大学心理学M. 杭州:浙江大学出版社,2000. 摘要:“计算机图形学”是计算机专业的一门非常重要的基础课程,但在教学中存在很多问题,本文总结了两种结合方式的教学方法,分析和探讨了其在教学中的应用。关键词
8、:计算机图形学;教学方法;教学与实验 1引言“计算机图形学”在计算机科学与技术专业的一门基础课,其课程涉及图形硬件设备、图形系统、交互技术、基本图形生成算法、几何变换、真实感图形生成等内容。在笔者的教学实践当中发现教学过程中普遍存在以下两个问题。1.1理论知识掌握方面由于“计算机图形学”具有较强理论性,部分算法比较抽象不易理解。所以学生在学习的时候很难将抽象算法与具体的三维图像结合起来,经常表现出畏难情绪。1.2实践能力培养方面由于“计算机图形学”课程的教学主要精力放在了图形的基本概念和算法原理的讲解上,上机实践环节滞后;另外,现在大部分的教材中仍然是以Turbo C作为上机实习的平台,但是由
9、于Turbo C再实际应用中早已不作为开发工具使用,学生并不能够在实验中获得未来就业环境下真是需要掌握的编程知识,需要二次学习才能适应社会的需求。针对以上问题,给出以下解决方案。2理论讲解与具体开发工具的使用相结合图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。如何在计算机中表示图形以及利用计算机进行图形的计算、处理和显示的相关原理与算法,构成了计算机图形学的主要研究内容。目前,大部分计算机图形学教材都是以计算机图形学的基本概念、基本理论、基本原理及经典算法作为主要内容,以丰富学生的基础知识,培养学生的独立研究能力。然而,在微型计算机日益普及的今天,随着计算机科学及技术的发展,出现了很多功能完善的图形软件标准和图形软件,如何利用他们培养学生的学习兴趣,提高实际应用的能力,则是当今教学的重点。为了能够更加广泛地接触和学习图形软件,笔者在以Turbo C语言作为开发工具来介绍基本图元的经典画法的同时,将OpenGL引入到计算机图形学的学习中。OpenGL是近10年来发展起