侯传宇,赵 娟,武以敏
1.宿州学院信息工程学院,安徽宿州,234000;2.宿州学院数学与统计学院,安徽宿州,234000
“数据结构”课程是计算机专业的核心课程之一[1],随着计算机应用领域的不断扩大,非数值计算问题的增多,应用数学、统计学、信息管理和电子商务等非计算机专业也开设“数据结构”课程,以提高学生对数据的分析、组织和处理的能力[2-3]。但是,“数据结构”课程内容抽象,数据的逻辑结构常以抽象数据类型进行表示,同时算法本身采用不完整的类C语言进行描述,学生难以理解;传统的教学方法,教师作为教学的主体,强调理论的讲解,学生只是被动地获取知识、接受技能的训练,学习兴趣不高,极大地束缚了学生的思维,限制了学生主动性的发挥,达不到预期的教学效果。为此,笔者在“数据结构”课程教学中,尝试地使用Seminar教学法,以加深学生对数据结构知识的理解,提高学生的学习兴趣,培养学生的创新能力,取得了良好的教学效果。
Seminar教学法,自18世纪开始在德国的大学中使用,之后遍及欧美各地的大学,目前是欧美大学课堂教学的一种重要形式[4]。Seminar教学法主要包括预习、发言、讨论、总结四个阶段[5],第一阶段由教师和学生共同完成,第二、三个阶段主要由学生完成,第四个阶段由教师完成。Seminar教学法的核心是充分挖掘课程参与者(学生和教师两个方面) 教与学的潜能, 最大限度地进行多角度、多层次的互动, 从而深化对某一主题的认识[6]。
目前,Seminar教学法在国内一些学科的教学中,如分析化学实验[5]、药理学[7]、法学[8]等,取得了良好的教学效果,但在“数据结构”课程教学中的应用研究,未见报道。为此,笔者选取“数据结构”中“存储结构”部分,探讨Seminar教学法在“数据结构”课程教学中的应用。
Seminar教学过程的主持人(教师),根据理论教学的需要,提出讨论的主题。根据分组情况,对要讨论的主题进行介绍,并提出相关要求。例如,在讲解线性表时,可布置讨论任务:比较顺序存储和链式存储各自的优缺点。要求各小组查阅资料,设计相应实验作为结论的依据,要有测试数据和实验结果。学生根据教师的要求进行组内分工,每个成员领取相应的任务,完成查阅与任务相关的资料、设计相关算法、编写相应程序代码、准备测试数据等准备工作,并根据实验结果形成发言报告。
每组推选一位学生向全班同学做发言报告,报告中包含任务分工(小组中每位成员的任务)、所查阅的资料和文献、解决问题的主要方法、所设计的算法、编写的程序及所采用的测试数据,以及小组成员经讨论形成的结论。
教师根据学生的发言,引导学生就任务相关的问题进行针对性的讨论。例如,顺序存储和链式存储在插入或删除操作、查找元素、存储空间等方面的比较等。每组发言结束,其他组就发言报告中存在的问题进行提问,发言组的成员记录问题并进行回答。学生根据自己在研究任务过程中所遇到的问题和自己所查阅的资料,对发言报告中算法、程序的代码以及测试数据的合理性进行提问。问答双方可以以辩论的形式进行,教师控制讨论的时间,学生根据讨论过程中发现的问题进行进一步实验。
教师对本次Seminar教学进行总结,对学生的发言和讨论情况进行评价,并对所提问题进行必要的总结。对学生研究该问题的方法及存在的问题进行分析,并指导学生进行相关研究。例如,对所提问题可总结如下:两种存储结构有各自的优缺点,但不是绝对的,顺序存储结构需要预测所需空间的大小,往往会出现分配空间不够用或较多存储空间不能得到充分利用的情况,在插入或删除元素时需要移动大量数据,链式存储则不存在上述问题,但链式存储需要额外的空间来存储指针(下一个结点的地址)。对于存储的数据相对位置基本不变而经常需要查找指定位置的元素,采用顺序存储较链式存储合适。
Seminar过程结束后,学生要进一步完善自己的研究报告,报告中应包括在讨论的过程中教师和学生所提出的意见,以及解决问题所采用的方案。学生提交研究报告,教师根据报告内容,按照平时成绩和实验成绩考核体系给出相应的成绩。
(1)主持人是关键。Seminar教学过程中,主持人的组织和引导是教学成败的关键,教师要有丰富的专业知识并熟练掌握所授课程,还要有好的组织和协调能力。教师在教学过程中,要善于发现问题,积极引导学生发言。还要具备较强的应变能力,引导学生寻找解决问题的关键,确保教学过程顺利进行,以达到预期的教学效果。
(2)Seminar教学法要灵活使用。对于Seminar教学法在分组时每组人员不宜过多,要让每位成员都能分到相关任务。若班级超过50人,组数较多时,在讨论环节教师可挑选部分组做发言报告,其他组学生参与讨论。
(3)讨论主题层次化。教师根据教学内容的难易程度分层次设计问题,把问题分成基础型、综合型和研究型。基础型的问题如顺序表、链表的基本算法的比较等,主要根据教材中已有的算法进行简单改进。综合型问题如一元多项式的四则运算、后缀表达式的求解等,学生需要在已有算法的基础上进行扩展。研究型问题如迷宫求解、八皇后问题,学生需要查阅资料设计出相应的算法,并讨论其可能的应用,培养自己运用理论知识解决实际问题的能力。学生可对同一问题采用不同的存储结构设计算法,比较不同情况下存储结构各自的优缺点,从而将数据的逻辑结构、存储结构和算法有机地结合,提高选择合适存储结构的能力。
从上述讨论中可以看出,Seminar教学方法突出了学生在教学中的主体地位,学生获取知识的方式从被动的接受转换为主动的探索,这样获取的知识更容易被内化和应用;同时,也能激发学生学习的积极性,有利于学生养成主动学习的良好习惯。
Seminar教学法运用于存储结构教学,有利于加深学生对数据的逻辑结构、存储结构以及算法的理解,提高学生的实践探索能力和创新能力。但是,在“数据结构”课程其他章节的教学中能否采用Seminar教学方法,以及如何运用该教学法,还需要在今后的教学实践中进行探索。
参考文献:
[1]李春葆,尹为民,李蓉蓉,等.数据结构教程[M].北京:清华大学出版社,2011
[2]孙夫雄.非计算机专业数据结构教学研究与探讨[J].科技资讯,2007(6):145-146
[4]马启民.“Seminar”教学范式的结构、功能、特征及其对中国大学文科教学的启示[J].比较教育研究,2003(2):20- 23
[5]贺棋,王惠珍.Seminar教学法在基础护理学本科教学中的应用[J].护理教育,2011(15):62-64
[6]唐年庆,汪在荣.数据结构中线性结构教学分析[J].内江科技,2011(2):146-147
[7]葛伊莉,郭慧.Seminar教学模式在分析化学实验中的应用[J].广东化工,2011(12):145-146
[8]葛金芳,赵斌,胡成穆,等.Seminar教学模式在临床医学专业本科生临床药理学教学中的应用[J].中国高等医学教育,2012(6):97-98
[9]刘代华.法学Seminar课堂模式建构和教学法研究[J].湖北成人教育学院学报,2012(4):122-124