SCI论文(www.lunwensci.com):
摘要:随着教育部新工科建设逐步推进,围绕人工智能、大数据等计算机领域新兴方向与其他工科专业交叉融合的进一步深入,复合专业培养新模式受到了广泛的重视。数据结构作为计算机相关专业极为重要的核心课程,对其他非计算机工科专业学生在新工科专业背景下的学习同样起着重要的辅助支撑作用。分析了目前数据结构课程在非计算机专业开设过程中存在的实际问题,提出了具有针对性的教学模式,有效提升了学生学习兴趣及教学质量。
关键词:数据结构;非计算机专业;新工科;教学模式
本文引用格式:孙玉娥,等.新工科驱动的非计算机专业数据结构课程教学模式探讨[J].教育现代化,2019,6(77):177-179.
一 引言
美国计算机学会(American Association for Computer Machinery,ACM)以及电气电子工程师学会下设的计算机学会(IEEE Computer Society,IEEE-CS)早在2001年就发布了计算机科学课程体系规范(Computing Curricula 2001,CC2001)用以规范计算领域国际化本科课程体系的设计[1]。计算机科学自身的特点决定了在课程体系设计过程中需要考虑到学科本身日新月异的发展以及多领域融合等特性,故在CC2001发布之后,ACM及IEEE又分别发布了CS2008,CS2013课程体系[2]。在约20年的时间里,课程体系历经多次修订,数据结构作为核心课程的地位一直没有发生任何改变。该课程作为计算机专业核心课程,对本科学生的计算思维能力训练以及动手编程能力的培养都起着至关重要的作用。尤其是数据结构课程在整个计算机科学课程体系中起到了承上启下的关键作用,若学生能够在该课程学习过程中打下坚实基础,会对后续诸如《操作系统》、《数据库原理》、《人工智能》、《软件工程》等几乎所有计算机领域专业课程的学习产生极大的帮助。
2017年7月教育部发布了《教育部高等教育司关于开展新工科研究与实践的通知》,在通知中明确希望高校围绕新工科进行研究,进而深化工程教育改革,推进新工科的建设与发展[3]。就目前来说,广大教育工作者对于新工科的定义及主要内涵还存在一定的争论,但从字面理解新工科的目标一定是指向近年来随着技术更新而兴起的各种新兴工科专业,如人工智能、大数据等原来各高校没有开设的专业,当然新工科也包括了传统工科相关专业的升级及相互融合。这些都需要引入新的教学理念以及全新的培养模式支持,从而进一步提升本科教学质量。
目前国内已有多所知名高校对原有各相关工科专业进行了升级改造及专业融合,目标主要是围绕人工智能、大数据、及物联网等计算机领域新兴方向与本专业原有内容进行结合并加以拓展。数据结构课程在电子信息工程、信息管理、机电工程以及机械工程等工科专业同样起着至关重要的作用,课程所涉及的相关技术可以为不同专业提供辅助支撑[4,5]。基于此,本文将着重探讨在新工科日益引起关注的今天,作为一门计算机专业极为重要的基础课程《数据结构》在其他非计算机工科专业开设过程中有效提升教学质量的具体手段。
二非计算机专业数据结构课程教学现状总结
目前数据结构课程在各非计算机专业课程建设中的地位普遍不高,仅作为一般基础类必修课程,与专业核心课程受到的重视程度仍有差距。笔者根据多年来授课经验,总结出了非计算机专业数据结构课程教学过程中存在的三点问题。
(一)学生程序设计基础薄弱
目前主流数据结构教材都是依赖于某种特定程序设计语言对知识点进行介绍,其中以C,C++,JAVA版本的数据结构教材最为常见。但是无论教学过程采用哪种语言,扎实的程序设计功底是理解掌握各个知识点的基础。目前我国很多高校非计算机专业程序设计相关课程在教学过程中受限于课时量以及授课对象个体能力及努力程度上的差异,很多重要知识点没有涉及或者学生理解深度不够。以C程序设计语言课程教学为例,在课程学习结束时很多非计算机专业学生仅仅掌握了C语言的基础语法以及指针的基本概念,对于指针的高级应用及结构体相关知识都未曾涉及;据笔者了解很多高校非计算机专业C++课程教学仅仅涉及基础语法、封装、继承等基本概念,而对于多态、重载以及泛型等知识点介绍严重不足。由于编程基础严重欠缺,导致了数据结构实验环节学生不知道从何下手。
(二)学生对课程重要性认识不够且学习积极性偏低
非计算机专业学生在入学时常常会通过自己专业相关有经验的教师了解本专业相关课程的要求以及重要性程度,而这些教师对于数据结构这类计算机专业课程内容却知之甚少,甚至会给予学生一些错误的信息,比如“该课程就是程序设计”,“这门课程非常难学”等等错误观念。由此造成了学生在学习该课程之前就有了畏难的情绪,学习积极性不高。
(三)理论及实验课时偏少
之前提及苏州大学计算机专业数据结构课程的课时量为144课时,但目前以笔者了解到的情况,大部分工科专业数据结构课程设置的课时量基本集中在54课时或72课时,其中实验环节仅分配9课时或18课时。讲授课时以及实验课时偏少会导致学生在程序设计基础不足的前提下对知识点无法做到积极自主的学习,只能依赖有限的课堂时间接受知识。久而久之,学生对于数据结构课程相关知识点的理解都会浮于表面,而无法学以致用。
三非计算机专业数据结构及算法课程教学模式设计
鉴于以上总结得到的非计算机专业数据结构课程教学过程中存在的种种问题,我们拟结合新工科建设发展的需求,结合目前非计算机专业现状提出一系列具有创造性思维的教学模式,以提高学生学习的自主性,通过提升学生的学习兴趣切实提升教学质量。需要说明的是,诸如引入通俗易懂实例进行教学的类比教学模式等经典教学模式已有很多相关介绍[6,7],在这里我们就不一一赘述。
(一)兴趣驱动教学模式
基于兴趣驱动的教学模式在之前的研究中已经广泛被教育工作者提及[8],近年来兴起的翻转课堂[9]也被证明是一种提升学生自主学习的积极尝试,被广泛应用于大中小学课堂。但综观以上研究后不难发现,大部分基于兴趣驱动的教学模式研究仍停留在理论阶段,缺乏切实可行的教学案例供数据结构课程教师参考。鉴于此,我们试图提出一种适用于非计算机专业工科学生的基于兴趣驱动的教学模式。我们仍以轨道交通学院轨道交通信号控制专业数据结构课程教学为例讲解我们在课程教学过程中作出的尝试,希望能够起到举一反三的作用。对于非计算机专业同学而言,最大的兴趣来源于如何应用数据结构课程所学知识解决本专业所面临的实际问题。例如,动态频谱分配是下一代智能轨道交通车地无线通信的重要解决方案之一,而动态最优频谱分配问题的本质可以规约到数据结构及算法中提及的NP-hard问题,我们可以通过贪心解决方案求出问题的近似最优解。NP-hard问题是与数据结构课程第一章算法时间复杂度紧密相关的一个概念,这类问题普遍被认为无法在多项式时间内获得问题的精确解。而贪心算法的思想在数据结构图这一章被多次提及,例如Dijkstra最短路径求解算法、Prim、Kruskal最小生成树求解算法、Huffman编码算法等方案都是贪心思想的体现。动态最优频谱分配是轨道交通专业前沿性问题,当学生意识到这些看似没有联系的知识点可以求解本专业前沿问题后,学习的兴趣及热情自然而然会被极大调动。随后我们再给出求解该问题的基本函数功能和函数原型以及核心函数的设计,学生就会自发编写代码对问题进行求解。整个过程学生不仅掌握了贪心算法设计思想,对复杂问题求解的时间复杂度也有了最为直观的认识,还在潜移默化中提升了程序设计能力。
(二)基于科研案例的教学模式
近年来,为了切实深化本科人才培养模式改革、提高教育质量、培养创新型人才,很多学校引入了本科生全程导师制。导师制旨在倡导高水平教师更多地参与本科生指导工作,建立新型师生关系,挖掘有科研潜力且有意愿继续深造的同学尽早进入导师实验室从事基础科研活动。很多学生在加入到导师实验室后,会误以为本科阶段在课堂上学习到的知识非常陈旧,进而失去学习相关基础课程的兴趣。出现该问题的主要原因来自于很多基础课程任课教师照本宣科,多年重复讲述相同的内容,无法将课本里的知识点与最新的研究成果结合。基于此,笔者提出了基于科研案例的教学模式的尝试。
我们以二叉查找树(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的结论。
实施科研案例教学对任课老师提出了更高的挑战,整个教学过程中要求任课教师绝不能拘泥于课本上有限的知识点,任课教师需要对开设课程专业相关前沿技术具备足够的敏锐性,能够发掘出前沿技术中与数据结构课程知识点相关的交叉内容,并以通俗易懂的方式为同学讲解。
(三)适度延伸的教学模式
对于计算机专业学生,数据结构属于算法设计与分析课程的先修课程。算法设计与分析同样是计算机相关专业的核心课程,扎实的算法设计与分析功底是从事计算机相关各种工作的坚实基础。在非计算机专业学生求职过程中,算法基础也是许多知名公司面试会涉及的内容;从科研角度来看,算法设计与分析是从事人工智能相关跨学科领域研究必须掌握的内容。由于非计算机工科专业学生间的基础差异较大,部分程度较好的学生在学习过程中受限于课程设置缘故,尽管能力完全达到甚至超出了计算机专业学生水平,却无法接触到后续课程。鉴于此,本人在教学过程中提出了针对学生能力差异化的适度延伸教学模式。
我们以时间复杂度以及排序这两章的知识为例进行讨论。大部分教师在时间复杂度相关内容的讲解过程中只会涉及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 Te achi ng Data St ruc ture Course i n the Depart ment o f 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.
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网! 文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jiaoyulunwen/28939.html