《算法与数据结构》线上线下混合模式的教学设计与实践

2021-06-15 12:28滕秀花
高教学刊 2021年4期
关键词:线上线下教学工程认证算法

摘  要:一直以来,学生普遍认为《数据结构与算法》课程内容抽象,算法繁多且枯燥,文章提出了基于网络教学平台“线下串讲、线上自测并深入自主学习”的混合教学模式,教学实施过程紧密结合思政建设,其教学体系设计符合工程认证的人才培养目标,经过两个学期的教学实践,教学效果良好。

关键词:算法;线上线下教学;工程认证;课程思政

中图分类号:G642        文献标志码:A         文章编号:2096-000X(2021)04-0109-04

Abstract: For a long time it is generally recognized that the course Data Structure and Algorithms is abstract, boring and involves a medley of algorithms. To facilitate teaching the course, a teaching model is proposed in this paper, integrating "offline interpretation, online self-test and deep independent learning" based on an online teaching platform. The implementation of this model revolves around ideological and political education and the teaching system is designed in accordance with talent training objectives and patterns in engineering accreditation. After two semesters of teaching practice, the teaching model is proved to work well.

Keywords: algorithm; online-offline teaching; engineering accreditation; ideology and politics course

《算法与数据结构》课程是培养学生应用数据结构基本知识以及基本算法技术解决如何高效解决问题的能力训练,解决非数值型问题的合理建模。一直以来,该课程教学实施过程中存在一些问题:比如学生普遍感觉内容抽象,学起来较为困难,对一些经典算法比如KMP的应用价值不明确,导致深入探索主动性较弱,教学效果欠佳。也为了适应软件工程认证的人才培养目标,确实达到该课程的教学实践目的,在网络教学平台的支撑下,本文提出了“线下串讲、线上自测并深入自主学习”混合模式的教学方法,在理论教学、实践教学和考核方式等方面进行了教学改革,通过调整各环节难度,增强学生的学习自信,提高兴趣,使得学习从被动转化为主动,同时借助七平台督学、促学、助学等,帮助学生提高学习成效。

一、混合教学模式的教学设计

针对传统教学中存在的问题,结合工程认证人才培养目标,充分应用学校提供的网络教学平台进行课程建设,深入开展线上线下相结合的混合式教学模式。课前学生登录学习平台,根据提供的教学资源进行预习;线下课堂教师从基础理论到实际应用进行串讲,课后通过教学平台完成个人自我评测,配套的实验,从实验步骤到实验内容都进行了优化,其过程根据个人情况进行实践拓展,组织学生组队比赛等模式进一步激发深入学习的自主性。通过课上、课下,线上、线下的协同学习,全面提升学生的学习积极性,以求理论与实践相统一。

(一)网络教学平台建设

1. 电子教案:将课程教材配套的完整ppt分享于平台,以供学生预习、复习。

2. 经典视频: 选择性的将复杂、经典的算法及其应用的讲解案例录制视频共享在平台,以供学生反复揣摩。

3. 建立案例库:将经典算法的执行过程建立动画演示过程,达到抽象概念生动新颖的效果,同时对动画的步骤进行分解,完成其代码编写,以求设计到编码的转化的直观化。

4. 建立作业考试题库: 利用假期不断丰富题库,每一章节线下理论教学完成,从题库抽取合适难度和合理题量完成作业组题,在限制的时间内完成,尽量避免知识掌握的滞后性;为了适当控制应付抄袭,则在限制时候到达可以才能看到完整答案,主讲教师根据答题情况选择性在线下课堂评讲,并串讲相关知识体系,达到复习及巩固的目的。

5. 平台辅导:鼓励学生利用平台提问,教师及时辅导,共性的复杂问题则选择线下课堂内统一评讲,学习期间学生提的问题越多,平时分的积分就越高,以此促进学习的主动性。

(二)实践教学

