数据结构与算法应用挑战性课程教学设计

2020-11-30 07:23:12蔡运娟高天鹏
软件导刊 2020年12期
关键词:信管数据结构算法

蔡运娟,高天鹏

(电子科技大学公共管理学院,四川成都 611731)

0 引言

数据结构与算法应用是管理科学与工程类教学质量国家标准规定的信息管理与信息系统专业(以下简称信管专业)基础必修课程,也是后续信息系统分析与设计、计算机网络原理与应用、数据库原理与应用、社会计算、管理系统模拟、数据挖掘与大数据分析等课程的基础课程,在信管专业人才培养中具有重要作用。

由于数据结构课程内容多、学习难度大,为了提高课程教学效果,各高校教师进行了大量教学改革研究与实践。例如王青松等[1]尝试了以真实问题为导向的教学;阎海玲等[2-3]进行了项目教学法的研究与实践;陈琳[4]尝试了以赛促学的教学改革;李娟[5]探讨了基于应用型人才培养需求的课程改革;李照奎等[6]面向工程认证进行数据结构课程的改革实践。这些教学改革取得了较好的成效,但在这些研究与实践中,针对信管专业数据结构课程的研究并不多,较少考虑如何提升课程的高阶性和挑战性,对于适应新时代要求的一流本科课程建设方面的探讨与实践不足。

为了响应《教育部关于一流本科课程建设的实施意见》(教高〔2019〕8 号)的要求,建设符合“两性一度”的信管专业金课,更好地激发学生的学习动力与学习兴趣,培养学生解决复杂问题的综合能力和高级思维,满足其多元化和个性化的学习需求,课程组进行了数据结构与算法应用挑战性课程教学设计与教学实践。

1 课程教学中的主要问题

数据结构与算法应用课程概念抽象、难度大、算法编写复杂、程序调试不易,学生在学习时会存在一定困难,因此在教学中遇到了一些问题,主要表现为:

(1)先修课程基础不扎实,影响学生学习信心。课程先修课程包括高级语言程序设计和离散数学。由于目前信管专业培养方案中既包括技术类,也包括管理类课程,加上培养方案中课程学时的减少,使得程序设计课程学时较少,而且未开设离散数学课程。因此,学生在程序设计中对于指针、结构体、文件等知识点的实践不足,并且缺乏离散数学相关知识,可能会使学生在学习链表、图等相关内容时比较困难,特别是在进行数据结构的程序实现时容易出现较多问题,从而影响学生的学习信心。

(2)课程难度影响学生学习兴趣。数据结构知识介于数学、计算机软硬件之间,内容抽象,本身就有较大难度[7]。如果采用简单的灌输法进行讲解,学生不容易理解,因而无法产生学习兴趣,更难以掌握算法的应用。部分学生可能会产生畏难心理,学习仅仅是为了完成任务,许多学生考试结束后会忘记大部分知识。

(3)教学内容没有体现专业特点,影响学生的理解。目前很多非计算机专业都开设了数据结构课程,但市场上的教材基本上都是针对计算机专业的,即使有少量针对信管专业的教材,与计算机专业教材内容也相差不大。对于这样一门理论性、抽象性很强的课程,如果课程内容无法与学生专业背景相融合,让学生结合专业知识加深对相关理论的理解,同时也让学生真正体会到数据结构理论是为专业实践服务的[8],则无法提升学生学习兴趣,也无法达到理想的学习效果。

为解决上述问题,课程组进行了基于Seminar 的教学改革,通过项目驱动的方式,充分调动学生的学习积极性,提高学生的综合能力。在教师的指导下,学生从被动学习向主动学习转变。但在教学改革过程中也发现,学生在学习主动性及参与度、挑战自我的勇气等方面还没有达到期望的目标,面对实际问题,学生的学习潜能还未得到充分激发。因此,课程组调整教学设计,期望能够通过挑战性课程教学,促使学生学习达到一个新高度。

2 挑战性课程建设目标

2.1 信息管理与信息系统专业培养目标

教育部在提出“六卓越一拔尖”计划2.0 系列要求时,强调要推动新工科、新医科、新农科、新文科建设。另一方面,在大数据、人工智能等新技术的影响下,国家正大力推进治理体系与治理能力现代化建设及“互联网+”行动计划,需要大量具备现代信息技术以及国际视野的高层次复合型数字治理人才。

