APP下载

“数据结构”课程设计教学过程的研究与实践

2009-06-20李英梅夏伟宁

计算机教育 2009年10期
关键词:数据结构教学过程课程设计

李英梅 夏伟宁 邢 恺

文章编号:1672-5913(2009)10-0068-02

摘要:本文通过分析“数据结构”课程的特点、课程设计的重要性及目标,重点对“数据结构”课程设计的教学过程进行了探讨和实践研究。

关键词:数据结构;课程设计;教学过程

中图分类号:G642

文献标识码:B

1引言

“数据结构”是计算机科学与技术专业的必修、主干课之一。它旨在使学生学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据逻辑结构和存储结构,以及相应的运算,把现实世界中的问题转化为计算机内部的表示和处理,这是一个良好的程序设计技能训练的过程。该课程在计算机科学专业的课程体系中处于承上启下的中心位置,尤其对后续的软件类课程的学习起着举足轻重的作用。

课程设计作为一门独立的课程,是课堂理论教学的延伸和补充。基本目标是应能够使理论与实践相结合,巩固、加深和融合所学的专业课程知识,更重要的是能培养学生的独立思考能力、分析和解问题的能力、开拓创新能力、文献检索能力、合作能力。

由笔者多年的教学实践,认为“数据结构”这门课程的教学不是一蹴而就的,要循序渐进。在第一轮的理论教学和实验教学之后,学生对很多问题不能融会贯通。尤其在遇到具体问题时,不知该如何运用所学知识,提出解决方案。所以在第二阶段加入“数据结构”课程设计这门课程,不仅可以帮助学生充分理解、巩固所学的基本概念、原理和方法,更重要的是能够针对实际问题来选择数据结构,设计相应的存储结构并加以实现,从而最终解决问题。在此过程中,激发学生不断创新,要敢想、敢做,鼓励学生有自己的想法,也可以对现有算法加以改进。可以看出,这一过程不是通过一学期的理论课程和实验课程就能完成的,所以在这之后进行课程设计是十分必要的。

根据上述分析,笔者认为“数据结构”课程设计的基本目标是:培养学生对数据结构知识的全面综合训练,把书上学到的知识用于解決实际问题,培养今后软件开发工作所需的动手实践能力,包括问题分析、结构设计、用户界面的设计、程序设计时的基本技能和技巧,以及一整套软件工作规范的训练和团体协作精神的培养。本文主要对“数据结构”课程设计的教学过程进行探讨和研究。

2 “数据结构”课程设计教学过程的研究

教学过程中包含了许多要素:教师、学生、教材、设备、媒体;教学目标、教学内容、教学方法、教学手段、教学测量、教学评价等等。如何使这些要素能够做到有机配合、有序运行,促使教学效果最优化,只能运用系统论的观点和方法,对教学过程进行科学的设计,也就是我们所说的教学过程设计。“数据结构”课程设计的完整教学过程应包括教师、学生两个方面。教师方面包括:教学内容的选取、教材建设、教学方式、考评方法;学生方面包括:问题分析、逻辑设计和数据结构的选择、详细设计和编码、上机调试、实习报告。笔者就以上所谈教学过程当中的主要几点,谈谈自己的一些体会。

2.1课程内容的选取

“数据结构”课程设计的内容选取主要为课程设计题目的选取和对学生的教学要求。

2.1.1选题

(1) 选题要新颖、实用,能够充分调动学生的积极性。选题是实现课程设计教学目标的关键。既能反映大纲要求,反映本学科的新技术发展,又能使学生运用已学的理论知识解决实际问题。

(2) 选题要难度适中,绝大多数问题只要学生耐心阅读钻研就可以读懂会做,具有可行性。

(3) 选题所覆盖的知识点要广,要给学生留出发挥想象力和创造力的空间。

(4) 题目的规模应充分大,并且努力使学生对规范性的软件开发有初步体验,在一定程度上使得学生的工程化能力和团队合作能力得到锻炼。

2.1.2对学生的教学要求

(1) 问题分析和任务定义:对问题的描述应避开具体的算法和涉及的数据结构,它是对要完成的任务作出明确的说明。强调的是做什么,而不是怎么做。

(2) 逻辑设计和数据结构的选择:为操作对象定义相应的数据结构,以过程化程序设计的思想方法为原则划分各个模块,定义数据的抽象数据类型。

(3) 详细设计和编码:算法的具体描述和代码的书写。

(4) 上机调试:源程序的输入和代码的调试

(5) 实习报告应包括以下部分:

① 需求分析

以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?明确规定:输入的形式和输出、值的范围、输出的形式、程序所能达到的功能、测试的数据包括正确的输入和错误的输入及其相应的输出结果。

② 概要设计

说明程序中用到的所有抽象数据类型的定义,主程序的流程以及各程序模块之间的层次(调用)关系。

③ 详细设计

实现概要设计中定义所有数据类型,对每个操作只需要写出伪代码算法(伪代码算法达到的详细程度建议为:按照伪代码算法可以在计算机键盘直接输入高级程序设计语言程序),画出函数的调用关系图。