为了加强理论紧密联系实践,教学实施过程中应配置适当的实验任务,保证基本数据结构的应用以及基本算法的渗透,达到其课程教学实践目的。《算法与数据结构》课程传统实践教学存在如下问题:逻辑结构到存储结构、算法设计到编码实现需要扎实的编程基础以及理论知识,其过程相对复杂,学生畏难情绪严重;学生也刚学完C程序设计,编程能力尚待加强,特别是指针的掌握不够直观化,为了有效的将该课程的实践辅助理论深入理解,我们在实践教学方面做了如下的设计:

1. 优化实验内容:實验内容分为验证性到设计性两个阶梯:(1)验证性:经典数据结构和基本操作的转换为程序调试,并设计测试用例的测试,完成相应内容并撰写完整实验报告,该次实验分值70分;(2)设计性:根据具体的应用改进数据结构或者基于现有数据结构设计核心算法,逐步培养学生的分析、设计、解决问题的能力,相应内容根据完成的情况以及报告的撰写情况分数实验分数、酌情提升。

2. 弱化实验中设计到程序的转化。其过程通过两个环节完成:(1)提供程序框架:将数据据结构的表示、数据的构建验证操作实现的程序框架搭建好并进行评讲,在此基础上学生则可以进行专注操作以及设计性内容的编码调试。(2)设计性内容的评讲:通过预习完成了算法的设计,学生根据课堂的评讲完成其设计的纠正,在验证性代码的基础上专注其核心算法的编码调试。比如基于单链表实现有序线性合并的实验,实验前主讲教师提供了如下的程序框架:

using namespace std;

typedef int ElemType;

typedef struct LNode{

ElemType   data;

struct LNode  *next;

}LNode,*LinkList;  //存储

//先建立一个带头结点的单链表

void CreateList_L(LinkList &L,int n){

L=new LNode;

L->next=NULL;

LinkList p;

for(int i=n;i>0;--i){

p=new LNode;

cin>>p->data;

p->next=L->next;L->next=p; }}

//单链表的显示

void PrintList_L(LinkList &L)

{

LinkList p=L->next;

while(p) {

cout<data<

p=p->next; }}

//LA和LB有序線性表合并到LC中

int MutualData(LinkList LA,LinkList LB,LinkList &LC)

{

LinkList TC,pA,pB,qA,qB;

pA=LA->next;pB=LB->next;

LC=LA;TC=LC.next;TC->next=NULL;

if(!pA)||(!pB) return 0;

while((pA)&&(pB))

{

if(pA->datadata) {qA=pA;pA=pA->next;delete qA;}

if(pA->data>pB->data) {qB=pB;pB=pB->next;delete qB;}

if(pA->data==pB->data)

{ TC->next=pA;pA++;TC++;TC->next=NULL;}

}

if(!LC->next) return 0;

else return 1;

}

//测试

Int main()