信管专业本身就是技术与管理的复合型专业,能够较好地顺应新文科建设需求。由于学院在数字治理、智慧城市管理等方向上已取得较为丰硕的学术成果,使信管专业有了培养的落脚点,能够形成自己的专业特色。所以学院信管专业培养目标定位为:增强学生的社会责任感;培养学生的信息技术应用能力、数据分析能力、管理决策能力;重视面向数据服务领域的创新实践能力培养,重点提升学生在数据科学、信息管理等领域的社会实践能力,使学生能够利用技术推动社会管理手段、管理模式与管理理念创新,更好地服务社会发展。

2.2 课程建设目标

按照计算机或通信等纯工科专业的教学目标,数据结构课程的知识体系及实例选取可能更多偏向于纯粹的程序设计与算法,以及在操作系统、软件工程、计算机网络、通信等领域的应用。但是围绕信管专业培养目标,在新文科背景下应更关注面向新兴信息技术的应用带来的行业创新、产业融合,培养学生分析、解决问题的能力。因此,课程教学目的及任务是实现理论与实际应用相结合,不仅要学习数据结构基本知识,更要学习如何在分析现实问题时用计算机程序辅助决策,使学生能够根据数据对象特性,有效地组织数据,设计高效的算法,提高其解决实际问题的能力,并为后续课程打下一定的理论与实践基础。

特别是针对数据结构实践环节的教学目标,不过多强调程序设计技巧,而是将重心放在培养学生将经典数据结构和算法、程序用于解决社会问题及管理问题上。实验案例、实验项目会更多地选择如排队仿真、交通规划、项目管理、生产运作管理、微博热门话题分析、社交网络分析等与社会管理密切相关的内容。

2.3 课程挑战性表现

课程挑战性设计不是故意“为难”学生,而是在学生学习态度、知识、能力、思维与方法4 个层面设置相应的挑战性教学目标。

(1)态度方面。首先,激发学生接受挑战的勇气,能够在所学知识有限,不一定完全胜任该任务的情况下接受任务,通过持续学习努力完成任务,追求卓越。其次,在学习过程中能够与他人形成一个良好的合作氛围,倾听他人意见,表达自己想法,通过沟通达成一致目标,合作完成任务。

(2)知识方面。数据结构与算法应用课程知识点比较抽象,理解难度大,逻辑性强,学习内容具有挑战性。而且在挑战性实验中,也会涉及一些其它相关知识,这些知识之前没有学习过,需要学生自己去学习、理解与掌握,对于学生而言也具有较大挑战性。但相比教师讲解、学生记忆或理解的初级认知层次,挑战过程中的认知是一种高级认知,能够在分析、评价、创造中更有效地达成学习目标。

(3)能力方面。主要培养学生以下几个方面的能力:①学习能力。能够利用课程内外有限的时间和资源,完成知识的建构、集成与运用,并对学习效果进行评价,找到自己学习中的不足;②分析、解决问题的能力。在理论课程案例及挑战性实验中,需要具备分析、解决复杂社会问题的能力,能够在其中找到问题关键及解决问题的办法;③程序设计能力。课程中涉及大量算法分析与程序设计,需要学生具备较强的程序设计能力;④创新能力。在分析解决问题过程中,不断突破现有知识框架的约束,找到新办法,对于学生的创新能力是个挑战;⑤终身学习能力。不仅是运用已学会的知识与工具,通常还需要学生能够快速获取和运用新知识及新工具,并学会交叉运用多学科知识;⑥沟通与合作能力。团队协作是挑战性课程的一个共性。

(4)思维方面。在挑战性实践中,学生需要分析复杂的管理问题与社会问题,抽象出问题对象的数据特征,通过对数据的加工处理验证问题或解决问题,从而更好地锻炼学生的抽象思维与计算思维。

3 挑战性课程关键环节设计

3.1 理论课程挑战性设计

为了使课程具有挑战性,使学生不再只是听讲、做作业就可以拿到高分成绩,理论课程不再全部由教师讲解,也不仅是讲解后的简单讨论,而是借助网络平台与智慧课堂,引导学生课下通过学习资料或大规模网络开放课程(Massive OpenOnline Courses,MOOC)进行学习。课堂提出案例或任务问题,学生通过互动式学习进一步深入理解课程重点与难点,通过对典型算法代码的讨论,理解数据结构的实现与应用,帮助学生取得期望的学习目标与成效。借鉴清华大学挑战性课程建设要素[9],理论课程挑战性主要通过以下几方面要素实现:

