《数据结构》课程综合案例的设计

2016-09-20 08:14张芷伊张秀梅
现代计算机 2016年21期
关键词:数据结构案例实验教学

张芷伊,张秀梅

(辽宁科技大学软件学院,鞍山 114051)

《数据结构》课程综合案例的设计

张芷伊,张秀梅

(辽宁科技大学软件学院,鞍山 114051)

针对应用型本科人才的培养目标,注重实践能力的教学要求,以及数据结构实验课程原有教学模式存在的不足,对实验内容和方式进行改革,采用基于案例式的有指导的讨论模式进行教学。通过实验教学的设计充分发挥学生的主观能动性,从而培养学生实际动手能力和钻研合作能力。

数据结构;案例式;教学模式;实验改革

0 引言

《数据结构》课程是计算机专业的一门核心课,该课程的原理和算法比较抽象,目前针对理论教学的改革方法很多,如基于CDIO教学理念的改革[1],案例教学法[2],分层教学法[3],基于竞赛的教学模式[4]以及构建主义教育[5-7]等。为了提高学生学习兴趣,培养学生算法设计能力、算法分析能力和程序调试能力,对实验内容进行调整,并采用基于案例的讨论式教学。通过以案例为分析研究对象,对案例分析和讨论,以及对相关方案的选取和评价,激发学生提出解决方案,进一步应用到其他方面。

1 数据结构实验教学中存在的问题

从目前的教学和学生的学习效果来看,现行的实验教学体系存在着一些问题主要表现在以下方面。

1.1 学习态度参差不齐,学习方式差别很大

学生对待专业学习的动力差别很大,大多数学生还没有适应大学的学习生活,还在延续初高中的应试教育,很少进行自主学习,更不知道如何进行研究性学习。而且大学生的智力已经有了很高的层次性,学生的差异性是最大的优势,却是教师面临的最大挑战[8-9]。

另外,程序设计课程学得不透彻,缺乏实际动手能力,在实践课上做其他不相关的内容,没有真正重视实验课的学习,渐渐对专业学习丧失学习兴趣。

1.2 实践内容枯燥

目前大多数实验题目是验证性的,教师采用 “静态”的教学方法,从实验目标、内容、步骤、注意事项,甚至程序的调试以及可能的实验结果都由教师讲解,然后由学生去操作。而对于相对较难的题目,一些能力差的学生直接从网上下载,不思考不提问。实验内容上缺乏对解决实际问题的练习,学生在实验之后仍然不知道学习数据结构在解决实际问题的时候能对编程有什么指导意义,这使学生进行思考研究的少了,按部就班去做,导致实验失去了原始的意义,不利于锻炼学生的分析解决问题的能力,也不利于教学质量的提高。

1.3 实践考核不够科学

在现行的的实验教学中,实验考评主要是以学生的出勤率、实验态度和实验报告作为评价依据,但这种考核方式有时无法考核出学生的真实成绩,仍然有实验态度不认真、抄袭实验报告的现象,从而导致评价结果与实际情况有很大偏差。

针对上述问题,要想使实践教学达到预期目标,真正提高学生的实践能力,提高学生的学习兴趣,让其尽快自主学习是至关重要的。为了适应学院卓越工程师培养模式的教学,首先对原有实践教学内容进行改革,并运用案例式教学方法。

2 案例式实验教学内容改革

每次实验之前,都精心选择或设计一个引导性案例问题,通过问题的引入,使学生在概念和提高理解之间架起一座桥梁。通过分析问题,收集数据,总结和归纳系列过程,激发学生科学地思考、增强解决问题的技巧和获得新知识的能力。具体实施过程如图1所示。下面以线性表部分的一元多项式实验为例进行设计。

2.1 案例的设计

图1 案例式实验教学过程

作为数据结构实验课程的第一个案例式实验,采用有指导的方式进行。实验内容是为学习目标而选择的,对于大学低年级的学生,由于知识积累不足,没有掌握相应的学习方法等原因,所以要选择难度适中的案例,并与其先验知识融合到一起。试想,一个不费吹灰之力就能解决的问题会让学生不屑一顾,而具有一定难度的问题将引发学生解决问题的兴趣和跃跃欲试的冲动。因此选用合适的案例是很具有挑战的。

假设现有质量分别为1克、2克和3克的砝码各一枚,问只用这些砝码各一次你能称出哪几种质量的物体来?而对各种质量确定的物体又有多少种不同的称量方案?[10]

2.2 案例的分析

“动态”的实验教学应当被视为是一幅全景图,同时也是细节的的集合体。使学生积极参与到学习问题解决的活动中,实现了角色的变更,学生成为解决问题的主体,激发了自主学习的能动性。

首先,分析汇总各种可能得到的称重情况如表1所示。

表1 称重问题的解

接着,教师引导进一步分析细节:

(1)如果有1枚重为K1的砝码,称重的质量种数为n=2,两种物体的实际质量为m={m1=0,m2=K1},每种质量的称重方案数为P={P1=1,P2=1},发现m和P之间的关系?

(2)假设有两枚砝码,其质量分别为K1和K2,假设K1≠K2,综合(1)得到可以称重的质量情况为:

(a)0+0=0;

(b)K1+0=K1

(c)0+K2=K2

(d)K1+K2

(3)学生们联系本次实验的内容,并猜想各种解决方案

最后,分析总结。

根据(1)可用一个二项式表示1+xK1

根据(2)可得到对应的多项式

(1+xK1)(1+xK2)=1+xK1+xK2+xK1+K2

下面得到如果是n个这样的砝码得到通式

(1+xK1)(1+xK2)…(1+xKn)

