新工科驱动的非计算机专业数据结构课程教学模式探讨
孙玉娥1,高珊2,李凡长2
(1.苏州大学 轨道交通学院,江苏 苏州;2. 苏州大学 计算机科学与技术学院,江苏 苏州)
摘 要: 随着教育部新工科建设逐步推进,围绕人工智能、大数据等计算机领域新兴方向与其他工科专业交叉融合的进一步深入,复合专业培养新模式受到了广泛的重视。数据结构作为计算机相关专业极为重要的核心课程,对其他非计算机工科专业学生在新工科专业背景下的学习同样起着重要的辅助支撑作用。分析了目前数据结构课程在非计算机专业开设过程中存在的实际问题,提出了具有针对性的教学模式,有效提升了学生学习兴趣及教学质量。
关键词: 数据结构;非计算机专业;新工科;教学模式
一 引言
美国计算机学会(American Association for Computer Machinery, ACM)以及电气电子工程师学会下设的计算机学会(IEEE Computer Society, IEEECS)早在2001年就发布了计算机科学课程体系规范(Computing Curricula 2001, CC2001)用以规范计算领域国际化本科课程体系的设计[1]。计算机科学自身的特点决定了在课程体系设计过程中需要考虑到学科本身日新月异的发展以及多领域融合等特性,故在CC2001发布之后,ACM及IEEE又分别发布了CS2008,CS2013课程体系[2]。在约20年的时间里,课程体系历经多次修订,数据结构作为核心课程的地位一直没有发生任何改变。该课程作为计算机专业核心课程,对本科学生的计算思维能力训练以及动手编程能力的培养都起着至关重要的作用。尤其是数据结构课程在整个计算机科学课程体系中起到了承上启下的关键作用,若学生能够在该课程学习过程中打下坚实基础,会对后续诸如《操作系统》、《数据库原理》、《人工智能》、《软件工程》等几乎所有计算机领域专业课程的学习产生极大的帮助。
2017年7月教育部发布了《教育部高等教育司关于开展新工科研究与实践的通知》,在通知中明确希望高校围绕新工科进行研究,进而深化工程教育改革,推进新工科的建设与发展[3]。就目前来说,广大教育工作者对于新工科的定义及主要内涵还存在一定的争论,但从字面理解新工科的目标一定是指向近年来随着技术更新而兴起的各种新兴工科专业,如人工智能、大数据等原来各高校没有开设的专业,当然新工科也包括了传统工科相关专业的升级及相互融合。这些都需要引入新的教学理念以及全新的培养模式支持,从而进一步提升本科教学质量。
目前国内已有多所知名高校对原有各相关工科专业进行了升级改造及专业融合,目标主要是围绕人工智能、大数据、及物联网等计算机领域新兴方向与本专业原有内容进行结合并加以拓展。数据结构课程在电子信息工程、信息管理、机电工程以及机械工程等工科专业同样起着至关重要的作用,课程所涉及的相关技术可以为不同专业提供辅助支撑[4,5]。基于此,本文将着重探讨在新工科日益引起关注的今天,作为一门计算机专业极为重要的基础课程《数据结构》在其他非计算机工科专业开设过程中有效提升教学质量的具体手段。
二 非计算机专业数据结构课程教学现状总结
目前数据结构课程在各非计算机专业课程建设中的地位普遍不高,仅作为一般基础类必修课程,与专业核心课程受到的重视程度仍有差距。笔者根据多年来授课经验,总结出了非计算机专业数据结构课程教学过程中存在的三点问题。
课件和录像的联合使用实际组成了若干个“微课”,作为翻转课堂的基础和“互联网+”模式的资源支撑,改善了传统教学模式的枯燥单一,提高了学生的学习兴趣。与之前的教学相比,实验效率提高,实验失败率降低。
(一)学生程序设计基础薄弱
非计算机专业学生在入学时常常会通过自己专业相关有经验的教师了解本专业相关课程的要求以及重要性程度,而这些教师对于数据结构这类计算机专业课程内容却知之甚少,甚至会给予学生一些错误的信息,比如“该课程就是程序设计”,“这门课程非常难学”等等错误观念。由此造成了学生在学习该课程之前就有了畏难的情绪,学习积极性不高。
实施科研案例教学对任课老师提出了更高的挑战,整个教学过程中要求任课教师绝不能拘泥于课本上有限的知识点,任课教师需要对开设课程专业相关前沿技术具备足够的敏锐性,能够发掘出前沿技术中与数据结构课程知识点相关的交叉内容,并以通俗易懂的方式为同学讲解。
近年来,为了切实深化本科人才培养模式改革、提高教育质量、培养创新型人才,很多学校引入了本科生全程导师制。导师制旨在倡导高水平教师更多地参与本科生指导工作,建立新型师生关系,挖掘有科研潜力且有意愿继续深造的同学尽早进入导师实验室从事基础科研活动。很多学生在加入到导师实验室后,会误以为本科阶段在课堂上学习到的知识非常陈旧,进而失去学习相关基础课程的兴趣。出现该问题的主要原因来自于很多基础课程任课教师照本宣科,多年重复讲述相同的内容,无法将课本里的知识点与最新的研究成果结合。基于此,笔者提出了基于科研案例的教学模式的尝试。
1) 目前中国油库固定消防系统立足于扑救储罐初期火灾和密封圈雷击火灾,随着国内油库建设规模扩大,应配套扑灭大型储罐全面积火灾的消防设备,提高泡沫炮的泡沫供给强度和改善泡沫喷射方式是快速灭火的关键,也是大型储罐灭火技术的发展方向。
(二)学生对课程重要性认识不够且学习积极性偏低
目前主流数据结构教材都是依赖于某种特定程序设计语言对知识点进行介绍,其中以C,C++,JAVA版本的数据结构教材最为常见。但是无论教学过程采用哪种语言,扎实的程序设计功底是理解掌握各个知识点的基础。目前我国很多高校非计算机专业程序设计相关课程在教学过程中受限于课时量以及授课对象个体能力及努力程度上的差异,很多重要知识点没有涉及或者学生理解深度不够。以C程序设计语言课程教学为例,在课程学习结束时很多非计算机专业学生仅仅掌握了C语言的基础语法以及指针的基本概念,对于指针的高级应用及结构体相关知识都未曾涉及;据笔者了解很多高校非计算机专业C++课程教学仅仅涉及基础语法、封装、继承等基本概念,而对于多态、重载以及泛型等知识点介绍严重不足。由于编程基础严重欠缺,导致了数据结构实验环节学生不知道从何下手。
(三)理论及实验课时偏少
我们以二叉查找树(BST, Binary Search Tree)为例讲解我们在科研案例教学模式中作出的尝试。我们结合了Bruce Reed在计算机领域顶级期刊Journal of ACM发 表 的《The Height of a Random Binary Search Tree》[10]作为辅助教学材料为同学讲解相关知识点最新的研究进展。通过阅读相关文献,学有余力的同学了解了对于包含n个节点的随机二叉查找树的期望树高可以推导得出E(Hn) = αln n-βlnln n+O(1), 其中α=4.311, β=1.953的结论。
三 非计算机专业数据结构及算法课程教学模式设计
基于兴趣驱动的教学模式在之前的研究中已经广泛被教育工作者提及[8],近年来兴起的翻转课堂[9]也被证明是一种提升学生自主学习的积极尝试,被广泛应用于大中小学课堂。但综观以上研究后不难发现,大部分基于兴趣驱动的教学模式研究仍停留在理论阶段,缺乏切实可行的教学案例供数据结构课程教师参考。鉴于此,我们试图提出一种适用于非计算机专业工科学生的基于兴趣驱动的教学模式。
(一)兴趣驱动教学模式
鉴于以上总结得到的非计算机专业数据结构课程教学过程中存在的种种问题,我们拟结合新工科建设发展的需求,结合目前非计算机专业现状提出一系列具有创造性思维的教学模式,以提高学生学习的自主性,通过提升学生的学习兴趣切实提升教学质量。需要说明的是,诸如引入通俗易懂实例进行教学的类比教学模式等经典教学模式已有很多相关介绍[6,7],在这里我们就不一一赘述。
我们仍以轨道交通学院轨道交通信号控制专业数据结构课程教学为例讲解我们在课程教学过程中作出的尝试,希望能够起到举一反三的作用。对于非计算机专业同学而言,最大的兴趣来源于如何应用数据结构课程所学知识解决本专业所面临的实际问题。例如,动态频谱分配是下一代智能轨道交通车地无线通信的重要解决方案之一,而动态最优频谱分配问题的本质可以规约到数据结构及算法中提及的NP-hard问题,我们可以通过贪心解决方案求出问题的近似最优解。NP-hard问题是与数据结构课程第一章算法时间复杂度紧密相关的一个概念,这类问题普遍被认为无法在多项式时间内获得问题的精确解。而贪心算法的思想在数据结构图这一章被多次提及,例如Dijkstra最短路径求解算法、Prim、Kruskal最小生成树求解算法、Huffman编码算法等方案都是贪心思想的体现。动态最优频谱分配是轨道交通专业前沿性问题,当学生意识到这些看似没有联系的知识点可以求解本专业前沿问题后,学习的兴趣及热情自然而然会被极大调动。随后我们再给出求解该问题的基本函数功能和函数原型以及核心函数的设计,学生就会自发编写代码对问题进行求解。整个过程学生不仅掌握了贪心算法设计思想,对复杂问题求解的时间复杂度也有了最为直观的认识,还在潜移默化中提升了程序设计能力。
(二)基于科研案例的教学模式
习近平总书记强调,现在我国经济已由高速增长阶段转向高质量发展阶段,要坚持新发展理念,使长江经济带成为引领我国经济高质量发展的生力军。推动长江经济带农业农村绿色发展,唱响质量兴农、绿色兴农、品牌强农主旋律,加快推进农业由增产导向转向提质导向,大力推进质量变革、效率变革、动力变革,有利于促进长江经济带农业高质量发展,推进生态宜居的美丽乡村建设,把绿水青山变成金山银山,实现生态美、百姓富的有机统一。
之前提及苏州大学计算机专业数据结构课程的课时量为144课时,但目前以笔者了解到的情况,大部分工科专业数据结构课程设置的课时量基本集中在54课时或72课时,其中实验环节仅分配9课时或18课时。讲授课时以及实验课时偏少会导致学生在程序设计基础不足的前提下对知识点无法做到积极自主的学习,只能依赖有限的课堂时间接受知识。久而久之,学生对于数据结构课程相关知识点的理解都会浮于表面,而无法学以致用。
杨步伟一生酷爱菊花,赵元任在恋爱之初到医院看望杨步伟的时候,曾把杨步伟的一盆大黄菊花一脚踢翻,竟连花盆也踩破了。面对窘境,赵元任忙给自己打圆场:“男人不总要鲁莽一点才像吗?我赔你几十倍好了。”杨步伟以为他不过随口说说,却没想到婚后一赔就是一辈子,以后每逢她的生日和两人的结婚纪念日,赵元任都风雨无阻地送她一盆黄菊花,并在长达六十年的牵手中从未缺席过。
(三)适度延伸的教学模式
对于计算机专业学生,数据结构属于算法设计与分析课程的先修课程。算法设计与分析同样是计算机相关专业的核心课程,扎实的算法设计与分析功底是从事计算机相关各种工作的坚实基础。在非计算机专业学生求职过程中,算法基础也是许多知名公司面试会涉及的内容;从科研角度来看,算法设计与分析是从事人工智能相关跨学科领域研究必须掌握的内容。由于非计算机工科专业学生间的基础差异较大,部分程度较好的学生在学习过程中受限于课程设置缘故,尽管能力完全达到甚至超出了计算机专业学生水平,却无法接触到后续课程。鉴于此,本人在教学过程中提出了针对学生能力差异化的适度延伸教学模式。
蔬菜产业结构调整,没有根本性改变传统的生产经营方式,蔬菜生产在“种什么”、“种多少”、“卖到哪”、“卖给谁”是遇到的常见问题[3],缺乏市场信息,种植的蔬菜雷同,导致同类蔬菜在市场上的相对过剩。同时,由于上一年某种蔬菜的畅销和高涨,下一年大量追逐种植,有可能导致价格下跌,影响种植生产的积极性。例如:2016年12月,油白菜种植面积小,价格高,2017年12月,大量种植和上市,导致价格低廉、积压等造成一定损失。
我们以时间复杂度以及排序这两章的知识为例进行讨论。大部分教师在时间复杂度相关内容的讲解过程中只会涉及O记号,但对O记号的物理含义却不加以深刻阐述。以至于大部分计算机专业学生在学习完数据结构课程后甚至无法判定“在不加以特殊说明的情况下,算法的时间复杂度是指算法在最坏情况下的时间复杂度”的表述是否正确。但如果在时间复杂度相关内容的教学过程中,课程教师能够将《算法导论》中对渐进上界O记号的数学表述(详见定义1)及图示,以及渐进紧确界Θ和渐进下界Ω符号的涵义加以讲解并进行对比,学生对于该部分知识的理解将会更加透彻。在排序章节涉及排序算法繁多,每一种排序算法均对应最好、平均以及最坏三种情况下的时间性能分析。以快速排序为例,快速排序的平均时间复杂度为1.39nlgn+O(n)∈ O(n2),而在最好情况下O(nlgn)∈ O(n2)同样成立,故我们才可以使用渐进上界O记号去涵盖最好、平均、最坏三种情形下的时间复杂度描述。基于此,我们认为适度延伸的教学模式可以极大弥补非计算机专业学生在学习过程中知识点的缺失,使得学生理解问题更加深刻。
定义1: 若g(n)和f(n)是定义在正整数集合上的两个函数,则f(n)=O(g(n))表示存在两个正的常数c和n0,使得当n≥n0时都满足0≤f(n)≤c·g(n).
四 结语
围绕计算机与其他工科专业交叉融合的深入,数据结构作为计算机专业核心课程在各非计算机工科专业建设中同样起到了至关重要的作用。本文针对非计算机专业数据结构课程教学中存在的实际问题,提出了兴趣驱动、科研案例以及适度延伸等教学模式,并证明在教学过程中能够有效提升非计算机专业学生学习兴趣及教学质量。
参考文献
[1] Wang Z. The Research on Teaching Ideas of “Data Structure and Algorithm” in Non-computer Major[M]//Advances in Computer Science and Education. Springer, Berlin, Heidelberg, 2012: 249-254.
[2] https://www.acm.org/binaries/content/assets/education/cs2013_chinese.pdf
[3] http://www.moe.gov.cn/srcsite/A08/s7056/201707/t20170703_308464.html
[4] 徐新. 基于案例驱动的数据结构课程教学方法研究[J]. 计算机教育 , 2019, (3): 44-47.
[5] 李凡长等.多维度协同教育理论与方法[M].科学出版社.2016.
[6] Lawrence, R. Teaching data structures using competitive games[J].IEEE Transactions on Education, 2004,47(4): 459-466.
[7] Lokare, V. T., & Jadhav, P. M. A Holistic Approach for Teaching Data Structure Course in the Department of Information Technology[J]. Journal of Engineering Education Transformations,2017.
[8] 齐金山,郭立强.数据结构课程教学模式探讨[J].电脑知识与技术 .2018,(20):94-95.
[9] 刘小晶,钟琦,张剑平.翻转课堂模式在“数据结构”课程教学中的应用研究[J].中国电化教育.2014,(8):105-110.
[10] Reed, B. The height of a random binary search tree[J]. Journal of the ACM (JACM), 2003, 50(3):306-332.
本文引用格式: 孙玉娥,等.新工科驱动的非计算机专业数据结构课程教学模式探讨[J]. 教育现代化 ,2019,6(77):177-179.
DOI: 10.16541/j.cnki.2095-8420.2019.77.059
基金项目: 江苏省高等教育教改研究“重中之重”课题“多学科交叉复合的“人工智能+X”新兴工科专业建设探索与实践”(2017JSJG001),国家自然科学基金面上项目(61672369)。
作者简介: 孙玉娥,女,副教授,研究方向为物联网、信息安全;李凡长,男,教授,研究方向为机器学区,教育理论研究。
通讯作者: 高珊,女,讲师,研究方向为教育理论。
标签:数据结构论文; 非计算机专业论文; 新工科论文; 教学模式论文; 苏州大学轨道交通学院论文; 苏州大学计算机科学与技术学院论文;