(1)教学内容。每章内容学习前均在智慧课堂——雨课堂发布本章拟讨论的案例或任务,学生分组讨论问题关键点,并提出解决问题的思路,在学习完本章内容后,重新思考问题的解决办法,并对比前后方法的优劣。

(2)课堂教学形式。课堂教学讲解减少,着重讲解重点与难点,并通过师生互动、生生互动等学习方式使学生完全沉浸在学习中[9]。针对部分学生不愿意发言的情况,可在讨论过程中借助雨课堂,通过发送弹幕等形式参与到讨论中。教师也可通过雨课堂中的课堂练习,发现学生学习中的问题。

(3)课下学习。包括对预习内容、自学内容、扩展内容等内容的学习。为了充分发挥学生的主动性,课内与课外学习时间之比在1∶4 以上。

(4)课下讨论。学生有问题时可以在雨课堂上或QQ群中提问,学生之间首先进行讨论,当学生无法解决时,教师对其进行指导。

(5)教学资源。将各类文献、网络资源在QQ 群中分享,并在雨课堂中提前发布相关资料,便于学生学习,同时也能查阅每个学生的学习情况。

3.2 实践环节挑战性设计

在本课程开设前1~2 周,提供给学生一个案例程序及针对案例程序的一些问题,案例程序用指针和文件实现数据访问与数据存储。学生学习过程中,教师可以在QQ群中进行答疑指导,以保证学生在学习本课程之前能熟练使用指针、结构体、文件等,从而有效衔接本课程内容。

对于简单的验证性程序,无须占用大量实验时间,如要求学生课后自已完成对每种数据结构的实现,由教师提供大部分代码,重要部分或关键程序采用填空或改错的方式,引导学生进行思考,加深对知识的理解。

课程有16 个学时的实验学时,实验学时需要完成的则是具有挑战性的项目。因学时不多,只设置2 个项目,2个项目均分为基本问题和进阶问题。学生3~4 人一组,根据个人能力选择解决不同级别的问题。信管专业的学习目标决定了实验题目设置应与管理问题、社会问题相结合,而不是一个单纯的计算机科学问题。初步设计2 个项目,但在教学过程中可根据近期发生的热点问题或学生感兴趣的问题重新设计题目,2 个项目之间也有难度跨度。

(1)项目1:排队问题的虚拟仿真——理发馆经营问题。

基本问题:假设理发馆有N 把理发椅,可同时为N 位顾客理发。顾客进门时,若有空闲理发椅,则立即入座理发,否则依次排队等候。一旦有顾客理发完成离去时,排在队头的顾客便开始理发。假如理发馆每天连续营业T小时(只要有顾客等待,理发椅就不空置),通过仿真的方法预测一天内顾客在理发馆内的平均逗留时间(包括理发所需时间与排队等候时间)和排队等候理发人数的平均值(排队长度的平均值)。

进阶问题:在排队模拟问题基础上增加预测经营状况的功能。

每个顾客有选择理发师的服务要求,理发师分为3 个等级(一级、二级和三级),对应不同的服务收费标准。当顾客进门时,如果想选择某级别理发师,但该级别的理发师不空闲,则排队等候。程序将进一步统计每天营业额以及不同级别理发师的创收[10]。

该项目虽然属于数据结构的经典实验项目,但与传统教学不同的是,以前当学生可在多个项目中选择时,学生往往不会选择该项目,因为其难度更高。另外传统教学中会对项目涉及到的关键问题进行讲解,包括离散事件的仿真方法等,而在挑战性课程中,教师的提示会更少,学生需要思考与自我学习的内容更多,许多相关知识都由学生自己发现、学习与应用,教师只起到指导作用。

因此,学生在该项目中面临的挑战是:①队列数据结构特征及其常见操作算法的学习;②管理系统建模与仿真中的离散事件仿真建模方法学习;③程序中顾客进门时刻与服务时间随机数产生方法的分析;④通过实际调研,调整产生随机数的方法及其它参数,使仿真更接近实际情况;⑤通过对程序运行结果中有价值量化指标的分析,辅助管理人员决策,以减少顾客排队时间或提高营业收入。

(2)项目2:社交网络中的问题分析。