④ 调试分析

内容包括调试过程中遇到的问题并且是如何解决的,以及对设计实现的回顾讨论和分析算法复杂度(包括基本操作和主要算法的时空复杂度的分析)和改进设想经验和体会等。

⑤ 用户使用说明

说明用户如何使用你编写的程序,详细列出每一步的操作步骤。

⑥ 测试结果

列出测试结果,包括输入的数据和相应的输出数据。这里的测试数据应该完整和严格,最好多于需求分析中所列。

⑦ 附录

应附上带详细注释的源程序。

特别强调一下,目前实习报告这部分我们尝试用学年论文(设计)的形式来要求学生。这样不仅涵盖了实习报告的全部内容,而且学生可以掌握撰写学术论文的规范和方法,为今后的毕业论文以及科研论文的撰写打下基础。要求论文要有摘要、参考文献、总结和心得体会等。实践证明很有成效。

2.2教学方式的研究

教学方式的研究主要包括教学模式和教学手段的研究。

(1) 教学模式的研究。基于问题驱动的课程设计教学模式,值得我们借鉴。该模式是针对“数据结构”课程设计的一般性和特殊性的分析,提出了适合于“数据结构”课程设计的“以问题求解为核心”的教学模式。鼓励学生选择需要设计新型数据结构的题目,而不仅仅是实现一个定义明确的数据结构;鼓励优化方案的提出、分析和验证;鼓励学生扩展知识体系,并建立问题求解的修养;鼓励创新意识和主动学习意识的培养。

(2) 教学手段采用启发式教学思路,设计有多种解法的题目,可以给学生留出发挥想象力和创造力的空间,锻炼学生灵活运用知识分析问题和解决问题的能力。

强调学生在课程设计中的主体地位,注重创新能力的培养。创新能力是培养学生的根本目的,创新源于实践。在课程设计的过程中,彻底改变过去由教师指定内容,由学生按一定要求、一定形式进行设计的模式。教师仅提出基本设计条件和设计成果要求,具体设计方案由学生自由选择发挥他们的主动性,提高他们的实践能力。

培养学生合作能力和群体意识,我们根据课程设计的实际情况,把整个课程设计的内容进行了系统安排。每道课程设计题目,根据其复杂程度,由2-3名同学组成一个设计小组共同完成。小组人员自行对系统模块进行划分和任务安排,每人都有独立需要完成的任务。教师在整个设计过程中,对每人进行阶段检查。在设计过程中,小组成员通力合作,共同克服困难完成最后的整合工作,培养了学生的团队精神。

2.3考评方法

教师在在评价学生的设计时主要原则如下:

(1) 要严格控制90分以上的高分人数,鼓励学生创新,而不仅仅是实现一个定义明确的数据结构;鼓励优化方案的提出、分析和验证;鼓励学生扩展知识体系,只有这样才能得高分。

(2) 若最后的成果(学年论文设计)撰写规范,内容完整,应予以加分。

(3) 若算法及实现正确,并且有一定的个人见解,成绩应为良好。

(4) 若在设计的算法和实现中有少量错误,成绩应为中等。

(5) 若设计错误不算太多,大部分算法及实现程序都能通过,应给予及格。

(6) 若没有完成设计给定的要求,则应给予不及格处理。

3结束语

“数据结构”课程设计可以使学生巩固数据结构的理论、方法和应用,激发学生学习和研究的兴趣,提高学生的创新意识和钻研能力,可以让学生在较短的时间内体验软件开发的全过程,培养了学生的团队精神和开拓创新意识。但“数据结构”课程设计教学研究还处在初级阶段,经验不足,在今后的教学实践中还要不断的探索研究。

参考文献:

[1] 严蔚敏,吴伟民. 数据结构(C语言版)[M]. 北京:清华大学出版社,2006.

[2] 苏仕华.数据结构课程设计[M]. 北京:机械工业出版社,2005.

[3] 李治军,廖明宏,张岩.数据结构与算法课程设计教学模式的探讨[J]. 计算机教育,2006(2).

[4] 华蓓,赵明. 对“数据结构”课程设计教学的一些体会[J]. 广西大学学报:自然科学版,2006,32(21).

[5] 钟育彬. 数据结构课程设计的认识与实践[J]. 中山大学学报论丛,2007,27(7).

[6] 陈 越,何钦铭,冯雁.“数据结构”综合性课程设计教学探索与实践[J]. 计算机教育,2008(8).

[7] 孙水明.《数据结构课程设计》刍议[J]. 科技资讯,2006(11).

猜你喜欢

数据结构教学过程课程设计
“苏州园林:景致与情思”课程设计
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
A Study on the Application of Task—based Approach to English Vocabulary Teaching
欣赏教育在中学化学教学中的实施
关于完善课程设计教学及教学管理工作的思考
数据结构与算法课程设计教学模式的探讨
高效学习数据结构