{ LinkList LA,LB,LC;

CreateList_L(LA,10);

PrintList_L(LB);

CreateList_L(LB,8);

PrintList_L(LB);

MergeList(LA,LB,LC)

PrintList_L(CL);

在现成的程序框架下,学生的实验重心放在了核心算法-有序表的合并int MergeList(LinkList &LA, LinkList &LB,LinkList &LC){  }内黑体部分,杜绝传统教学实验课上花大量时间在单链表的构建和验证情况,扭转了实验课堂数据结构和C语言编程的本末倒置的情况;同时实验中接口用引用代替指针,弱化了指针的抽象性。新的实验模式降低了实验难度,提高了实验积极性,绝大部分同学都能在课堂内调试成功并验证其算法的正确性,由此增强了学生的学习成就感,激发了学习的兴趣。

3. 细化实验步骤:(1)预习:根据任务完成数据结构的表示、所需基本操作的编码以及核心算法设计,并相应内容填入实验报告;(2)调试:根据评讲订正数据结构的表示和算法设计,学生根据已经提供的程序框架完成核心算法的实现调试;(3)报告提交:根据调试情况以及测试情况撰写报告,并及时提交到网络教学平台。

4. 课外拓展:鼓励学习相对超前的同学参加学院的ACM训练,鼓励学生组队参加软件编程比赛,进一步提高学生深入算法与数据结构的动力。

5. 配套课程设计:准备题量足够的应用性问题,保证每生一题。学生需要分析建模,根据问题特性选择合适的数据结构,并进行核心算法设计,自行搭建程序框架并准备多组代表性测试用例验证其算法的正确性,并自行衍生其他应用,鼓励学生的创新。

(三)理论教学

1. 经典算法教学讲解和基本算法设计技术相结合,比如最小生成树衍生出贪心算法的本质,归并、快速排序衍生分治法,串匹配的KMP算法next值的计算引入蛮力法等,课后布置相应技术的其他经典问题,供有兴趣的同学讨论、设计。

2. 算法设计训练秉承传统的纸质设计。根据设计题目要求学生基于特定的存储结构完成算法设计,C语言的函数形式实现。每一题都从算法思想、算法设计、算法到函数转换、再到完成程序的编码层层推进,进一步训练算法设计以及程序编码转换的训练。

3. 启发式教学。引用平时日常生活较为较为常见的问题,比如病毒感染检测引入串匹配,引导学生积极、主动的进行探索,通过解决实际问题引入新章节的数据结构。

(四)改革考核方式

依托网络教学平台的题库进行课后自测、阶段性考核,内容是典型数据结构和基本操作的应用以及算法设计能力考核相结合,起到阶段性复习的促学作用。

二、课程思政教育

课程建设与思政教育同向而行,形成协同效应,坚持教书和育人相结合,既教书,更育人。依托算法在不同领域的应用案例,比如散列技术在信息安全、数据结构及数据挖掘领域的应用,适当结合我国政府在解决民生问题和处理突发公共卫生事件等方面的突出作用和重要成果,在教学过程中融入思想政治教育。在点滴之間影响学生,以事服人、以情感人、以文化人,培养当代大学生的责任感、自豪感、荣誉感,培养学生成为国家有用的栋梁之才。

三、课程改革符合工程认证要求

从工程认证角度看,工程认证的相关标准都是来源于实践的,即以社会需求为导向,提出的标准也是高等院校教育人才培养的目标,即倒推出社会对人才的具体要求以及高校学生毕业时应该具备的素质。为了满足工程认证大环境下的人才培养,软件工程专业的每一个门课程都有其对应的各项二级指标点及课程教学目标,《算法与数据结构》的毕业指标点及课程教学目标如表1。

基于如上两个毕业指标点,该课程的传统教学过程出现有如下问题:

指标点3.1考查的是基本数据结构及常用算法的实际应用能力,考核该指标点出现情况不够理想的主要原因是:学生刚刚学完《高级语言程序设计》,对C语言的编程掌握还不够深厚的情况下,开始接着学习《算法与数据结构》,从解决较为复杂问题的角度理解数据结构包含的内容,按照数据结构的思路设计存储结构以及相应的算法,具有一定的抽象性。很多学生在学习过程没有正确理解数据结构的本质,解决问题的时候没有从数据结构的层次采取考虑解决策略,因此在还没有深刻掌握数据结构概念的情况下也没法做到灵活应用;指标点3.2要查学生的是运用数据结构的思路与方法,设计合适的数据结构及算法解决实际问题,提高学生分析问题和解决问题的能力,包括对计算机应用领域的技术问题优化设计方案。考核该指标点过程要求学生将数学模型和具体问题相结合,需要综合应用课程知识进行抽象分析、设计。作为大一下的学生,刚刚建立编程概念、基本思路,直接转入从数据结构角度对复杂问题分析、解决,衔接过程较为仓促,特别是指针、递归这两个方面的实践储备不足导致。

基于软件工程认证人才培养目标,《算法与数据》课程采取“线下串讲、线上自测并深入自主学习”混合模式,线下课堂通过合理组织数据,高效处理数据的典型案例引导学生针对各种实际问题准确恰当的选出最佳数据结构与相应的算法,每一章节的课程都包含概念表述、数据模型、算法设计三层次的内容体系,同时强调数据组织方法和实现技术构成,保证学生对“数据结构”中概念技术能有直观理解,线上的自主测试为进一步的强化提供可行性的平台;为了提升学生计算机技能与工程实践能力,该混合模式围绕工程认证标准以及工程实践的相关要求对实践教学环境进行了详细的设计:1. 验证型实验为了巩固当前所学知识点,强化学生基本理论掌握为目的设计;2. 设计性实验训练学生选择合适的数据结构和算法解决相应的实际问题设计,加强学生解决问题能力的训练;3. 课程配套的专周课程设计题目以强化学生灵活运用数据结构以及基本算法设计技术进行设计,提高学生解决相对复杂的实际问题进行设计。层层推进的实践设计逐步增强学生理论与实践的联系。

四、教学效果

为了验证本文提出的混合模式教学的实际效果,笔者对两个年级两个学期的课程实施过程的学习日志进行了分析,同时对学生也进行了面谈, 被调查的对象是普通二本独立学院的大数据17级、软件工程17级、网路安全18级、信息管理18级共约200生(包括部分少量辅修学生),本文对同批学生的期末考核情况以及课堂内实验完成情况进行了统计比较。

图1中两届的学生参加考试的两份期末试卷的题型、考核内容都是遵从2014版培养计划的课程考试大纲执行,经课程组老师审核,两份试卷的难度系数基本相同。从图中统计数据来看,相比于传统教学,混合模式的新教学法的实施使得低分段特别是<60分比率大幅降低,70分~79分、80分~90分两个分数段的比率都有明显提高,增加线上平台的课后自主测试,同时在平台上提供了视频,演示动画等也为学生的反复揣摩晦涩抽象的算法提供了资源,平台的答疑专区也能及时为同学答疑解惑,知识的明朗化为同学的学习增强了信心,提高了学习的动力。

图2统计了学生的实验成绩,分5个分数段的百分比评估学生课内实验的完成情况。从图1中可以看出,与传统教学法相比,混合模式降低了低分段的比率,并大幅提高了高分段比率。在传统教学法下,90分以上学生的成绩的比率5.57%,而线上+线下的混合模式下比率为40.74,这说明新的教学模式能够激发优秀学生的学习潜力,促进学生的学习兴趣,在面谈中学生强调兴趣是努力的最好动力,有了这层动力,课外主动学生,深入思考,甚至部分学生从不同角度去思考问题,能够产生一些创新性想法。

五、结束语

为了提高《算法与数据结构》课程的教学效果,本文基于网络教学平台“线下串讲、线上自测并深入自主学习”的混合教学模式,立足理论,深入实践,能够显著地提高学生的学习成效,该课程教学实践仍然还有其他问题值得我们进一步探究。

参考文献:

[1]周艳聪,孟巍.“数据结构”课程自主学习平台构建[J].现代信息科技,2019,3(02):143-145.

[2]严蔚敏,李冬梅,吴伟民.数据结构(C语言版第2版)[M].北京:人民邮电出版社,2019.

[3]向志华,赖小平.以创新能力为导向的“数据结构与算法”实践教学体系建设[J].无线互联科技,2020,17(01):83-85.

基金项目:2018年4月福建工程学院“福建工程学院精品在线开放课程《算法与数据结构》”(编号:K2018005)

作者简介:滕秀花(1977-),女,汉族,福建福州人,工学硕士,副教授,研究方向:算法分析、图像处理。

猜你喜欢
线上线下教学工程认证算法
Travellng thg World Full—time for Rree
生源多元化背景下高职院校教学改革研究
线上线下教学手段在中职公共英语课程教学运用策略
基于《图文信息处理》课程的混合式课堂教学的探索与实践
面向工程认证的软件项目管理课堂教学探究
基于工程认证及成果导向教育的环境工程专业体系构建
慕课与英美小说教学改革策略研究
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点