1. 重庆移通学院 大数据与计算机科学学院,重庆 合川 401520;2. 重庆移通学院 实训中心,重庆 合
川 401520
摘 要:为提高《数据结构》课程的教学质量,尝试探索一套将专业和实践融合的教学模式,即“五项制度”。“五项制度”包括:竞赛激发制、问题导入制、任务驱动制、项目教学制、课程答辩制,问题导入制解决学生前期基础薄弱,项目教学制、任务驱动制解决教学手段单一,课程答辩制解决考核方式单一,竞赛激发制解决学生学习目标不明确。该教学模式,在突出应用的同时,又可激发学生的学习兴趣,最终达到IT智能化人才培养。
关键词:五项制度;数据结构;教学模式;融合
中图分类号:TP311.5;G642.0 文献标识码:A
Teaching exploration of data structure integrating "Five Systems"
WU Xiaoqing1 , LIANG Guo2
( 1. School of Big Data and Software, School of Big Data and Computer Science, Hechuan, Chongqing 401520, China ;2. Training Center, Chongqing College of Mobile Communication, Hechuan, Chongqing 401520, China)
Abstract:In order to improve the teaching quality of the "Data Structure" course, we try to explore a set of teaching models that integrate professionalism and practice, namely "five systems". The "five systems" include: competition stimulation system, problem-introduction system, task-driven system, project teaching system, and course defense system. The system solves the single assessment method, and the competition incentive system solves the unclear learning goals of students. This teaching mode not only highlights the application, but also stimulates students' interest in learning, and finally achieves the cultivation of IT intelligent talents.
Keywords:five systems;data structure;teaching mode;integration
0 引言
《数据结构》作为计算机专业核心必修课程,其特点是理论抽象程度高、应用实践性强、课程学习难度大[1]。这种课程主要在与培养学生解决实际问题的能力,运用已学到的程序语言进行编程能力,最终达到提升学生逻辑思维能力。但由于该课程内容的高度抽象性,使得理论知识的学习难以消化吸收,理论和实践的结合变得更为困难,归纳起来,主要存在以下4个方面的问题:(1)学生前期的C语言等先导课程,掌握不牢固,不会灵活运用,使得学生在学习本门课程时,始终学不会或者跟不上,最终导致厌学等负面情绪;(2)目前教师采用传统的广播式教学方法,教学手段单一,学生主动学习性较差,且本课程理论性较强,结合对应实践,情况更为糟糕;(3)考核多以期末考试为主,方式单一,不利于发挥学生的实践动手能力,提高学生的算法创新水平;(4)学习目标不明确,由于现代软件开发行业飞速发展,各类型框架也非常成熟,学生仅仅会使用其框架,没有真正了解底层逻辑技术,使得很多学生意识不到本门课程的重要性。
针对以上问题,思考如何在培养学生实践动手能力的同时,又可以让学生具备扎实的专业基础知识?在传统的教学模式的基础上进行了探索,尝试将专业和实践进行融合,在教学活动中,教师充分发挥对算法、项目感兴趣同学的带动作用,积极鼓励学生参与各类专业竞赛,巩固课程基础的同时,提高学生对专业知识的运用能力;在实践环节,采用项目推动方式,鼓励学生参与实践内容设计,并支持学生自行设计有意义的实践活动。结合我校的特色人才培养体系,“四位一体”(完满+通识+商科
+专业)和“双院制”(生活在书院+专业在学院),充分将专业教育和完满教育活动进行交叉融合,探索出一套以竞赛激发制、问题导入制、任务驱动制、项目教学制、课程答辩制的“五项制度”人才创新培养模式,从各个方面提高学生的专业知识。本文将从以下三个方面进行阐述:一是分析《数据结构》课程与“五项制度”融合的意义,二是阐述《数据结构》课程与“五项制度”融合的方法,三是描述《数据结构》课程与“五项制度”融合的效果。
1 《数据结构》课程与“五项制度”融合的意义
1.1激发学生学习兴趣
我们的生活和学习,都需要兴趣,兴趣是引导我们上进的最好老师,所以为了使学生可以主动地学习,提高课堂的学习效率,可以通过某些手段激发学生的学习兴趣。任课教师在授课过程中,可以采用通过引入学生感兴趣的简单企业面试或算法题目,来达到引出本课程所需基本的编程知识的同时,引起同学们对此课程的重视,激发学生学习的兴趣。
1.2多样化教学手段
随着时代的发展,教学手段也在不断的呈现多种不同形式,传统的教学手段过于单一,已经不再能够适应当前日新月异的课堂和学生,教师需要不断学习适应新课堂的教学模式。依托现有资源,将下列5种教学手段灵活的运用到授课过程中。
(1)参与式教学,提升课堂学生的参与感,让课程成为学生的主场。
(2)研讨式教学,教师抛出问题,并与学生一起讨论解决,让学生能够更加深入地理解问题;
(3)启发式教学,教师给出知识的主要框架,具体内容可以引导学生自主学习,并进行填充框架;
(4)项目驱动教学,利用理论和实践相结合的项目,并通过任务驱动的方式来调动学生在课堂的学习积极性,不断提升个人教学水平;
(5)混合式教学,充分利用线上丰富的教学资源,和线下教学进行融合,更大程度上提高学生对知识的掌握与理解。
1.3引导学生确立学习目标
学校目前可提供良好的活动平台,如国际计算机学会俱乐部等专业性社团,并且设立了“基础算法创新中心”、“互联网创新中心”等各类型的工作室,可以为学生提供非常丰富的运用知识技能的途径和指导。竞赛方面,学习构建了面向国家级、省市级、学校级、院系级完备的竞赛体系,同时我校学生在各种竞赛活动中取得了非常优异的成绩。依托现有平台和竞赛体系,鼓励学生加入社团或工作室,并激励他们参加各类型竞赛,让学生感受科技氛围、提高实践动手能力,引导学生确立自己的学习目标,感受学习的乐趣。
2 《数据结构》课程与“五项制度”融合的方法
随着当代社会对人才的需求越来越高,民办高校传统的人才培养模式已无法满足,而“五项制度”的创新培养模式,可以解决以下教学问题:问题导入制解决学生前期基础薄弱,项目教学制、任务驱动制解决教学手段单一,课程答辩制解决考核方式单一,竞赛激发制解决学生学习目标不明确。
“竞赛激发制、问题导入制、任务驱动制、项目教学制、课程答辩制” 五项制度的协同合作,共同实现IT人才的培养。
图1 “五项制度”育人培养模式
2.1问题导入制
(1) 重视首节课
授课老师应充分重视自己的第一次课,从而达到让学生重视《数据结构》课程,将本课程是计算机专业中的核心课程的地位深深植入学生的脑海[2]。首先,针对学生C语言薄弱的情况,先给大家回忆加强调,指出C语言中较为重要且在本门课程中用的较多的知识,比如结构体、指针、一维数组、自定义函数等知识点,为后续学生很好的学习该课程打好较好的语言基础;其次,用尽可能简单的语言表示,让学生清楚课程的重要性,比如:告知学生此课为考研、考博、计算机等级考试的必考课;最后,用知名企业的招聘笔试、面试题目,尤其是力扣等算法刷题网站上,专门有一类题目为剑指offer,来引起学生对课程的高度重视。
(2) 创设问题情境
将竞赛题目作为问题引入教学,激发学生学习新知识的兴趣,以这种问题为导向的方式,充分调动学生学习的积极性,给予学生思考的空间,在思考中,学生将所学知识运用到实际生活中[3],在思考中,提出解决问题的各种方案。带着问题去学习,可以使学生更加灵活地将理论和实践相结合,教学和学习效果都会更加显著。
2.2任务驱动制
(1) 改革教学内容
该课程的主要内容包括各类数据在计算机中如何存储、转换和传递,其中具体知识为:概念介绍、线性表、栈和队列、二叉树、图、查找和排序,现将全部内容分成“初、中、高”三层体系,三层体系如表1所示:
表1 “初、中、高”三层体系
级别 | 要求 |
初级 | 掌握全部基本概念 熟练实现简单线性表、栈、队列结构 掌握简单选择、排序算法 |
中级 | 掌握树、图等复杂结构的实现 熟悉栈、队列等结构的应用 |
高级 | 掌握树、图等复杂数据结构的应用 掌握树形选择、二叉排序树等高级算法 |
根据三层体系,设置如下几个教学目标观察点:
1)初级主要观察,同学们基本概念是否掌握;线性表的顺序存储和链式存储的实现;栈顺序存储、循环队列的实现;简单排序算法的实现;实现顺序查找和折半查找。
2)中级主要观察,同学们树、图等复杂结构的实现程度,比如遍历、存储等;栈和队列的应用案列实现;哈希表查找的例题验证;各位排序算法的时间复杂度、空间复杂度等比较。
3)高级主要观察,同学们树、图等应用案例的实现程度;各位高级排序算法的实现;树表的查找等。
综合来说,对于初级知识,大部分同学都需要掌握,在此基础上,逐步增大中级、高级知识能够接受且掌握同学的人数,少数带动多数,从而提高同学的整体水平。
(2) 任务目标设计
针对学生学习过程中更为困难的中高级知识进行任务目标设计,以《数据结构》课程中“队列的应用”这一知识点为案例,说明任务目标设计的基本方法[4]。“队列的应用”这一小节主要包括队列这种结构的基本特点、具体算法描述、时间与空间效率的分析等,在任务目标设计中,要将上述主要教学内容涵盖其中[4]。评价方式如表2所示:
表2 任务评价指标
指标 结果 | 算法描述 | 时间效率 | 空间效率 | 辅助功能 |
合格 | 代码正确实现->优秀 思路正确->良好 程序结构正确->合格 | O(n) | O(1) | 有 |
不合格 | 算法不正确 | 超过O(n) | 超过O(1) | 无 |
1)任务描述:所有n只猴子站成一排,从排头猴子开始1,2,3报数,报数为1,2的猴子回到排尾,为3的猴子退出,如此反复,直到剩下最后一个猴子,此猴子即为国王,问,若猴子甲想当猴王,它最开始应该站在什么位置?
2)任务目标:写出循环队列的思路。
3)任务指标:如表2所示。
4)完成形式:个人。
5)完成时限:课上20分钟。
2.3项目教学制
针对目前课程中存在很多学生缺乏实践、缺乏团队精神等问题,可以尝试将项目安排进实践教学,以这种方式提升学生动手能力,培养学生的合作精神,可以使学生循序渐进的掌握基本概念、算法设计、数据抽象,将理论教学与实践紧密结合[5]。具体步骤如下:
(1) 设计项目
考虑到实践教学课时的不足,所以对课程进行整体把握,在与竞赛、项目开发需求有机结合条件下,将实践教学内容分为基础算法型、算法设计型和综合课程设计三种[5]。基础算法型考察在实际问题的解决过程中,如何运用基础算法;算法设计型主要考察学生是否可以根据实际项目的需求,进行定义结构、选择合适算法等;综合课程设计重点考察学生对知识的综合掌握和运用能力,同时考察学生软件开发的数据抽象和算法实践能力[5]。
(2) 学生分组
进行基本编程能力的考核,根据考核成绩结合自愿原则,每2-3人一组,组成项目团队。
(3) 项目实施
学生拿到项目任务书后,团队协商制定,包括收集资料、选择算法、设计算法,根据指定结果,完成项目相关资料的填写,以及运行代码的调试,最后完成项目。
(4) 项目验收
对前两种实践教学内容,采用的评价方式为,查看项目最终的完成情况和运行效果;而综合课程设计需结合学生演示、答辩、代码运行等情况来进行综合评价。
“项目教学制”的实施,全面提高了学生分析能力、团队合作能力、实践能力、综合能力,如图2所示。
图2 “项目教学制”
2.4课程答辩制
为了进一步提高实践教学的效果,在实施的过程中我们运用课程答辩制的教学方法,通过课程答辩的方式,学生将所做项目进行展示、讲解,考察学生专业基础能力的同时,也锻炼了学生的专业演讲能力[6]。在这一过程中我们将采用的具体方法为:
(1) 课题展示
学生针对所涉及题目中包括的课程相关内容进行详细描述,其中重点阐述课题的背景及意义、相关要求、算法的设计流程、数据的主要来源、完成课程的思考等。
(2) 代码调试
针对选定课题的要求,学生需要对已完成的代码进行调试,这个过程中,答辩老师可以查看学生任务完成的情况,以及是否有要求以外的其他功能实现。
(3) 小组答辩
根据课题的要求和小组同学完成的情况,答辩老师可进行专业方面的提问,提问的重点围绕学生对于项目中所运用到的知识点是否掌握,自学能力如何等。
(4) 答辩老师打分
根据小组的课题展示、代码调试、小组答辩的情况,由我们的答辩教师对整个课题的完成情况以及最终展示进行准确的评判,并给出最终成绩。
2.5竞赛激发制
(1) 算法类竞赛
重点考察算法相关的专业竞赛,如:程序设计大赛、蓝桥杯等,其中包括个人赛和团体赛。此类竞赛可以考察学生对于知识的应用能力,提高学生的代码能力,遇到问题,可及时发现问题所在,这会给工作以后的软件开发和调试节省大量时间;同时可以提高学生的学习能力,包括自学,向他人请教的时候能提出有效问题的能力,能快速理解他人的表达能力等。
(2) 项目类竞赛
重点考察项目相关的专业竞赛,如:计算机设计大赛、数据库竞赛等。此类竞赛是创新创业人才培养计算机教育实践平台的具体举措,主要的目的是学生综合素质提高,激励学生可以积极参加课外科技活动,激发学生学习计算机知识技能的兴趣和潜能,为培养德智体美劳全面发展、具有运用信息技术解决实际问题的综合实践能力、创新创业能力,以及团队合作意识的人才服务[7]。
(3) 组织学生参加专业竞赛
组织学生参加相关的专业竞赛,是检验《数据结构》实践教学效果的一种非常有效手段。教师可以依据学生的算法水平层次、项目完成情况,推荐学生参加不同的竞赛。通过参加竞赛,可以提高学生的软件开发能力、算法设计水平和计算思维能力,激发学生学习的主动性
[6]。
3 《数据结构》课程与“五项制度”融合的效果
3.1教学环节质量提高
(1)学生喜欢:综合运用多种教学方式方法,比如讨论启发、现场演示、板书代码等,提升课堂教学的互动性,将理论和实践相融合,从而更大程度地收获学生喜欢。
(2)作业质量提高:任课教师认真批改作业,并依据作业完成情况和错误率,通过有针对性的指导学生学习,使得学生完成作业、习题、实验报告等的质量有所提高。
(3)挂科率降低:坚持教学和考试分离,建立更加完备的试题库。试题质量高,成绩成正态分布,加上近年来对考试方法的改革,本课程学生挂科率有所降低,如表3所示。
表3 本课程挂科率
时间 | 班级个数 | 总人数 | 挂科人数 | 挂科率 | |
2018-2019学年 | 6 | 141 | 10 | 7.1% | |
2019-2020学年 | 4 | 114 | 6 | 5.3% | |
2020-2021学年 | 第一学期 | 6 | 167 | 7 | 4.2% |
第二学期 | 4 | 130 | 5 | 3.8% |
3.2比赛人数提升
通过竞赛的激发,有效培养和激发了学生学习的激情,也让越来越多的同学认识到算法和数据结构的重要性,让更多同学参加算法相关的各类竞赛,如图3所示,是我校近几年参加程序设计大赛和蓝桥杯比赛的人员对比。同时随着比赛人数的提升,我校同学的获奖等级以及人数也越来越多。
图3 近几年重庆移通学院参赛人数对比
4 结论
人才的培养,最重要的是环境氛围的营造,如果不具备良好的环境氛围,很难实现人才的全面发展。在《数据结构》课程中融合进“五项制度”,激发学生学习主动性,营造良好的环境,从而全方位的提高学生的活动、算法、项目等各项能力,使我们的学生可以完成另道超车,为我校学生成为信息产业企业的经营管理者提供认识世界认识社会的一个框架和管理工具包,将竞赛、实践活动同专业教育进行深入交叉融合,打破原始学科的思想阻碍,推进工程教育实践改革,这样的改革对《数据结构》这种重要且实践性较强的传统课程是必要的。
参考文献(References)
[1]于庆梅,毛镠. MOOCs背景下地方院校“数据结构”实践教学模式[J].实验技术与管理.2019,(03):198-202.
[2] 王竹婷,孙欣欣.《数据结构与算法》课程的教学方法研究与探讨[J].电脑知识与技术.2017,(32):186-188.
[3] 牛秋月,唐国良.新工科背景下数据结构教学改革[J].教育现代化.2018,(22):70-71.
[4] 马慧斌,刘晓敏,朴顺姬.结合SMART的任务驱动教学在《数据结构》课程中的应用[J].科技创业月刊.2017,(9):2.
[5] 范建中,王秀友.基于学科竞赛的数据结构实践教学模式探讨[J].福建电脑.2018(3):45-46.
[6] 邵雪航.“课程答辩式”数据结构实验教学的改革探讨[J].科学中国人.2015.
[7] 蒋安纳,韦素云,刘晓峰,张黎宁.基于“四级三能”学科竞赛的创新人才培养模式探索与实践[J].学周刊,2017,(21):2.
基金项目:工程教育背景下民办高校IT智能化人才创新培养研究与实践--以《算法与数据结构》为例 (YTJG202111)
作者简介:
吴晓庆(1991-),女,汉族,河北,硕士,讲师,专职教师,主要研究方向为数据结构、图像处理.
梁国(1991-),男,汉族,重庆,本科,无,实验员,主要研究方向为计算机硬件、化学化工