基于问题导向的数据结构混合式教学模式研究与实践

2020-07-10 05:52刘福东
计算机教育 2020年4期
关键词:数据结构解决问题知识点

张 平,刘福东

(中国人民解放军战略支援部队信息工程大学,河南 郑州 45000)

0 引言

问题导向教学法是一种启发式教学方法,其思想是教师将教学内容以问题的形式呈现在学生面前,让学生在寻求、探索解决问题的思维活动中,掌握知识、发展智力、培养技能,进而培养学生自己发现问题、解决问题的能力。问题导向教学方法将解决问题作为教学的基本过程,可以采用教师带领学生解决课题、教师和学生共同解决问题和学生独立探索解决问题等不同方式,使教学成为有明确目的、能发挥学生主观能动性的过程[1]。

以网络技术为核心的信息技术飞速发展,推动着教育的变革与创新,给教育工作者带来了全新的挑战和机遇。信息技术改变着传统的教育模式,MOOC、SPOC 迅速发展,使教学过程不再局限于教室和课堂,因此被教育工作者推崇为一把教学改革的利剑。在新的时代背景下,如何应用这些新技术、新手段,探索新的教育教学模式,如何将新思想、新理念融入教学改革,提高教学质量,培养创新人才,成为每个教育工作者都必须思考的问题。

1 数据结构课程特点分析

数据结构是计算机及相关学科专业的核心专业基础课,对夯实学生的计算机编程基础和培养计算思维能力起到重要的作用。数据结构讨论的理论知识和技术方法,无论对进一步学习计算机领域的其他专业课程,还是对从事软硬件项目开发,都是重要而必备的基础[2]。传统的数据结构课程教学主要存在以下问题。

(1)从教学内容上看,数据结构具有理论抽象程度高、应用实践性强,要求“理论”紧密联系“实践”的特点。以往教学重点放在知识点的讲解上,而数据结构的逻辑性较强,因此出现了原理、思想听懂易,算法、实现掌握难,学生课上听得懂、课下不会用的问题。

(2)从教学形式上看,以往的教学模式是以教师课堂讲授为主,存在教与学分离的问题,教师认真讲,学生被动接受,学生的主动性、创造性难以激活,知识内化滞后。师生互动少,教师难以准确掌握学生的学习情况,影响课程的教学效果[3]。

(3)从教学安排上看,数据结构课程内容较多,课堂主要用来讲授概念和理论知识,整个课程的实践学时较少,没有真正做到理论在实践的应用,难以培养学生的动手能力、分析问题和解决问题的能力。

(4)数据结构课程在大二上学期开设,学生在学习方式上还没有完全实现高中生到大学生的转变,没有完全改掉现行高考体制下形成的靠刷题获取高分的不良习惯,在学习方法上还存在一定问题,需要尽早引导和改变。

2 教学过程设计

数据结构混合式教学模式以现代信息技术为依托,融入问题导向的教学理念,打破了传统教育课堂的时空界限,将教学活动设计为课前、课堂、课后螺旋迭代上升3 个阶段,使整个教学过程多维化、立体化,学生的学习体验更加丰富,学习与讨论相结合,学习与测试相结合,学习与应用相结合,学生全程参与到教学过程之中,成为教学活动的主体,而教师成为整个教学过程的设计者、主导者、推进者和监督者。教学过程见图1。

图1 基于问题导向混合式教学过程

整个教学过程应用清华大学学堂在线的雨课堂作为线上教学平台,北京大学Openjudge 作为在线练习和测试平台,实现线上和线下的有机混合。

2.1 课前阶段

课前阶段是学生的自主学习阶段,主要是知识型内容,目的是将学生的知识学习过程提前,使学生有更多的时间用于知识的理解和运用,提高分析问题、解决问题和创新工作能力。

课前教师提前利用雨课堂发布教学内容和要求,将内容划分为知识点,以PPT 课件、短视频、算法动画演示、参考资料等形式发布给学生,这些教学资源既有自主建设的,也有名校名师的优质教学资源,例如浙江大学陈越教授的国家精品课程数据结构MOOC 视频、清华大学邓俊辉教授的数据结构与算法教学视频等,结合每次课的教学内容有选择地推荐给学生。

