以学生为中心的“数据结构与算法”实践教学探索

2023-09-25 19:32刘玉秀李奕
计算机时代 2023年9期
关键词:过程性考核以学生为中心实践教学

刘玉秀 李奕

摘  要: 在“以学生为中心”的教学理念下,分析目前“数据结构与算法”课程实践问题,提出“线上线下结合、课内课外互补、基础综合配套、自主分组并行”的全方位全过程课程实践设计思路,阐述了对应于过程性考核方式的实践教学的实施过程,在教学实践中取得了较好的效果。

关键词: 数据结构与算法; 实践教学; 以学生为中心; 过程性考核

中图分类号:TP311.1          文獻标识码:A     文章编号:1006-8228(2023)09-155-04

Student-centered practice teaching exploration for "Data Structure and Algorithm" course

Liu Yuxiu, Li Yi

(Naval University of Engineering Department of Computer and Data Engineering, Wuhan, Hubei 430033, China)

Abstract: Under the teaching concept of "student-centered", the current curriculum practice problems of "Data Structures and Algorithms" course are analyzed, and an all-round course practice design idea of "combining online and offline, complementing in-class and extra-class, basic and comprehensive supporting, autonomous and grouping in parallel" is proposed. The implementation of the process assessment method corresponding to practical teaching is elaborated. It has achieved good effect in teaching practice.

Key words: data structure and algorithm; practical teaching; student-centered; process assessment

0 引言

1952年著名心理学家卡尔.罗杰斯提出“以学生为中心”的教育理念,引起了有关教育的讨论[1]。“以学生为中心”强调了学生在学校里的主体地位,要求教师站在学生的角度,了解、理解、尊重、关心学生,一切以学生的发展、学习和效果为中心[2]。

数据结构与算法课程是计算机相关专业的核心基础课程,其为后续计算机专业课程做有力支撑[3,4]。本课程是一门实践性很强的课程[5],为理解数据结构和算法原理并灵活运用,需要不断实践。传统教学以理论讲授为主,对实践重视不够,学生编程实现和实际运用时无从着手,学习效果不佳[6]。如何站在学生的角度,充分考虑学生的现实基础,更好地设计课程实践教学环节,提高学习效果,需要深入思考和研究。

为了提高数据结构与算法实践效果,已有研究者提出多种课程改革思路[4,6,7]。本文在分析数据结构与算法实践环节基础上,提出一套“线上与线下结合、课内与课外互补、基础与综合配套、自主与分组并行”的课程实践设计思路。

1 数据结构与算法课程实践实施环节现状分析

数据结构与算法课程是计算机相关专业的核心课程,其对算法思维和编程实践能力要求较高,学生学习会感到吃力,实践中无从着手,容易产生挫败心,效果不佳,究其原因,主要如下:

⑴ 重理论、轻实践。教师偏重各种数据结构和算法的原理讲解,而对于其实践应用则轻描淡写,实践占比少[8]。学生被动灌输理论知识,缺乏充分实践巩固,对数据结构和算法的原理理解浮于表面,容易遗忘,实际运用无从下手,学习效果较差。

⑵ 理论实践脱节。传统教学,通常在整个章节理论学完后再进行实验,理论实验间隔较久。学生的理论知识未及时得到实践巩固和深入理解,实验课上,学生理论印象模糊,动手实践吃力,理论实践脱节。

⑶ 难度缺乏梯度。实验学时少,内容单一,难度缺乏梯度。学生思维能力和编程基础不一,单一难度实验无法适应所有学生。基础差的学生独立完成实验较困难,挫败感强,学习积极性不高;基础好的学生没有机会深入拓展,课程高阶性和挑战度不够。

⑷ 实践形式单一。传统教学实验仅限课内单人单组,实验内容常常是从零开始完成编程实现,形式单一。实验过程闭塞,学生无互相交流,也无课外参考资料,知识局限在书本中和课堂上,学习能力未得到很好培养。

2 全方位全过程实践教学探索

2.1 实践设计思路

针对以上问题,本文秉承“以学生为中心”理念,充分考虑学生现实情况,提出“线上线下结合、课内课外互补、基础综合配套、自主分组并行”的全方位全过程课程实践设计思路,以此加强学员实践力度、补充实践梯度、丰富实践形式,达到提升实践能力、提高教学效果目的。设计思路见图1。

