“数据结构与算法”迭代式教学探索与实践
2023-10-04杜康宁
杜康宁
摘 要文章以通信工程专业为例,阐述了数据结构与算法课程教学改革对提升非计算机专业大学生编程能力的重要性,提出了迭代式案例教学的课程设计思路,结合现代教学设计优化原则,如OBE、SPOC、BOPPS与案例教学,设计了打车系统教学案例体系,通过对课堂授课方式进行改革,从而提高学生的逻辑思维能力和编程能力。
关键词迭代式教学;数据结构与算法;案例式教学
中图分类号:G424 文献标识码:A DOI:10.16400/j.cnki.kjdk.2023.21.037
Exploration and Practice of "Data Structure and Algorithm" Iterative Teaching
DU Kangning
(School of Information Communication Engineering, Beijing Information Science and Technology University, Beijing 100101)
AbstractTaking communication engineering major as an example, this paper expounds the importance of data structure and algorithm course reform to improve the programming ability of non-computer major students. Then, the course design idea of iterative case teaching is proposed. Finally, combining with modern teaching design optimization principles including OBE, SPOC, BOPPS and case-based teaching, this paper designs teaching case system based on taxi system. Reform and practice of classroom teaching methods enhance students' logical thinking ability and programming ability.
Keywordsiterative teaching; data structure and algorithm; case-based teaching
1 问题提出
数据结构与算法是通信工程等信息类相关专业的一门重要的专业核心课。该课程同时配备有数据结构与算法课程设计实训环节。数据结构与算法课程的教学目标是培养学生的编程能力,让学生具备“发现问题,分析问题,解决问题”的能力。通过数据结构与算法这门课,期望构建通信工程专业本科生的编程基础,让学生具备编程思想,并能用编程解决实际问题。
通过对电子信息类专业毕业后3―5年学生的调查[1],毕业生认为影响就业的五大关键能力是:电脑编程、解决复杂问题、谈判技巧、主动学习以及有效的口头沟通能力。值得注意的是,这五大能力中,只有电脑编程属于专业技能,其余四项都是非专业的通用技能。调查还发现,绝大部分电子信息类毕业生的编程能力是在就业后参加实际工程项目中建立起来的,在毕业时仍然处于“欺软怕硬”(软件编程不会的同时又惧怕硬件设计)的状态。就当前企业对软件开发人才的需求进行调研,发现从事软件开发工作的人员中70%是非计算机专业[2]。综上所述,尽管社会对具备编程能力的非计算机专业人才存在巨大缺口,但目前非计算机专业的绝大多数毕业生并不具备编程能力[3]。为分析通信专业毕业生存在编程能力不足的原因,本文对比了计算机专业和通信工程专业数据结构与算法课程的前期先导课程,发现在计算机专业的培养计划中,数据结构与算法前期先导课程十分丰富,经过前期丰富的课程打牢基础,学生后续对数据结构与算法的掌握就更加容易;而通信工程专业的先导课程非常少。由此本文发现编程训练关系着学生编程思维的构建与编程能力的提升,而缺乏充分的编程训练是非计算机专业大学生编程能力薄弱的主要原因。
此外,当前的数据结构与算法课程教学往往以知识体系为出发点,重点在于教学内容,课程目标更多地考虑了知识的完整性,而非学生在学习课程后应具备的能力。为此,通过优化数据结构与算法课程的教学方式,让学生在不增加课上学时的条件下具备编程能力已成为通信工程专业教学改革的重点工作。
迭代式案例提供了可运行的系统,降低了学生上手编程的门槛,将实践拆分为多个阶段的任务,降低了每个阶段的难度,学生能够在每次完成一个小功能后体会到获得感,激发其对编程的兴趣。因此,课程组提出数据结构与算法的迭代式案例教学,设计了打车系统教学案例体系,以迭代的方式将教学案例与课程知识点进行一一对应,提高学生的软件编程能力。
2 迭代式教学设计的优化原则
本文以OBE、SPOC、BOPPPS与案例教学作为迭代式教学优化设计的四大基本原则,开展迭代式教学探索与实践。
首先,成果导向教育(Outcomes-Based Education,OBE)是一种教育模式,旨在培养学生获得成功所需的知识、技能和素质[4],而數据结构与算法的直接成果就是要让学生具备编程的思想与能力。
其次,小规模限制性在线课程(Small Private Online Course,SPOC)[5]通过将教学、视频等元素进行有机结合,为学习者提供了更全面、深入的学习体验。通过选用优质的数据结构与算法SPOC课程让学生进行学习,再辅助现场的案例实践探索与讨论更能够提升学生的课程参与度。
此外,BOPPPS教学模式[6]强调学生应积极全面地参与学习,而非被动接受。该模式还特别注重获取学生的即时反馈,以便调整接下来的教学活动,从而能够鼓励学生更积极地投入学习中,激发他们的学习兴趣。本文对数据结构与算法课程的改革将全面引入BOPPPS的设计理念,优化课程的过程设计。
最后,案例教学在我国被普遍接受,各个高校针对提高非计算机专业大学生的编程能力设立了大量的案例教学项目,但对大学生编程能力的提升并不明显。为此需要将精英教育和大众教育进行结合,同时还需要以科教融合理念为指导,探索新的案例教学模式,激发学生对编程的兴趣,在不增加学时的条件下提升学生的编程能力。
3 迭代式教学设计的优化实践
根据以上原则,围绕BOPPPS的核心设计理念,基于数据结构与算法迭代式探索与研究的建设目标如下:第一,打造以工程实践为导向的迭代式案例教学,通过工程实践助力提升学生的编程能力;第二,构建科教融合为理念的教学案例体系,注重理论教学与实际应用结合,实现产学研相结合;第三,探索SPOC线上线下混合式教学模式,满足不同能力学生的个性化学习需求,实现项目式翻转课堂。
3.1 迭代式案例教学
将工程实践设定为数据结构与算法课程教学改革的目标导向,改革的目标就是通过工程实践让学生具备编程能力。北京信息科技大学通信工程专业数据结构与算法课程设置在大一第2学期,学生的编程基础薄弱,在刚进行编程实践时遇到一个困难后就无法继续往下进行,从而导致在还不了解编程前就放弃了编程的学习。
为此,课程组借鉴软件开发中“迭代”的思想建立教学案例,并在学生参与实践的过程中不断优化教学案例。区别于普通的教学案例,本文提出的迭代式案例从整体而言是一个真实且完整的编程项目,该项目功能的编程实现需要运用近乎全部数据结构与算法课程的核心知识点并贯穿整个教学过程。案例的“迭代式”体现在两个方面,一方面是需要将软件的功能拆分成较小的功能单元,以课下作业的形式让学生编程逐项实现,并在每次验收作业与课堂讲解时调整下次要完成的内容,通过贯穿一学期的教学历程让学生能够完全替代老师提供的动态库,能够编写完整的案例程序。“迭代式”另一个方面的体现在于根据每学期学生实践过程中遇到的困难和对编程掌握的程度,迭代循环地调整案例的功能。
另外,实施迭代式案例需要利用课堂、校外实训基地、校内实验室、众创空间以及学生创新实践中心等平台。按照“基础实践、专业实践、综合实践、创新实践”四个层级,构建了如图1所示的教学体系结构。将案例融入理论课程和课程实验,让学生掌握基本理论并具備初步编程能力,并结合课程设计、专业创新设计、学科竞赛与课外科技活动让学生的编程能力逐渐增强。
3.2 打车系统教学案例体系
当代大学生对学习内容的要求逐步提高,更加关注真实的项目中遇到的问题。针对人才培养目标和软件工程专业的毕业要求,更应在数据结构与算法课程的教学中强调学生实践能力和工程技能的提升。因此,必须在教学内容中做出调整,不再以基础理论和算法为主,而是在课程设计中加入更多利用所学知识和技能解决实际问题的案例,强调知识的应用性。
遵循“理论知识要够用且实用”的原则,对传统的教学内容进行了重新构建和筛选,剔除了部分理论性强但实际应用较少的数据结构(如广义表等)。课程组利用在科研领域的优势,选择了更易于理解需求的打车系统作为典型案例,并将其与数据结构与算法的相关理论知识有效地结合起来,以项目为核心,重塑了课程的教学内容。设计了打车系统教学案例体系,该体系分为五个阶段:第一阶段通过对线性表的更新、插入等操作完成对系统用户的注册登录以及用户信息的修改等功能;第二阶段添加订单类,输入打车起点与终点,通过栈和队列结构实现对乘客打车的排队效果,附带讲解串和数组的设计和实现思路;第三阶段在系统中添加地图数据,讲解树和二叉树基础知识和设计,构建二叉树实现按层检索乘客位置,并在此基础上介绍二叉排序树与赫夫曼树的应用;第四阶段使用图的知识构建接单距离图,实现司机对乘客打车信息的查找和排序,根据附近订单位置和状态接单;第五阶段通过地图数据建立成熟路径图,系统根据订单信息,计算起止点之间的最短路径及开销,并且行程中乘客可以实时查看当前行车路线导航、里程、时间以及费用等信息。多个阶段学习算法与数据结构中的表、队列、树与图等知识。
3.3 线上线下混合教学模式
数据结构与算法课程不仅需要让学生考试考得好,还需要能够熟练地编写程序。在当前的环境下,高校正在减少专业课程的授课时间。考虑到学生的主动性、专业兴趣以及学习能力等方面存在的差异,为了确保在减少课程时间的同时保持教学质量,并满足不同能力学生的个性化学习需求,课程组正尝试结合一题多解的策略,探索采用SPOC线上线下混合教学模式。在此模式下,使用数据结构与算法课程的优质在线资源,将通用知识点的教学部分移到线上进行,同时在线下课堂以案例讲解和讨论为主,以提高教学质量。
OBE的核心理念是从传统的“教室、教师、教材”中心向新的“学生、学习、学习效果”中心转变。在SPOC混合教学模式中,线下的实体课程采取项目式翻转课堂,将课堂掌控权交给学生,利用项目导向的教学方法来引领学生主动参与、自行探索和动手实践,将教学重心从传授知识转向培养能力,实现了真正以学生为中心,注重学习效果的目标。以“项目案例需求分析―选择数据结构―算法设计―算法评价―算法优化―项目实现”的流程为主轴,实行项目式翻转课堂,通过课堂提问、查阅文献、项目分析、小组讨论、编程实践等多种教学方式,鼓励学生主动参与课堂,进行思考和编程操作。同时,根据学生认知水平和专业技能的不同,灵活调整教学策略,采用分层次、分级别的教学方法。以打车系统为案例,借助迭代式开发思想,将复杂的打车系统功能开发拆分成“登录注册模块—个人信息模块—订单管理模块—出行模块”进行阶段迭代式开发。在每个功能模块的首次课堂上,教师会构建情景,并以模块功能为背景引入新的课题,以此激发学生的学习兴趣。教师总结归纳,要求学生针对具体技术需求,课前预习在线课程,课中分组讨论、汇报项目需求,从而实现线上线下课程的交叉融合。同时结合一题多解的教学模式,培养学生的思维与解题能力,起到巩固、深化、拓宽、综合应用知识的作用。通过一个个阶段的模块功能开发,从课程理论知识来说,每个模块的功能充分结合数据结构与算法中的重要知识点,同时将知识点进行实际应用,实现对知识点的充分掌握与应用;从工程实践上来说,整体上实现迭代式开发,有效串联所有功能,达成开发整个复杂打车系统的最终目标,实现了理论与工程实践的充分结合。
4 结语
本文结合“数据结构与算法”课程的教学实践,对现阶段教学中存在的问题进行深入分析与探究,阐述了一种基于OBE理念的数据结构与算法的迭代式案例教学,旨在根据学生上一阶段案例学习和知识点掌握的情况,动态调整下一阶段的教学案例。以迭代的方式将教学案例与课程知识点进行一一对应,通过案例教学体系贯穿全部授课知识点,使学生在完成案例学习的同时,将知识体系融会贯通。此种教学理念与方法意义深远,既能够以迭代式案例激发学生的学习兴趣,开展实践教学,同时,又以科教融合为理念,工程项目为推力,促进创新实践。
参考文献
[1]华臻,王昕,魏广芬.电子信息类一流专业产教融合协同育人机制探索[J].教育教学论坛,2021(47):108-111.
[2]蒋慧琳.当前就业需求下的通信工程专业人才培养探究[J].就业与保障, 2021(13):108-109.
[3]刘承波.把握发展方向,提高创新能力,以服务国家战略为根本加快“双一流”建设步伐[J].人民论坛,2020(25):42-45.
[4]郭红,陈维民,刘胜辉.工程教育专业认证背景下OBE人才培养模式研究[J].文化创新比较研究,2021,5(30):95-98.
[5]董美霞,邱泽敏.SPOC模式下《数据结构与算法》课程教学改革探究[J].科幻画报,2021(10):69-70.
[6]宋沁峰,倪龙飞,李晶晶.基于BOPPPS模式的编程类课程项目驱动式教学改革与研究[J].电脑知识与技术,2021,17(21):225-226,254.