学生对社交网络非常熟悉,通过对社交网络中各种问题的分析,让学生能够利用数据结构和其它相关知识(如信息传播、社会治理等)更深入地认识、研究与利用社交网络。

基本问题:微博社区内信息传播的“小世界现象”研究。

采集一些微博社区名人用户,通过“是否关注”描述用户之间的关系,形成邻接矩阵。计算用户之间的平均距离、最大距离与最小距离,验证网络的“小世界现象”。计算节点中介中心度,发现影响整个网络内信息扩散的关键节点与连线。

进阶问题:开放性研究性问题。

学习相关文献,针对特定舆情事件提出研究问题并建立模型。采集微博信息,通过程序计算与研究问题相关模型的值,如意见领袖影响力等,分析如何有效引导舆情事件中的微博舆论,如议程设置、高影响力意见领袖引领等。

学生在该项目中面临的挑战如下:①数据结构图特征及其存储结构实现方法的学习;②图的遍历算法与最短路径算法的学习;③微博信息采集方法的学习与实践(可用Python 爬取数据,也可用已有软件爬取数据);④社会网络分析中的点度中心度、中介中心度、接近中心度等概念及其实际意义的学习;⑤编写程序完成社交网络的数据存储及计算;⑥文献学习与开放性问题选取;⑦相关理论与抽样方法、研究方法学习,相关模型构建;⑧项目研究报告撰写。

3.3 考核方式改革

考核成绩比例:基本知识学习成绩占30%,挑战性内容学习成绩占70%。

其中挑战性学习内容包括:

(1)课堂教学中案例/任务的课堂讨论。主要通过人工记录以及雨课堂的自动分组、弹幕、投稿、习题等自动记录,考核学生参与课堂讨论情况。

(2)课下学习效果。相关知识的资料发布在雨课堂中,可在雨课堂中查看学生学习情况。另外,在学生解决问题过程中,记录并考核学生自己查找与学习其它相关知识,以及将该知识应用于实践的情况。

(3)课下讨论。对QQ 群和雨课堂上学生发布问题、回答问题、参与讨论的情况进行考核。

(4)实践环节的进阶程度。实践环节设置的2 个题目进阶程度不同,难度也不同,可分别设定难度系数,在学生解决问题的成绩基础上乘以难度系数,作为其实验报告的成绩。

(5)实践环节展示与答辩。实践环节的展示与答辩对所有学生也是个挑战,解决问题后不仅要完成实验报告,还要制作PPT 进行展示,接受所有学生的质疑并进行答辩。这一环节成绩由所有其它组学生与课程组共同打分。

4 初步成效

初步教学实践结果表明,学生对学习过程与学习成效比较满意,表现为学生评教结果为五星优秀。在“教学内容”、“教学方法”、“学习获得感”几个一级指标的评价中,特别是对于“学习获得感”一级指标下的二级指标“激发了学习兴趣,掌握了基本理论和方法,增强了理论联系实际能力”,优评总数占比明显提高。而且在学生的文字评价中,对学习效果等方面评价良好,主要集中在以下几个方面:①提高了学习兴趣,扩展了知识面,增强了自主学习能力与研究能力;②增强了应用实践能力,提高了分析、解决问题的能力;③提高了复杂程序设计能力,初步掌握了工程化方法;④实验题目贴近社会真实问题,更愿意主动参与实验,激发了创造力和潜能。

5 结语

数据结构与算法应用挑战性课程对于信管专业学生确实是一个很大的挑战,不仅课程本身具有难度,还需要自学大量其它知识。但在挑战性学习过程中,可以改变教学中学生被动接受的固有思维模式,创造开放及自由的创新学习环境,使学生积极参与到挑战性学习与实践中,培养学生的创新精神和创新能力,提高学生的综合素质。今后在挑战性课堂教学环节和挑战性问题设计与实施方面还需要总结不足,继续在原有基础上进行创新,以期使课程教学更加符合信管专业培养目标及学生的个性化学习需求。

猜你喜欢
信管数据结构算法
智能时代下信管专业人才培养方案制定的探索与实践
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
应用型院校信管专业基于企业驱动的教学改革研究
科技视界(2017年19期)2017-11-17 19:46:30
互联网时代信管专业应用型人才培养改革探讨
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
一种改进的整周模糊度去相关算法
高职高专数据结构教学改革探讨
中国市场(2016年45期)2016-05-17 05:15:48
淮北师范大学信管专业人才培养模式研究