课前阶段的关键是问题的提出,这个阶段主要是针对知识点的问题,这些问题既是对学生自学的要求、也是对自学的指导,更是检测自学效果的依据,这就要求每个问题是明确、可回答、可操作的。因此,如何提问直接影响学习的效果,这个问题在第3 节进行讨论。

课前自主学习会根据知识的难易程度,采用个人学习、分组学习等不同形式,既能培养学生的自学能力,也使学生共同开展学习活动,从而实现一种最优化的学习方式。

2.2 课堂教学

自主学习将基础知识学习过程前移,使课堂有更多的时间深入应用教学内容。课堂上以精心设计的教学活动为载体,组织学生对课前学到的基础知识进行巩固深入和灵活运用,拓宽知识面。课堂教学采用雨课堂现场测试、提问、讨论、汇报等多种方式,主要完成3 个目标:自主学习成果评测、答疑解惑、知识运用和拓展思考,相应形成了课堂的3 个组成部分。

2.2.1 自主学习成果评测

每次课会用15~20 分钟,考核和测评学生自主学习的情况,既是对学生学习情况的检查,也是激励学习的过程。考核的形式有雨课堂的在线测试、教师的提问和学生的汇报。其中雨课堂的在线测试是一个非常好的工具,可以针对知识点设计题目,形式可以是客观题,也可以是主观题,学生现场答题、现场出分,并以可视化的形式展示答题情况,即时反馈学习效果,使教师及时了解学生的学习情况,调整课堂教学的节奏。而且,雨课堂对课程教学的数据进行全程管理,使教师深入了解每个学生的学习动态(学习时间、学习效果、存在问题),在指导上做到有的放矢。

2.2.2 答疑解惑

答疑解惑是教师针对测试发现的典型的、普遍的、有代表性的问题,有针对性地讲解,或者提出问题引导学生讨论。教师将课程教学内容划分为3 级139 个知识点,针对每个点设计一系列的测试题目[4],并标注相应要点,通过测试可以很好地掌握学生的学习效果,即时发现问题,即时解决问题。

2.2.3 知识运用

在数据结构混合式教学模式下,将知识运用作为教学的核心,针对每次课的教学内容,通过设置应用场景,提出需求,引导学生提炼问题,进而分析问题、解决问题,付诸实践,再提出新问题,使学生的思维始终和课堂节奏保持一致,处于一种螺旋上升的状态。在教学过程中以问题为中心,形成师生互动、生生互动,以提问、讨论、辩论、头脑风暴等多种方式,增加互动的实用性和趣味性。

2.3 课后阶段

课后的学习任务是融汇贯通和加深巩固。教师每次课后会在OpenJudge 在线测试平台上发布测试和练习题(算法和程序设计题),平台会对学生提交的算法程序进行测试,给出运行测试结果,平台会给出班级学生的答题情况列表,激发学生的竞争意识,促进学习。教师还会在章节内容完成后发布章节测试,检查学习情况。在这个阶段引入ACM 竞赛、数学建模竞赛的题目,让有能力的学生学得更深、走得更远。

3 问题设计与实施

3.1 课前学习问题设计

课前问题用于引导学生自主学习,而学习主要以知识点的理解和记忆为主,提出的是引导性问题。例如在学习线性表时,首先会在一级知识点线性表层面上提出问题,如线性表中数据元素间是什么样的逻辑关系?描述线性表的逻辑结构?举出3 个生活中可以用线性表表示的例子等。在二级知识点顺序表层面上会提问题,如用C 语言写出顺序表的存储结构;说明顺序表的优点和缺点;什么情况下选择使用顺序表。在三级知识点链表的插入运算时提出:实现在给定节点后插入算法,分析时间复杂度;实现在给定节点前插入算法,分析时间复杂度;如何改进后插算法,将复杂度由O(n)降到O(1),写出相应算法。

课前问题实际上形成了学生自主学习的任务单,一步步引导学生学习教师发布的课件、视频等教学资源,回答问题,完成任务,理解和掌握课程内容。

3.2 课堂问题设计

