《数据结构与算法》实验要求与指导
(一)远程教育辅导教师基本条件(要求)
1. 熟练掌握C语言及其调试开发环境;
2. 具有用C语言编写调试中等规模以上(数百行源码)程序的经验;
3. 掌握《数据结构与算法》课程有关的知识, 具有较好的算法设计和分析的能力;
4. 有一定的教学经验。
(二)算法实验要求综述
根据目前远程教育计算机专业的学生的实际情况和他们的 C语言基础,严格按照本科教学要求进行算法实验上机并完成相应的实验报告, 对多数学生是有一定困难的. 为适应不同基础的学生循序渐进地学习,我们把实验要求分成四个层次, 希望学生不断往更高层次要求自己, 最终能达到本课程的实验基本要求.
这四个层次的要求是:
一. 以熟练使用c语言的开发环境()为主,进行简单问题的程序设计和调试分析
二. 编写主程序调用调试教材中描述并在课堂中详细讲解过的算法
三. 完成习题中的算法设计题并书写实验报告
四. 独立完成一个小的应用系统并规范书写实验报告,以进一步提高算法描述和算法分析的能力
以上一至三层次作为本课程的基本实验要求,第四层次作为有能力的学生的提高要求。实验辅导教师也可以根据当地学生的具体情况, 本着能提高学生两个能力(C语言的编程和调试能力, 算法设计和分析能力)的目的, 循序渐进地引导学生掌握算法和程序的上机实验, 并参考《题集》的实验报告范例书写实验报告。
按教学计划,本课程实验课时为15学时,安排6-7次实验。由于课时数有限,要求学生在实验前作好充分准备,否则很难在两个学时内完成相关的上机与调试。上机前的准备工作主要有两项:一是仔细阅读理解书中的相关算法,需要写解题算法的还要在纸上写好算法;二是准备好要调试算法的数据,并写好调用算法的主程序。
实验1至实验6都分为A、B两个实验。A实验对应第二层次的能力培养训练,B实验对应第三层次的能力培养训练。
下面就每一层次的要求作如下说明。
一. 以熟练使用c语言的开发环境()为主,进行一般问题的程序设计和调试分析
该能力实际上是预修课C语言的要求,由于有相当部分学生C语言掌握不是很好, 影响了数据结构算法的描述和理解. 所以开始应该注意弥补C语言的能力. 根据经验, C语言中函数定义与调用(形参和实参的对应等), 指针, 类型定义与使用、结构的定义和使用、动态内存的申请等难点却是数据结构算法描述的重点, C语言的这些障碍严重影响了学生对数据结构与算法的理解,也影响了学习数据结构的兴趣. 所以实验指导教师在鼓励学生主动补习C语言知识的同时, 有意识安排一些符合学生基础的程序设计练习作为本课程实验的前导补充. 与本课程的相公的算法题目可以推后几周上机.
本实验教学计划的预备实验(即实验0)是为完成该任务而设计的。如果学生的困难比较大,尽量在教学计划时间以外鼓励学生多做上机,打好基础。
二. 编写主程序调用调试教材中描述并在课堂中详细讲解过的算法
为加深对课堂讲解的算法的理解,选择部分(尤其是基础部分,如线性表,堆栈与队列等的顺序和链式存储的最常用的基本操作)算法进行上机调试,如第二章的InitList_Sq、ListInsert_Sq和ListDelete_Sq一组算法和第三章的InitStack、GotTop、Push和Pop一组算法等。这些算法是后面章节更复杂算法的基础(如树和图中的算法),算法的积累过程象滚雪球,所以基础必不可少。
调试这些算法要注意两点。一是适当修改教材算法中的非C语言的语句和增加部分局部变量的定义。由于算法的描述是类C语言的,所以要改为完整的C语言的函数。不过需要修改(增加)的地方不多。二是书写一个主程序来调用并调试描述算法的函数。主程序的设计要根据算法的功能和调试需要来编写。
本实验教学计划的实验1至实验6的A实验是为完成该任务而设计的。
三. 完成习题中的算法设计题并书写实验报告
我们在《题集》的每章的算法设计题中选择少量“小问题”的算法设计练习,以培养和提高学生自己动手写算法的能力。这些算法或者与教材中基本算法类似,或者是延伸,或者是它们的应用。
做这些算法设计题时,要注意过程的完整性:题目理解、功能分析、算法思想、描述算法的C函数、调用算法的主程序、运行结果、调试过程的体会等等,都尽可能书写出来。养成书写文档的好习惯。
本实验教学计划的实验1至实验6的B实验是为完成该任务而设计的。
四. 完成一个小的应用系统并规范书写实验报告,以进一步提高算法描述和算法分析的能力
本实验教学计划没有列出相应的实验内容。有余力的学生可以选择一到二个《题集》中的实习题做。
(三)算法实验内容与指导
实验0:C语言中函数定义与调用、指针
《数据结构与算法》实验要求与指导 来自淘豆网www.taodocs.com转载请标明出处.