⑴ 线上线下结合

线上实践,依托EduCoder实践教学平台[9]。线上实践主要分两大块:①对于简单实验,布置线上作业,依托EduCoder自动评测、统计过程数据等功能,教师充分了解学生实验情况,及时进行辅导答疑;②对于综合实验,借助EduCoder平台闯关式实验设计功能,拆解成多个小关卡,层层递进,步步引导,帮助学生逐步突破难点。

线下实验,依托VisualStudio集成编程环境。对于复杂算法,要求学生学会调试程序[10],借助工具跟踪、分析程序运行过程。线下实践主要分两大块:①作为线上实践的辅助手段,线下调试算法;②对于项目式课程大作业,线下查阅文献、分析问题,设计算法,编程实现,调试运行。

⑵ 课内与课外互补

课内实践分理论课和实验课。理论课上,在知识点理论原理学习完后,教师通过提问启发、程序填空等方式,引导学生推导关键代码。讲解完冒泡排序算法原理后,引导学生思考冒泡排序需要几重循环来推出算法框架,并启发学生根据算法原理演示过程推导循环边界。让学生从整体到细节逐步填充代码,逐步实现代码。理论课内实践,缩短了理论实践的间隔,降低了实践难度,理论学习更扎实。有了理论课实践的基础,实验课实践可设置两个目标:①验证算法代码,巩固理论知识;②将基础实验拓展提升,将多个理论知识点综合,如冒泡排序的基本实现、改进、应用综合。

课外实践,通过课后作业形式,对课上的实践进一步扩展、补充,将学习从课内延伸到课外。课内解决基础的,核心的算法,课外调动学生的开创思维,培养学生利用知识解决实际问题的能力。课内课外互补,既帮助学生夯实基础,又引导学生创新挑战。

⑶ 基础与综合配套

在实践内容上,基础和综合实践配套,由浅入深,层层递进。理论课上和线上作业,安排基础实验,帮助学生消化巩固理论知识。实验课上,安排中等难度的综合实验,达到对理论知识综合理解和简单应用的目的。大作业上,安排和实际贴近的项目式实践,达到学以致用,创新进取的目的。通过基础和综合实践配套,帮助学生夯实基础、突破难关、挑战高度、锐意创新。

⑷ 自主与分组并行

在实践形式安排上,自主和分组并行。对于基础的、简单的实验,学生独立自主完成,培养学生独立思考的能力。对于融合多个知识的贴近实际应用的项目式大作业,以3~5人一组,分组进行综合实践,要求每组提交设计思路、分工安排、程序讲解、运行演示和组内人员贡献度互评。综合实践实现方法多样,解决方案不一,不仅能培养学生查阅资料、分析问题、算法设计、编程实现等能力,还能培养学生团体意识、职业道德和沟通表达能力。

各章节线上线下、课内课外、基础综合、自主分组实践具体安排见表1。

2.2 课程考核设计

课程考核是课程实施的重要一环,在学生学习过程中起着指挥棒的作用,实践教学思路能否真正落地实现,能否达到预设目标,课程考核方式起着至关重要作用。本文根据实践教学思路,设计了图2过程性课程考核方式。

学生最终成绩由三部分构成:平时、实验和期末成绩。平时成绩占10%,主要考核点为学生课堂表现和作业,其中课堂表现重点考查课内启发式编程的活跃程度。实验成绩占30%,考核点为课内线上实验和分组实践。课内实验依托EduCoder平台统计得分,统计数据包含学生实验关卡成功与否、关卡所用时间、算法运行时间、代码查重情况、测试次数等。分组实践考评学生实践作品的算法设计思路、代码质量、运行结果、总结汇报情况,其中同一组中每个成员得分差异主要考虑组内人员贡献度排名。终结性考核占60%,形式为半开卷笔试。学生可将经典算法原理,过程抄写到纸上带进考场,以此側重学生对算法理解、应用、编码实现的考核,而不是算法记忆的考核,在笔试中,加大算法编程实现的比例,注重学生实践能力考核。

3 实践教学实施过程及效果

3.1 全方位实践教学实施