2.3 问题的解决实现

案例分析后,考虑如何存储到计算机中实现实际问题的求解,利用所学的线性表结构,用顺序表还是链表,需要存储哪些数据。算法如何编写,利用书上已知的一元多项式算法如何改写等。

首先,选定运用链表结构,创建结点PolyNode,根据多项式的特点,结点中的数据包括两部分信息:系数(coef)和指数(expn)。接着,将若干个多项式按照指数的顺序从小到大的插入到链表中。最后实现一元多项式的乘积操作,在此过程中注意合并同类项,核心代码如下所示:

qa=this.getHead();

qb=this.getHead().getNext();

while(qb!=null&&p.getExpn()>((PolyNode)qb.getData()).getExpn()){//查找插入位置

qa=qb;

qb=qb.getNext();

if(qb!=null&&p.getExpn()==((PolyNode)qb.getData()). getExpn()){//将指数相同相合并

((PolyNode)qb.getData()).setCoef(((PolyNode)qb.get-Data()).getCoef()+p.getCoef());

if(((PolyNode)qb.getData()).getCoef()==0){//数为0的话释放结点

qa.setNext(qb.getNext());qb=qa.getNext();}

一元多项式乘积操作的核心代码为:Node qa=la.getHead().getNext();Node qb=lb.getHead().getNext();

PolyList ha=new PolyList();ha.getHead().setNext(null);while(qa!=null){

qb=lb.getHead().getNext();while(qb!=null){

PolyNode a=(PolyNode)qa.getData();PolyNode b=(PolyNode)qb.getData();PolyNode pf=new PolyNode(a.getCoef()*b.getCoef(),a.getExpn()+b.getExpn());try{ha.insertsame(pf);}catch(Exception e){e.printStackTrace();}

qb=qb.getNext();}

qa=qa.getNext();

进一步提出解决问题:某船队有载重量为1,2,4,8 和16百吨的船各一艘,为了保证使用效益,用船时必须满载,问该船队有多少种载货服务功能。

通过本次实验希望能够将实际问题拿来分析,查阅相关书籍或上网找到一定的解决方案,最后用计算机去解决,在问题的解决过程中继续研究,真正提升学生的研究能力。

3 结语

数据结构实验内容采用案例驱动,案例的选取与学生的先验知识融会到一起,又与数据结构的相关内容有机的结合起来,意在提高学生的学习兴趣,学生分析与设计能力,培养学生团队协作精神。通过对精心选择和设计的案例的分析和讨论,得出原有情境下的解决方案,然后提出改进的思路和进一步的应用,案例中解决问题的思路为学生提供了借鉴好启发,不仅利于学生获得新的知识,而且也利于学生以此为基础提高自身的分析问题和解决问题的能力。

[1]陈瑾.基于CDIO理念的数据结构课程改革与研究.福建电脑[J],2012(9):156-157.

[2]段群,田俊华.案例教学法在《数据结构》教学中的应用.陕西教育[J],2012(9):58.

[3]张秀梅.《数据结构》课程教学改革探讨.现代计算机,2013(10):47-49.

[4]李月军,李娟,李英玉.融入ACM/ICPC竞赛内容的数据结构教学改革与实践探讨.内蒙古师范大学学报(教育科学)[J],2012. (25):137-140.

[5]李晓鸿,骆嘉伟,季杰.《数据结构与算法分析》研究型实践教学的探索.实验室研究与探索,2012(31):121-126.

[6]张戎秋.建构主义理论在数据结构教学中应用的研究和探讨[J].淮南师范学院学报,2010(12):92-94.

[7]龚红,李友云.Seminar教学法在数据结构实验教学中的应用.信息系统工程[J],2012(10):139-141.

[8]林健著.卓越工程师培养(工程教育系统性改革研究)[M].清华大学出版社,2013(1):196-199.

[9]迈克尔·普洛瑟(澳)著.如何提高学生学习质量[M].北京大学出版社,2013(1):139-142.

[10]杨启帆,李浙宁,王聚丰等.数学建模案例集[M].高等教育出版社,2006(1):1-10.

[11]王晓明.基于学生自主和协作学习的数据结构实验教学模式探索与实践[J].高教学刊,2015(22):229-230.作者简介:张芷伊(1994-),女,辽宁鞍山人,大学三年级张秀梅(1978-),女,辽宁鞍山人,讲师,研究方向为中文信息处理

Case Teaching Content Design of Data Structure

ZHANG Zhi-yi,ZHANG Xiu-mei
(School of Software,University of Science and Technology Liaoning,Anshan 114051)

In view of the training target of personnel with applied knowledge,the teaching requirements of the practice ability,and the deficiency of original experiment course on data structure,the experimental contents and methods are reformed.The discussion model based on case is applied.Through the design of experiment teaching the students give full play to their initiative,and train the practical ability,study and cooperative ability.

Data Structure;Case Teaching;Teaching Mode;Experiment Reform

辽宁科技大学大学生创新创业训练项目(No.DC2015119)

1007-1423(2016)21-0065-04

10.3969/j.issn.1007-1423.2016.21.015

2016-05-17

2016-07-15

猜你喜欢
数据结构案例实验教学
关于基础教育阶段实验教学的几点看法
数据结构线上线下混合教学模式探讨
案例4 奔跑吧,少年!
TWO VILLAS IN ONE CEDIA 2020案例大赛获奖案例
Bespoke Art Deco Media Room CEDIA 2020案例大赛获奖案例
小议初中化学演示实验教学
对初中化学实验教学的认识和体会
为什么会有“数据结构”?
高职高专数据结构教学改革探讨
随机变量分布及统计案例拔稿卷