课堂以设定应用场景,实现知识的运用和深化为主要目标,课堂问题以应用问题为主。例如,学习循环链表的时候,从犹太科学家约瑟夫的故事开始,提出约瑟夫环的问题:n个人排成一圈;从某个人开始,按顺时针方向依次编号;从编号为1 的人开始顺时针报数,报到m的人退出圈子;下面的人再从1 开始报数,报到m退出;这样不断循环下去,圈子里的人将不断减少;由于人的个数是有限的,因此最终会剩下一个人;试问最后剩下的人最开始的编号。

这个问题,学生自然会考虑用循环链表来实现,那么接下来,采用什么样的存储方式呢?选择静态链表还是动态链表呢?学生会有两种不同选择,教师再针对两种情况分别讨论。

如果选择静态链表,那么如何标注退出的人?如何定义数据结构?如何实现算法?

如果采用动态链表,那么如何记录初始序号?如何处理退出的人?如何实现算法?

这样分析问题、解决问题的过程实质上就是学生理解知识、运用知识的过程,通过这个应用场景,学生进一步理解了线性表的逻辑结构、循环表的逻辑结构,针对逻辑结构可以采用不用的存储结构,而具体的算法实现要依赖于存储结构;学会了根据具体问题的需要定义自己的数据元素和数据结构。

在学习最短路径时,学生在课下自主学习了最短路径算法,课堂主要是学生的讨论和应用,让学生分组讨论旅游路线规划问题,设计并实现校园游览导航系统。学生在应用经典最短路径算法的基础上,还考虑了路径的不同属性,如人行或车行、人员的不同特点及时间属性等,达到了对课程知识的深入理解和灵活运用。

3.3 课后问题设计

课后的问题主要包括3 个方面:实践、测试、拓展。

实践主要是针对知识点相关算法的设计与实现,主要在OpenJudge 在线测试平台上完成。学生在线编程、提交和测试,实时得到结果,并可以看到本班组同学的学习情况,这对学生是一个很好的激励[5]。

测试是以单元测试形式完成的,用于进一步了解学生对知识掌握的情况,是形成性成绩的重要内容,针对学生的学习情况,教师可以有针对性地进行辅导。

拓展问题是在课堂知识掌握的基础上,针对有能力的学生,让其课后进一步思考和探索的问题,目的在于培养学生的创新能力。比如在学习搜索算法时,引导有能力的学生去查阅资料,分析大数据搜索问题、搜索引擎采用的算法等。

4 教学效果分析

我们2018 年在计算机科学技术和信息安全的两个专业班开展了基于问题牵引的混合式教学模式实践,在教学结束后与常规教学班进行了对比,对比的内容包括:期中和期末的平均考试成绩、参加程序设计类学科竞赛的人数、学生对课程学习的满意度等几个方面,结果见图2 和图3。虽然对比的内容比较粗糙,但结果表明试点班的学习效果明显优于常规教学班。

图2 2018 年混合式教学和常规教学效果对比图

图3 2019 年混合式教学和常规教学效果对比图

5 结语

将问题导向教学方法和线上线下混合式教学模式有机结合,可以从教学形式上和内容上使学生真正融入整个教学过程,成为教学的主体,既有行为参与又有思维参与,打破常规教学的沉闷气氛,形成教师与学生间的双向交流。从实际的教学效果看,这种教学方法能有效激发学生求知欲和学习兴趣,提高自主学习能力。学生在课程学习之后,能够对一些实际问题进行分析建模,进而设计相应的数据结构和算法来解决问题,使学生在解决问题中实现自我提高。为了更好地满足教学的需要,我们还需要进一步探索和实践:如何更好地实现线上和线下的结合,如何设置问题更好地引导学生学习,如何更好地利用在线教学平台和测试平台的监控数据为学生提供有针对性的指导等。

猜你喜欢
数据结构解决问题知识点
“画图”是解决问题的“金钥匙”
第十二页 知识点 静候“18”
关于口罩 这10大知识点你必须知道
第九页 知识点 QSZ92式半自动手枪
联系实际 解决问题
助农解决问题增收致富
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
面对面沟通交流 实打实解决问题
关于G20 的知识点