论文部分内容阅读
【摘 要】数据结构是计算机科学与技术专业的一门核心课程,本文分析了数据结构学习中存在的问题及数据结构的知识体系,提出了数据结构课程建设要着重解决的几个关键问题及具体的实施办法。
【关键词】数据结构 重点课程 知识体系 模式
【中图分类号】G642 【文献标识码】A 【文章编号】1006-9682(2012)02-0013-02
【Abstract】The Data Structure is the core course of computer science and technology, this article analyze the problem when study Data Structure and the knowledge system of Data Structure, put forward some key problem and the measure that the Course Construct for Data structure need to solve.
【Key words】Data Structure Key Course Knowledge system Mode
一、引 言
在人才培养中,课程建设是关键。教什么,如何教是教学过程中首先要解决的问题。在计算机科学与技术专业培养计划中有若干核心课程,“数据结构”是最重要的专业基础和核心课程之一。学习、理解和掌握好这门课程,对于学生个人编程能力的锻炼和编程风格的培养起着至关重要的作用。然而本课程具有一定的复杂性和抽象性,面对扩招后的学生,教学难度比较大。特别对培养应用型专业人才的地方院校来说,如何让学生更好理解“数据结构”的内涵及其相应的知识点,为相应的编程技能服务,是对“数据结构”课程进行重点建设的主要任务。
二、数据结构的知识体系[1、2]
把现实世界的问题用计算机来进行解决时,首先要解决现实世界如何用数据来描述。“数据结构”指的是数据之间的关系,包括数据之间的逻辑关系、数据在计算机中的存储方式及其相应的运算。因此“数据结构”的知识体系也围绕这三个方面而展開。如图1所示,分别是数据的逻辑结构、存储结构、基本运算、相应的算法以及算法复杂性分析。“数据结构”中具体的知识体系结构按三个基本知识点(数据的逻辑结构、数据的存储结构和运算实现)来组织知识,数据结构三点一线知识结构见图1,由此而构建的知识体系见图2。
在整个数据结构的知识体系中,在介绍线性表、串、数组和广义表(线性结构)、树和二叉树(树形结构)和图(图结构)知识点的基础上,以数据组织的两种存储结构顺序结构(连续存储结构)和链式结构(离散存储结构)为贯穿整个课程的两条主线,注重培养学生掌握各个知识点之间的联系,形成数据结构的理论教学;在数据结构的实验教学方面,同样采用顺序和链式两种存储结构为主线,实现线性表、树、图等各个知识点数据的组织和算法的设计来实现;最后将理论和实验两者结合起来进行数据结构课程的课程设计实践,进一步提高学生解决实际问题的能力。
三、数据结构重点课程建设
数据结构课程的建设应围绕学生学习中遇到的问题和数据结构所要传授的知识点和解决的问题进行展开,着重解决以下几个方面的问题:
1.分层次展开教学
分层次展开教学,包括教学内容的分层次,作业题目的分层次,实践环节的分层次。针对学生的兴趣、理解能力和接受能力不同,将来的工作岗位也不同,在教学内容上可以分层次对待。每一章节的内容都可以分成基础部分和提高部分,让不同程度的学生自主选择。其中基础部分是教学大纲上必须完成的重要内容,而提高部分可以供基础较好的学生选学。学习方式除了课堂教学之外,还可以尝试课后答疑、网络课件共享、网上论坛、自学等多种方式,充分调动学生学习的自觉性。在作业题目的分层次上,充分利用网络,在布置作业的过程中,可以根据学生的实际情况,布置一定量的基础习题,同时布置一定量的难度较高的习题。对于基础习题,可以要求每一位学生都要完成,而对于难度较高的习题可以供学习基础较好的学生选做。实践环节分层次,数据结构课程上机实践需要用程序设计语言来编写程序,对学生的编程能力有很高的要求。由于学生的编程能力不同,可以布置不同难度的课题供学生选做。比如对于“栈和队列”一章的上机实验,一般学生只要求做“数制转换程序”、“括号匹配程序”等比较基础的练习,让他们通过这些练习充分了解堆栈的特点和基本应用;而对于学习基础较好的学生可以选做“迷宫问题”、“算术表达式求解问题”、“八皇后问题”等难度较高的题目,充分训练他们的编程能力。
2.课程之间的协同教学[5]
数据结构的前导课程是高等数据和程序设计语言,其后导课程包括数据库原理、软件工程及系统开发等。在教学过程中,必须融合相关的知识点,因此要求教学过程实现协同教学,包括师师协同、师生协同、生生协同几个关键环节的协同。在师师协同教学的实践过程中,组成软件开发设计教师群,采用即时聊天工具和论坛等,交流教学习心得和对知识的连续性进行融合和沟通。采用“责任教授+主讲教师+实验辅导教师”的教师团队,采用“讲授+分析+案例+演示+大型作业+实验+查阅资料及撰写综述报告+小课题”的教学模式,改善这类综合性课程“难教”、“难学”的状况。
3.完整的实验体系教学
全面的实验内容、实验过程全程指导、严格的考核体系是本课程实践环节的亮点。整个实验课程体系由精心设计的基础性实验和鼓励学生创新的综合设计实验两部分组成。[3~4]基础性实验主要是一些预先设计好的实验,通过学生的实际操作,加深对课程所讲授的基本原理、技术和方法等知识点的理解,同时,能够让学生掌握一些具体的开发工具及环境。基础性实验是一组实验集,包括了必做的和根据个人的兴趣选做的。诸如线性表、栈和队列、串、数组和广义表、树和二叉树及图等。综合实验是启发式的引导性实验,主要目的在于培养学生对课程所学知识的综合运用能力和创新能力。由学生结合本课程内容以及前导实验,充分发挥主观能动性,独立设计并实现具有一定演示度的应用系统,原则上不限制硬件和软件平台。考虑到学生水平差异,给出了一些备选方向,鼓励和引导学生积极提出原创性的设计内容。对于基础性实验,要求每个学生独立完成,实验前要求提交实验预习报告,实验过程中给出实现结果,实验后要求提交实验报告。对于综合设计实验,以兴趣小组方式组织,每个小组3~4人,要求每个小组都要提交项目申请书,经过答辩、确认技术路线可行后,进入实现实验阶段,实验完成后,提供关于实验的课程设计和实验报告。在整个实验过程中由课程教师和助教一起完成实验指导。
4.建设的具体实施办法
(1)完善课程网站。实现所有教案和课件全部电子化,具有较好的多媒体效果,并放在网站上。实现教学手段的电子化与网络化,包括网上作业的发布与提交、网上小测验、网上辅导与答疑等。
(2)建设开放性实验室。在数据结构的教学实践中,加强了学生参加ACM比赛项目的教学和培训,提高了学生分析算法的能力,从这几年的教学实践来看,学生对以应用项目开发相结合的这种教学与实践相结合的模式非常感兴趣,尤其在综合实验中表现出很高的热情和积极性,所投入的精力和时间已远远超出课程的要求,教学效果非常显著。这促成了我们建设开放实验室的想法,即该课程的实验教学做到实验时间、实验内容和实验器材对学生的真正开放,使学生能够理论与实践相结合、验证型实验与设计型实验相结合、课内与课外相结合。当然在开放实验室下的课程辅导、监管、考核方式都需要新的探索。开放实验室将通过学校的教改项目支持来完成。
(3)逐步构建第二课堂——电子教室。数据结构学习的目的是为该项目开发服务,除了基本的数据结构描述,更重要的是数据处理的算法分析,由于课时等条件限制,课堂上不可能覆盖很多内容,为了保证课程的广度和深度,往往需要学生课外学习和掌握一定的知识。因此,我们计划逐步建立第二课堂——电子教室,该教室包括多个专题(如图像处理,ACM,智能机器),学生根据自己的时间和兴趣选择,并在网上交互学习。电子教室的建设将依托学院教改项目。
四、小 结
在数据结构课程建设中应该遵循:系统论、团队论、发展创新论和实践论原则。我们认为“数据结构”课程的建设不是孤立的事件,应将其放在系统中进行建设。还应将其与计算机专业建设相结合;课程建设应是课程组全体教师共同的事情,优秀课程或精品课程必须要提倡团队精神,建设一个优秀的团体。课程建设中所形成的基本资料:课程大纲、教学日历、实验大纲、教材和实验资料,不能一劳永逸、一成不变,课程建设应该在发展和创新方面下工夫,使课程内容跟上计算机科学技术发展的步伐,使教学手段、方法不断更新,使课程建设充满活力。数据结构是一门实践强的课程,注重实践应从两个角度来考虑,一方面要注重“数据结构”课程的实践教学环节,我们在实践教学的改革和实验方面作了大量实质性工作,如实验指导书的编写和不断改写、实验平台和程序设计语言的更新以及“数据结构实验教学系统”的开发等。另一方面课程建设也是一个艰苦细致的过程,仅有好的设想和主意是不够的,还需要教师去实践,如编写教案、教材、教辅资料,建设和维护网站,撰写论文等。还要在实践之后认真分析总结。
参考文献
1 严蔚敏、吴伟民.数据结构[M].北京:清华大学出版社,2005.4
2 张济础.数据结构课程的体系结构和学习方法[J].上海第二工业大学学报,2005(22):37~42
3 白伟华.数据结构课程教学方法的实践与探索[J].电脑知识与技术,2005(17):5~7
4 邵珍.数据结构课程教学的几点思考[J].安徽广播电视大学学报,2005(1):93~94
5 江效尧、江克勤.“协作式”学习理论在“数据结构”实验教学中的实践[J].安庆师范学院学报(自然科学版),2006(12):25~27
【关键词】数据结构 重点课程 知识体系 模式
【中图分类号】G642 【文献标识码】A 【文章编号】1006-9682(2012)02-0013-02
【Abstract】The Data Structure is the core course of computer science and technology, this article analyze the problem when study Data Structure and the knowledge system of Data Structure, put forward some key problem and the measure that the Course Construct for Data structure need to solve.
【Key words】Data Structure Key Course Knowledge system Mode
一、引 言
在人才培养中,课程建设是关键。教什么,如何教是教学过程中首先要解决的问题。在计算机科学与技术专业培养计划中有若干核心课程,“数据结构”是最重要的专业基础和核心课程之一。学习、理解和掌握好这门课程,对于学生个人编程能力的锻炼和编程风格的培养起着至关重要的作用。然而本课程具有一定的复杂性和抽象性,面对扩招后的学生,教学难度比较大。特别对培养应用型专业人才的地方院校来说,如何让学生更好理解“数据结构”的内涵及其相应的知识点,为相应的编程技能服务,是对“数据结构”课程进行重点建设的主要任务。
二、数据结构的知识体系[1、2]
把现实世界的问题用计算机来进行解决时,首先要解决现实世界如何用数据来描述。“数据结构”指的是数据之间的关系,包括数据之间的逻辑关系、数据在计算机中的存储方式及其相应的运算。因此“数据结构”的知识体系也围绕这三个方面而展開。如图1所示,分别是数据的逻辑结构、存储结构、基本运算、相应的算法以及算法复杂性分析。“数据结构”中具体的知识体系结构按三个基本知识点(数据的逻辑结构、数据的存储结构和运算实现)来组织知识,数据结构三点一线知识结构见图1,由此而构建的知识体系见图2。
在整个数据结构的知识体系中,在介绍线性表、串、数组和广义表(线性结构)、树和二叉树(树形结构)和图(图结构)知识点的基础上,以数据组织的两种存储结构顺序结构(连续存储结构)和链式结构(离散存储结构)为贯穿整个课程的两条主线,注重培养学生掌握各个知识点之间的联系,形成数据结构的理论教学;在数据结构的实验教学方面,同样采用顺序和链式两种存储结构为主线,实现线性表、树、图等各个知识点数据的组织和算法的设计来实现;最后将理论和实验两者结合起来进行数据结构课程的课程设计实践,进一步提高学生解决实际问题的能力。
三、数据结构重点课程建设
数据结构课程的建设应围绕学生学习中遇到的问题和数据结构所要传授的知识点和解决的问题进行展开,着重解决以下几个方面的问题:
1.分层次展开教学
分层次展开教学,包括教学内容的分层次,作业题目的分层次,实践环节的分层次。针对学生的兴趣、理解能力和接受能力不同,将来的工作岗位也不同,在教学内容上可以分层次对待。每一章节的内容都可以分成基础部分和提高部分,让不同程度的学生自主选择。其中基础部分是教学大纲上必须完成的重要内容,而提高部分可以供基础较好的学生选学。学习方式除了课堂教学之外,还可以尝试课后答疑、网络课件共享、网上论坛、自学等多种方式,充分调动学生学习的自觉性。在作业题目的分层次上,充分利用网络,在布置作业的过程中,可以根据学生的实际情况,布置一定量的基础习题,同时布置一定量的难度较高的习题。对于基础习题,可以要求每一位学生都要完成,而对于难度较高的习题可以供学习基础较好的学生选做。实践环节分层次,数据结构课程上机实践需要用程序设计语言来编写程序,对学生的编程能力有很高的要求。由于学生的编程能力不同,可以布置不同难度的课题供学生选做。比如对于“栈和队列”一章的上机实验,一般学生只要求做“数制转换程序”、“括号匹配程序”等比较基础的练习,让他们通过这些练习充分了解堆栈的特点和基本应用;而对于学习基础较好的学生可以选做“迷宫问题”、“算术表达式求解问题”、“八皇后问题”等难度较高的题目,充分训练他们的编程能力。
2.课程之间的协同教学[5]
数据结构的前导课程是高等数据和程序设计语言,其后导课程包括数据库原理、软件工程及系统开发等。在教学过程中,必须融合相关的知识点,因此要求教学过程实现协同教学,包括师师协同、师生协同、生生协同几个关键环节的协同。在师师协同教学的实践过程中,组成软件开发设计教师群,采用即时聊天工具和论坛等,交流教学习心得和对知识的连续性进行融合和沟通。采用“责任教授+主讲教师+实验辅导教师”的教师团队,采用“讲授+分析+案例+演示+大型作业+实验+查阅资料及撰写综述报告+小课题”的教学模式,改善这类综合性课程“难教”、“难学”的状况。
3.完整的实验体系教学
全面的实验内容、实验过程全程指导、严格的考核体系是本课程实践环节的亮点。整个实验课程体系由精心设计的基础性实验和鼓励学生创新的综合设计实验两部分组成。[3~4]基础性实验主要是一些预先设计好的实验,通过学生的实际操作,加深对课程所讲授的基本原理、技术和方法等知识点的理解,同时,能够让学生掌握一些具体的开发工具及环境。基础性实验是一组实验集,包括了必做的和根据个人的兴趣选做的。诸如线性表、栈和队列、串、数组和广义表、树和二叉树及图等。综合实验是启发式的引导性实验,主要目的在于培养学生对课程所学知识的综合运用能力和创新能力。由学生结合本课程内容以及前导实验,充分发挥主观能动性,独立设计并实现具有一定演示度的应用系统,原则上不限制硬件和软件平台。考虑到学生水平差异,给出了一些备选方向,鼓励和引导学生积极提出原创性的设计内容。对于基础性实验,要求每个学生独立完成,实验前要求提交实验预习报告,实验过程中给出实现结果,实验后要求提交实验报告。对于综合设计实验,以兴趣小组方式组织,每个小组3~4人,要求每个小组都要提交项目申请书,经过答辩、确认技术路线可行后,进入实现实验阶段,实验完成后,提供关于实验的课程设计和实验报告。在整个实验过程中由课程教师和助教一起完成实验指导。
4.建设的具体实施办法
(1)完善课程网站。实现所有教案和课件全部电子化,具有较好的多媒体效果,并放在网站上。实现教学手段的电子化与网络化,包括网上作业的发布与提交、网上小测验、网上辅导与答疑等。
(2)建设开放性实验室。在数据结构的教学实践中,加强了学生参加ACM比赛项目的教学和培训,提高了学生分析算法的能力,从这几年的教学实践来看,学生对以应用项目开发相结合的这种教学与实践相结合的模式非常感兴趣,尤其在综合实验中表现出很高的热情和积极性,所投入的精力和时间已远远超出课程的要求,教学效果非常显著。这促成了我们建设开放实验室的想法,即该课程的实验教学做到实验时间、实验内容和实验器材对学生的真正开放,使学生能够理论与实践相结合、验证型实验与设计型实验相结合、课内与课外相结合。当然在开放实验室下的课程辅导、监管、考核方式都需要新的探索。开放实验室将通过学校的教改项目支持来完成。
(3)逐步构建第二课堂——电子教室。数据结构学习的目的是为该项目开发服务,除了基本的数据结构描述,更重要的是数据处理的算法分析,由于课时等条件限制,课堂上不可能覆盖很多内容,为了保证课程的广度和深度,往往需要学生课外学习和掌握一定的知识。因此,我们计划逐步建立第二课堂——电子教室,该教室包括多个专题(如图像处理,ACM,智能机器),学生根据自己的时间和兴趣选择,并在网上交互学习。电子教室的建设将依托学院教改项目。
四、小 结
在数据结构课程建设中应该遵循:系统论、团队论、发展创新论和实践论原则。我们认为“数据结构”课程的建设不是孤立的事件,应将其放在系统中进行建设。还应将其与计算机专业建设相结合;课程建设应是课程组全体教师共同的事情,优秀课程或精品课程必须要提倡团队精神,建设一个优秀的团体。课程建设中所形成的基本资料:课程大纲、教学日历、实验大纲、教材和实验资料,不能一劳永逸、一成不变,课程建设应该在发展和创新方面下工夫,使课程内容跟上计算机科学技术发展的步伐,使教学手段、方法不断更新,使课程建设充满活力。数据结构是一门实践强的课程,注重实践应从两个角度来考虑,一方面要注重“数据结构”课程的实践教学环节,我们在实践教学的改革和实验方面作了大量实质性工作,如实验指导书的编写和不断改写、实验平台和程序设计语言的更新以及“数据结构实验教学系统”的开发等。另一方面课程建设也是一个艰苦细致的过程,仅有好的设想和主意是不够的,还需要教师去实践,如编写教案、教材、教辅资料,建设和维护网站,撰写论文等。还要在实践之后认真分析总结。
参考文献
1 严蔚敏、吴伟民.数据结构[M].北京:清华大学出版社,2005.4
2 张济础.数据结构课程的体系结构和学习方法[J].上海第二工业大学学报,2005(22):37~42
3 白伟华.数据结构课程教学方法的实践与探索[J].电脑知识与技术,2005(17):5~7
4 邵珍.数据结构课程教学的几点思考[J].安徽广播电视大学学报,2005(1):93~94
5 江效尧、江克勤.“协作式”学习理论在“数据结构”实验教学中的实践[J].安庆师范学院学报(自然科学版),2006(12):25~27