高职数据结构与算法课程教学改革与实践
2014-12-16宋万里张鸰
宋万里 张鸰
摘要:数据结构与算法课程是计算机专业的核心基础课程,对学生的就业具有决定性作用。该文具体分析了目前课程的教学现状,总结出一些迫切解决的问题并在文中阐述了具体应对的改革措施,并进行了实践。该文对数据结构与算法乃至相关的计算机课程的教学都有一定的借鉴意义。
关键词:数据结构;算法;教学改革;实践
中图分类号:G424 文献标识码:A 文章编号:1009-3044(2014)32-7677-02
Abstract: Data Structure and Algorithm is the core course of computer specialty, and plays a decisive role in the employment of students. This paper analyzes the teaching situation of the course at present, and summarizes some urgent problems to be resolved. The reform measures response to the problems above are described and practiced. This paper has certain reference meaning to teaching of Data Structure and Algorithm and the associated computer courses.
Key words: data structure; algorithm; teaching reform; practice
“数据结构和算法”课程涉及数据在计算机中的表示、组织与处理,以及相应的算法设计和算法性能分析,为计算机软件开发人员提供必要的专业基础知识和技能训练,同时也是计算机应用相关学科所必须掌握的课程。通过本课程的学习,使学生熟练掌握计算机程序设计中常见的各种数据的逻辑结构、存储结构及相应的运算,初步掌握算法的时间分析和空间分析的技术,并能根据计算机加工的数据特性运用数据结构的知识和技巧设计出更好的算法和程序,培养了大家数据抽象能力、算法构造性思维方法能力及逻辑思维能力,并进一步培养基本的良好的程序设计能力。其中的知识与方法,无论对学生进一步学习计算机领域的其他课程,还是对今后从事研究、应用开发及技术管理工作都发挥着重要的作用。但本课程理论性强,算法抽象,理解困难,不易掌握。该文针对高职的实际情况,对“数据结构和算法”课程教学改革进行了探索和实践。
1 教学现状分析
“数据结构和算法”课程历来被看作是计算机专业的教学难点。多年来,学生普遍感觉此课程学习困难、难以理解、不好掌握。主要有如下几个原因:1) 学生文化基础普遍偏差、参差不齐。学生入学成绩分数相对较低并且相差悬殊,对问题的分析能力、逻辑思维能力较弱,缺乏正确的学习方法。2) 自我管理和自我约束能力不强、缺乏学习的积极性和主动性。大学学习给予同学们的自学空间较大,管理方面也不如中学那样严格,从而导致学生上课听不懂、下课不愿学。3) 没有端正的学习态度。高职学生受到高中时个别老师的误导,以为上大学玩玩也可以顺利毕业,找到工作。同时也受到大学期间个别老师的误导,以为期末划划重点,最后突击,背背题目就可以过关。课上上网、玩手机、打游戏等等,课下不投入精力。4) 学生的计算机科学理论有所欠缺,对理论化的教学方法感到吃力。高职计算机课程主要以实用为主,课上理论讲授较少或几乎没有,学生对理论内容有畏难情绪,难以接受。5) 学生的前导课程基础不牢。学生普遍程序设计课程掌握的不好,没有养成独立的思维和良好的学习习惯,缺乏实际动手能力或动手能力不强。6) 实验内容设置不合理。实验大部分是验证性的,学生不需要自己去考虑各种可能的解决方案并找到最合适的方法,上机编程变成了简单的文字输人。7) 教师现场指导顾此失彼。由于学生人数相对较多,程序代码开发过程中学生问题各异,在课程有限的时间里辅导不能及时到位。8) 考核机制不完善,课程成绩主要是根据学生上机的出勤和提交的实验报告情况,再与期末考试结合给出,平时激励不到位,考核不合理。
2 教学改革与实践
通过上面对目前教学中存在问题的分析,我们明确了传统的课程教学已经不适应新形势的要求,实践动手能力欠缺,思维僵化和编程能力不强的学生,没有就业竞争力。这就要求数据结构和算法课程教师结合高职的实际情况,从数据结构的教学特点出发,明确教学目的,制订合理教学方案,强化学生解决问题的思维能力和实际动手能力,提高学生的编程能力,真正提高教学效果,最终提升学生的就业竞争力。针对以上问题,该文给出了如下的教学对策:
1) 针对高职学生文化基础普遍较差,学习习惯不好,自我管理和自我约束能力不强,缺乏学习的主动性等特点,我们在数据结构课程教学过程中引入了趣味教学,并加强教师与学生间的沟通。趣味教学旨在改变传统的教学方法和教学手段#活跃课堂气氛,把枯燥、抽象的知识通过某种有趣的、学生易于接受的方式表现出来,从而达到提高学生学习效率和教学质量的目的,它适合于任何形式的教学过程,特别适用于高职教育教学[1]。堆栈,是仅能在一端添加、删除对象的数据结构,我们可以以自助餐厅里的弹簧托盘举例,如图1所示。先来分析托盘的原理,在弹簧托盘上新增托盘后,整叠托盘重量增加,导致下面的职称弹簧被压缩,而整叠托盘的高度仍保持在一个固定的位置。拿托盘正好与此相反。之后让大家分析思考使用Java语言如何实现这样一个弹簧托盘。由于这个例子贴近生活,学生往往会有想法,课堂气氛活跃起来,能够开动脑筋,动起手来编码。实现了基本的弹簧托盘后,在引导学生一起实现一个自动弹簧托盘,让它能够给出目前的使用状态,比如有多少个托盘,托盘太多超过负荷或者没有托盘了要自动提示警告信息,让托盘变得只能起来,也就是实现我们讲授的堆栈。通过这样带有趣味性和贴近生活的例子,来调动课堂的活跃气氛,激发了学生的学习兴趣,提高学生学习的积极性和主动性,学生能够积极的预习、复习相关知识,逐渐养成良好的学习习惯。教学是一个双向互动的过程,教师在教学的过程中要从学生的实际情况出发,采用学生容易接受的教学方法讲授教学内容,才能形成良好的师生关系。教师课前备课准备好“问题”,课上通过问题引导学生积极思考,踊跃发言,将传统的“一言堂”编程“群英会”,激发学生学习的兴趣,鼓励学生之间的交流与沟通,营造融洽的课题气氛。只有这样学生对课程知识才更容易接受和掌握,才会取得良好的教学效果。endprint
2) 针对学生没有端正的学习态度和对理论题目有畏难情绪的问题,在课堂上直接引入往届学生面试的试题或从《Java面试宝典》等书籍中挑选合适的例题来给学生讲解或让学生独立完成,比如图2中所示的题目。这个题目对高职学生有一定的难度,由于畏难情绪,大部分学生不愿意思考解答,对这种题目很是反感。但当你和学生们讲清是以后找工作的面试题时,他们明显产生兴趣,注意力一下集中起来,再加上老师在黑板上上画图分步讲解,能收到很好的教学效果。如果能将往届学生请入课堂现身说法,再加上平时课堂上对相关公司对需求人才的知识结构的宣传讲解,整个教学就能产生比较理想的效果。通过这样找工作面试直接相关的例子,来吸引学生课堂的注意力,激发学习兴趣,提高学生学习的积极性和主动性,让学生自发的产生学习的动力。
[在一个单链表中,若删除p所指结点的后续结点,则执行____。
3) 针对学生的前导课程基础不牢问题,加强对Java语言课程内容的复习和逻辑思维能力的训练。数据结构与算法课程的学习是一个承前启后的过程,如果没有学好Java课程,本课程的学习效果必将大打折扣。数据结构的算法中大量使用Java语言中的字符串、程序结构知识和集合类等编程基础知识,数据结构课程学习过程中主要就是运用这些知识点以及相关的逻辑思维能力来分析、解决问题。对于大部分刚学完Java语言的学生来说,在Java语言的运用和逻辑思维能力还不强的情况下直接切入主题,他们就会感到茫然。为了解决这个问题,在开课之初,利用一、两次课的时间来复习Java语言的相关知识,并引导学生训练课程中使用到的基本技巧和思维方式。这样才能为数据结构与算法课程的学习打下良好的基础。
4) 针对课程的实验内容设置问题,教学中要努力做到让实验内容尽量与工程实际紧密结合。数据结构是一门紧密结合实践,解决现实世界问题的课程,因此合理设汁实验对于学生解决实际问题的能力的提高有很大帮助[2]。教师在教学过程中一定要注重课程内容的实用性,并强调数据结构和相关算法的灵活应用。本人在教学过程中栈结构应用选取了迷宫问题作为教学考核案例,队列结构应用选取银行排队仿真系统作为考核案例,串处理应用选取文本编辑器作为考核案例,图结构的实现和应用选取旅游线路安排系统作为考核案例。通过贴近实际的案例,学生学到实用开发技能,并训练了将理论结合到实际项目开发中去的实用技能,才能取得较好效果。
5) 针对教师现场指导不到位的问题,我们采用分组教学模式。有学生组成4-6人为一组的学习小组,针对学生对所学内容不同的掌握程度,对学生区别对待,选拨知识掌握较好并有一定组织能力的优秀学生作为组长,让组长辅导组员,让优秀学生在帮助
别人解决问题的同时提高自己的能力,让他们带领组员共同开发,当组长不能解决时,再由老师解答。这样往往由于进取心和好胜心的趋势,作为组长的同学更能认真、踏实的学习,进步明显。而对与学习稍差一些的学生适当降低要求,并且让组长及时指导,增强他们学习的信心,他们也能迅速跟上。这样就照顾到了全班学生的不同学习情况,能让所有同学都能稳步提高。
6) 针对课程考核不完善的问题,我们采用多样化的考核方法。在数据结构与算法课程教学过程中实用了全方位、多角度的考核方式。我们把职业素养、实际操作、技能比赛相结合,把学院期中、期末考核与认证考试考核相结合,强调项目实践能力。考核时间由期中、期末这样的点拉长为过程考核的线,过程性考核与结果性考核相结合。考核主体由个人变为个人与小组考核相结合,并且自评、互评与教师评价相结合。多样化的考核让学生更充分的利用了在校时间,促进了学生的学习。
3 结束语
数据结构这门课程不论对学生学习还是教师教学都有一定难度,优秀的教学方法和高效的实施方案值得我们去研究。教学改革不是目标,而是一个过程,需要在教学过程中通过不断地探索、总结,形成一个集教学内容、教学方法、教学手段和考核方式等完整的教学体系,提高学生运用数据结构的知识分析问题、运用相应的算法动手编程解决问题的能力,努力提升课程的教学效果。该文分析了目前数据结构与算法课程存在的问题并给出了教学改革的举措并进行了实践,取得了一定的效果,下一步我们将本文的教学改革成果应用于移动教学平台上,期待能发挥更大的作用。
参考文献:
[1] 王剑, 钟元生, 罗成, 等. 高职数据结构课程趣味教学的实践[J]. 职教论坛, 2010(17):31-32.
[2] 申华, 肖莹莹. 数椐结构课程的实践性教学模式[J]. 计算机教育, 20l2(4):103-105.
[3] 唐玉媛. 高职院校数据结构课程教学研究[J]河北师范大学学报:教育科学版, 2009,11(04):127-129.
[4] 蔡红. 高职数据结构课程教学改革探索[J]. 中国职业技术教育, 2011(14):87-89.
[5] 陈广. 高职“数据结构”课程教学改革研究[J]. 教育与职业, 2011(27):35-36.
[6] 刘越畅,钟秀玉,钟志初,陈世基. 数据结构课程工程化实验教学的探索和实践[J]. 实验室研究与探索,2012,31(8):339-341.
[7] 沈华. 数据结构课内实践教学方案[J]. 实验室研究与探索,2013,32(10):396-400.endprint
2) 针对学生没有端正的学习态度和对理论题目有畏难情绪的问题,在课堂上直接引入往届学生面试的试题或从《Java面试宝典》等书籍中挑选合适的例题来给学生讲解或让学生独立完成,比如图2中所示的题目。这个题目对高职学生有一定的难度,由于畏难情绪,大部分学生不愿意思考解答,对这种题目很是反感。但当你和学生们讲清是以后找工作的面试题时,他们明显产生兴趣,注意力一下集中起来,再加上老师在黑板上上画图分步讲解,能收到很好的教学效果。如果能将往届学生请入课堂现身说法,再加上平时课堂上对相关公司对需求人才的知识结构的宣传讲解,整个教学就能产生比较理想的效果。通过这样找工作面试直接相关的例子,来吸引学生课堂的注意力,激发学习兴趣,提高学生学习的积极性和主动性,让学生自发的产生学习的动力。
[在一个单链表中,若删除p所指结点的后续结点,则执行____。
3) 针对学生的前导课程基础不牢问题,加强对Java语言课程内容的复习和逻辑思维能力的训练。数据结构与算法课程的学习是一个承前启后的过程,如果没有学好Java课程,本课程的学习效果必将大打折扣。数据结构的算法中大量使用Java语言中的字符串、程序结构知识和集合类等编程基础知识,数据结构课程学习过程中主要就是运用这些知识点以及相关的逻辑思维能力来分析、解决问题。对于大部分刚学完Java语言的学生来说,在Java语言的运用和逻辑思维能力还不强的情况下直接切入主题,他们就会感到茫然。为了解决这个问题,在开课之初,利用一、两次课的时间来复习Java语言的相关知识,并引导学生训练课程中使用到的基本技巧和思维方式。这样才能为数据结构与算法课程的学习打下良好的基础。
4) 针对课程的实验内容设置问题,教学中要努力做到让实验内容尽量与工程实际紧密结合。数据结构是一门紧密结合实践,解决现实世界问题的课程,因此合理设汁实验对于学生解决实际问题的能力的提高有很大帮助[2]。教师在教学过程中一定要注重课程内容的实用性,并强调数据结构和相关算法的灵活应用。本人在教学过程中栈结构应用选取了迷宫问题作为教学考核案例,队列结构应用选取银行排队仿真系统作为考核案例,串处理应用选取文本编辑器作为考核案例,图结构的实现和应用选取旅游线路安排系统作为考核案例。通过贴近实际的案例,学生学到实用开发技能,并训练了将理论结合到实际项目开发中去的实用技能,才能取得较好效果。
5) 针对教师现场指导不到位的问题,我们采用分组教学模式。有学生组成4-6人为一组的学习小组,针对学生对所学内容不同的掌握程度,对学生区别对待,选拨知识掌握较好并有一定组织能力的优秀学生作为组长,让组长辅导组员,让优秀学生在帮助
别人解决问题的同时提高自己的能力,让他们带领组员共同开发,当组长不能解决时,再由老师解答。这样往往由于进取心和好胜心的趋势,作为组长的同学更能认真、踏实的学习,进步明显。而对与学习稍差一些的学生适当降低要求,并且让组长及时指导,增强他们学习的信心,他们也能迅速跟上。这样就照顾到了全班学生的不同学习情况,能让所有同学都能稳步提高。
6) 针对课程考核不完善的问题,我们采用多样化的考核方法。在数据结构与算法课程教学过程中实用了全方位、多角度的考核方式。我们把职业素养、实际操作、技能比赛相结合,把学院期中、期末考核与认证考试考核相结合,强调项目实践能力。考核时间由期中、期末这样的点拉长为过程考核的线,过程性考核与结果性考核相结合。考核主体由个人变为个人与小组考核相结合,并且自评、互评与教师评价相结合。多样化的考核让学生更充分的利用了在校时间,促进了学生的学习。
3 结束语
数据结构这门课程不论对学生学习还是教师教学都有一定难度,优秀的教学方法和高效的实施方案值得我们去研究。教学改革不是目标,而是一个过程,需要在教学过程中通过不断地探索、总结,形成一个集教学内容、教学方法、教学手段和考核方式等完整的教学体系,提高学生运用数据结构的知识分析问题、运用相应的算法动手编程解决问题的能力,努力提升课程的教学效果。该文分析了目前数据结构与算法课程存在的问题并给出了教学改革的举措并进行了实践,取得了一定的效果,下一步我们将本文的教学改革成果应用于移动教学平台上,期待能发挥更大的作用。
参考文献:
[1] 王剑, 钟元生, 罗成, 等. 高职数据结构课程趣味教学的实践[J]. 职教论坛, 2010(17):31-32.
[2] 申华, 肖莹莹. 数椐结构课程的实践性教学模式[J]. 计算机教育, 20l2(4):103-105.
[3] 唐玉媛. 高职院校数据结构课程教学研究[J]河北师范大学学报:教育科学版, 2009,11(04):127-129.
[4] 蔡红. 高职数据结构课程教学改革探索[J]. 中国职业技术教育, 2011(14):87-89.
[5] 陈广. 高职“数据结构”课程教学改革研究[J]. 教育与职业, 2011(27):35-36.
[6] 刘越畅,钟秀玉,钟志初,陈世基. 数据结构课程工程化实验教学的探索和实践[J]. 实验室研究与探索,2012,31(8):339-341.
[7] 沈华. 数据结构课内实践教学方案[J]. 实验室研究与探索,2013,32(10):396-400.endprint
2) 针对学生没有端正的学习态度和对理论题目有畏难情绪的问题,在课堂上直接引入往届学生面试的试题或从《Java面试宝典》等书籍中挑选合适的例题来给学生讲解或让学生独立完成,比如图2中所示的题目。这个题目对高职学生有一定的难度,由于畏难情绪,大部分学生不愿意思考解答,对这种题目很是反感。但当你和学生们讲清是以后找工作的面试题时,他们明显产生兴趣,注意力一下集中起来,再加上老师在黑板上上画图分步讲解,能收到很好的教学效果。如果能将往届学生请入课堂现身说法,再加上平时课堂上对相关公司对需求人才的知识结构的宣传讲解,整个教学就能产生比较理想的效果。通过这样找工作面试直接相关的例子,来吸引学生课堂的注意力,激发学习兴趣,提高学生学习的积极性和主动性,让学生自发的产生学习的动力。
[在一个单链表中,若删除p所指结点的后续结点,则执行____。
3) 针对学生的前导课程基础不牢问题,加强对Java语言课程内容的复习和逻辑思维能力的训练。数据结构与算法课程的学习是一个承前启后的过程,如果没有学好Java课程,本课程的学习效果必将大打折扣。数据结构的算法中大量使用Java语言中的字符串、程序结构知识和集合类等编程基础知识,数据结构课程学习过程中主要就是运用这些知识点以及相关的逻辑思维能力来分析、解决问题。对于大部分刚学完Java语言的学生来说,在Java语言的运用和逻辑思维能力还不强的情况下直接切入主题,他们就会感到茫然。为了解决这个问题,在开课之初,利用一、两次课的时间来复习Java语言的相关知识,并引导学生训练课程中使用到的基本技巧和思维方式。这样才能为数据结构与算法课程的学习打下良好的基础。
4) 针对课程的实验内容设置问题,教学中要努力做到让实验内容尽量与工程实际紧密结合。数据结构是一门紧密结合实践,解决现实世界问题的课程,因此合理设汁实验对于学生解决实际问题的能力的提高有很大帮助[2]。教师在教学过程中一定要注重课程内容的实用性,并强调数据结构和相关算法的灵活应用。本人在教学过程中栈结构应用选取了迷宫问题作为教学考核案例,队列结构应用选取银行排队仿真系统作为考核案例,串处理应用选取文本编辑器作为考核案例,图结构的实现和应用选取旅游线路安排系统作为考核案例。通过贴近实际的案例,学生学到实用开发技能,并训练了将理论结合到实际项目开发中去的实用技能,才能取得较好效果。
5) 针对教师现场指导不到位的问题,我们采用分组教学模式。有学生组成4-6人为一组的学习小组,针对学生对所学内容不同的掌握程度,对学生区别对待,选拨知识掌握较好并有一定组织能力的优秀学生作为组长,让组长辅导组员,让优秀学生在帮助
别人解决问题的同时提高自己的能力,让他们带领组员共同开发,当组长不能解决时,再由老师解答。这样往往由于进取心和好胜心的趋势,作为组长的同学更能认真、踏实的学习,进步明显。而对与学习稍差一些的学生适当降低要求,并且让组长及时指导,增强他们学习的信心,他们也能迅速跟上。这样就照顾到了全班学生的不同学习情况,能让所有同学都能稳步提高。
6) 针对课程考核不完善的问题,我们采用多样化的考核方法。在数据结构与算法课程教学过程中实用了全方位、多角度的考核方式。我们把职业素养、实际操作、技能比赛相结合,把学院期中、期末考核与认证考试考核相结合,强调项目实践能力。考核时间由期中、期末这样的点拉长为过程考核的线,过程性考核与结果性考核相结合。考核主体由个人变为个人与小组考核相结合,并且自评、互评与教师评价相结合。多样化的考核让学生更充分的利用了在校时间,促进了学生的学习。
3 结束语
数据结构这门课程不论对学生学习还是教师教学都有一定难度,优秀的教学方法和高效的实施方案值得我们去研究。教学改革不是目标,而是一个过程,需要在教学过程中通过不断地探索、总结,形成一个集教学内容、教学方法、教学手段和考核方式等完整的教学体系,提高学生运用数据结构的知识分析问题、运用相应的算法动手编程解决问题的能力,努力提升课程的教学效果。该文分析了目前数据结构与算法课程存在的问题并给出了教学改革的举措并进行了实践,取得了一定的效果,下一步我们将本文的教学改革成果应用于移动教学平台上,期待能发挥更大的作用。
参考文献:
[1] 王剑, 钟元生, 罗成, 等. 高职数据结构课程趣味教学的实践[J]. 职教论坛, 2010(17):31-32.
[2] 申华, 肖莹莹. 数椐结构课程的实践性教学模式[J]. 计算机教育, 20l2(4):103-105.
[3] 唐玉媛. 高职院校数据结构课程教学研究[J]河北师范大学学报:教育科学版, 2009,11(04):127-129.
[4] 蔡红. 高职数据结构课程教学改革探索[J]. 中国职业技术教育, 2011(14):87-89.
[5] 陈广. 高职“数据结构”课程教学改革研究[J]. 教育与职业, 2011(27):35-36.
[6] 刘越畅,钟秀玉,钟志初,陈世基. 数据结构课程工程化实验教学的探索和实践[J]. 实验室研究与探索,2012,31(8):339-341.
[7] 沈华. 数据结构课内实践教学方案[J]. 实验室研究与探索,2013,32(10):396-400.endprint