数据结构与算法课程知识点多而杂,如果没有从整体高度引导,学生学习容易管中窥豹,对自身的学习目标和当前达成程度没有明确定位。针对这个问题,为落实实践教学的效果,实施时采用了能力达成梯度模式,将能力达成和教学实施环节一一对应,使学生能明确定位自己学习情况和提升方向,实施过程如表2所示。

以线性表章节为例,前导知识为数组、指针。课前布置EduCoder基础作业,推送相关慕课,学生自行完成;理论课上,学习顺序表和链表存储原理,课上引导学生完成线性表的添加、删除、定位、创建等基本操作关键代码;理论课后布置作业,让学生根据课上学习的各个操作代码,写出完整的顺序表和链表结构,并补全实现课上未讲的操作,学生通过作业可以从整体上掌握顺序表和链表的实现;实验课安排链表反转、线性表合并等基础应用题目,这些题目代码可以借鉴课上学习的代码,适当修改即可,避免学生从零开始实现算法产生的畏难情绪,同时让学生在掌握线性表后能做到一定程度扩展、应用;在整个章节学习完后安排一元多项式相加或手机通讯录等实际案例的分组综合实践,锻炼学生对已学知识的综合应用能力。

3.2 实践教学实施效果

数据结构和算法课程在2022年实施全过程全方位实践教学设计,与2021年对比发现,学生学习积极性提高,动手实践能力增强,基础自主实验完成度好,综合实践汇报体现出学生对数据结构和算法的深刻理解和灵活运用。与2021年相比,学生期末考试成绩平均分由76.77上升到79.77分,提升了3.9%。其中,两次考试编程实践题均占30分,此部分得分,2022年均分较2021年提高了25%,教学效果提升明显。

4 结束语

数据结构与算法课程,理论性强,对编程实践能力要求高。本文贯彻落实“以学生为中心”的教学理念,从学生实践角度分析出此课程的问题。为解决学生编程基础差、实践开展难的问题,提出“线上线下结合、课内课外互补、基础综合配套、自主分组并行”的全方位全过程课程实践思路,帮助学生更好筑牢理论知识,更顺利地将理论知识应用到实际问题中。从实施的结果看,此思路调动了学生学习积极性,提高了学生学习兴趣,加强了学生的实践编程能力,对教学效果提升较明显。

参考文献(References):

[1] 李嘉曾.“以学生为中心”教育理念的理论意义与实践启示[J].中国大学教学,2008(4):54-56.

[2] 赵炬明,高筱卉.关于实施“以学生为中心”的本科教学改革的思考[J].中国高教研究,2017(8):36-40.

[3] 张铭,耿国华,陈卫卫,等.数据结构与算法课程教学实施方案[J].中国大学教学,2011(3):56-60.

[4] 刘莞玲,吴英杰,傅仰耿,等.新工科背景下算法与数据结构实践教学改革探索[J].计算机教育,2021(7):73-76.

[5] 陈仕军,陶茂虎,王前.基于python语言版“数据结构与算法”的教学改革与实践[J].湖北工程学院学报,2022,42(3):58-62.

[6] 付菊,孙连山,赵晓,等.基于能力培养的数据结构与算法实验教学模式探索和实践[J].计算机教育,2021(3):99-103.

[7] 梁冰,冯林,杜猛,等.数据结构与算法课程面向实践的教学方法研究[J].计算机教育,2019(11):73-76.

[8] 张俭鸽,侯雪梅,杨奎武.数据结构与算法线上线下混合教学模式探索[J].计算机教育,2022(6):74-78.

[9] 尹刚,王涛,余跃,等.EduCoder:大规模开放在线实践教学探索与应用——疫情防控下的在线实践教学新途径[J].软件导刊,2020,19(10):1-7.

[10] 肖璞.数据结构课程算法实践能力强化方法的研究[J].计算机时代,2020(11):95-97,102.

猜你喜欢
过程性考核以学生为中心实践教学
应用型法学课程过程性考核方式探析
“以学生为中心”食品卫生与安全课程教学模式的构建
浅谈“以学生为中心”的教学法
辨析判断“以学生为中心”的教学标准应是教学质量
信息化背景下高职学生自主学习能力提升研究
“以学生为中心”理念下的大学图书馆建设
茶学专业校企合作实践教学探索
《电气工程毕业设计》 课程的教学设计
高职院校商务礼仪课程教学改革探索刍议
《数据库高级应用》教学创新方法研究