“数据结构”课程实验教学探索

来源 :中国电力教育 | 被引量 : 0次 | 上传用户:qq273683019
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:在对“数据结构”课程实验教学环节的探索与实践中,在课程内容体系安排上增加了“数据结构”应用实例讲解部分,以提高学生的学习兴趣;加大了实验部分的内容和考核力度,提升实践环节的比重;通过结对编程、代码重构等方式,提升学生的编程能力;通过统计、及时反馈学生实践环节的各项信息,督促学生进一步提高编程积极性。针对实践环节的各项措施提高了学生的实际动手能力、创造和分析能力,实践证明取得了较好的效果。
  关键词:数据结构;实验教学;教学改革
  作者简介:刘志鹏(1980-),男,江苏南京人,南京邮电大学计算机学院,讲师;段卫华(1977-),男,江苏南京人,南京邮电大学计算机学院,讲师。(江苏 南京 210003)
  基金项目:本文系南京邮电大学计算机学院教学改革项目(项目编号:12)的研究成果。
  中文图书分类号:G642.0 文献标识码:A 文章编号:1007-0079(2013)01-0132-02
  “数据结构”课程是计算机科学与信息管理等专业的核心课程之一,它在计算机领域的重要性仅次于编程基础。[1]我国制定的CCC2002体系强调了“数据结构”在计算学科及电子信息学科中的作用与地位。该课程一般以“计算机高级程序设计语言”为先修课程,也是“操作系统”、“数据库”、“编译原理”等专业课程的基础。“数据结构”课程涉及的知识点较多、实践性很强,除了要求学生有严密的逻辑思维外,还需要拥有较好的编程实践基础。目前,大多数高校“数据结构”课程的教学工作均在一学期内完成。学生学习任务较重,往往在学习过程中出现“重理论、轻实践”的现象。许多学生在设计和实现算法方面表现不佳。为了在有限的学时中得到更好的教学效果,使学生在算法设计和实现两个方面的能力都有所提高,笔者从“数据结构”课程实验教学环节入手,尝试了一系列的探索和研究。
  一、实践教学目前存在的问题
  “数据结构”是一门实践性很强的课程。实践有助于学生更好地理解和应用所学习的理论知识,实践环节是无法替代的,直接影响学生的学习效果。然而,目前的“数据结构”实验教学环节普遍存在如下的一些问题:
  1.学生对实践环节重视不够
  目前,学生对“数据结构”课程实践环节普遍不够重视。主要原因如下:
  第一,主流开发语言和集成开发环境,如C++、Java等,均提供了现成的数据结构程序库。程序员可直接调用程序库中的函数而无需重头编写底层数据结构。部分学生认为,只要掌握程序库的使用方法,便无需实践数据结构的底层实现。然而,无论是C++的STL和Boost程序库,还是Java语言的集合类,均无法满足某些程序苛刻的性能要求。因此对学生而言,仅仅掌握某种特定编程语言的程序库是不够的。
  第二,由于“数据结构”课程以笔试作为衡量学生学习成果的主要方式,加上实践环节考查指标并不明确,造成很多同学不重视实践环节,导致实践环节效果不理想。
  第三,学生对“数据结构”在操作系统、数据库、编译器中的实际应用知之甚少,部分同学虽然知道“数据结构”课程十分重要,但并不知道数据结构在各个领域的广泛应用。
  2.学生程序设计能力薄弱
  学生程序设计能力薄弱,是部分高校长期普遍存在的现象。究其原因,主要包括以下两个方面:
  首先,部分学生程序设计基础较薄弱。对于C++的某些基本语法并不熟悉,也不了解使用封装、继承和多态型在编写大规模代码过程中带来的好处。大量的对语法知识的要求导致学生难以阅读和编写程序,造成学生思想上的困惑。
  其次,对程序设计能力薄弱、基础较差的学生而言,某些优秀教材[2,3]并不适合。学生阅读这些教材时,虽然能够理解算法的含义,但是却无法将伪代码转换成对应编程语言的程序代码。这一方面导致学生无法动手实践,另一方面也进一步削弱了学生的编程能力。
  3.实践过程中无法得到及时的反馈
  许多学生在“数据结构”实践课中采用先编写、后调试的方法,这种编写代码的方式对代码量较少、代码逻辑较简单的程序是有效的。但对于代码量较多、代码逻辑复杂的“数据结构”程序则不可取。由于拼写和逻辑错误,导致最终程序错误较多,难以调试。由于在代码编写过程中无法得到及时的反馈,导致学生丧失了进一步学习的兴趣。
  此外,编写代码、正确执行后,许多同学不及时总结经验教训,反复犯相同错误。对待实验报告撰写工作态度不端正。教师没有及时将实验报告成绩和其中存在的问题及时反馈给学生,部分学生不了解实验报告和实验的评分细则,对实践环节最终成绩不满,也反过来削弱了学生学习该门课程的兴趣。
  二、实践环节的教学改革
  针对教学中存在的以上情况,笔者主要从以下几个方面进行实践环节的探索和改革:
  1.引导学生重视实践环节
  第一,加重实践环节占用总评成绩的比例,从原先的10%-15%增加到20%。改变传统模式下主要依靠平时作业、课堂表现和期末考试成绩的评价模式。增强实践环节比重,旨在督促学生参与实践、编写程序和撰写报告。
  第二,在课堂教学中,提纲挈领地讲解C++、Java语言程序库的不足之处,使学生明确具备编写数据结构代码能力的重要性。
  第三,针对多种数据结构,讲解其在操作系统、[4]数据库[5]和编译器中的实际应用。开源软件为“数据结构”教学提供了大量的实际案例。通过介绍数据结构的实际应用,提升学生的学习兴趣,提高学生对实践环节的重视程度和兴趣。
  最后,尽早明确实验任务和目标。让学生在教学过程和实践环节中明确认识到,只有按部就班,才可以完成实验任务。在实践环节中,不能随着学生的完成情况无限制地增加题目的要求和难度,而应做到因材施教,因人而异。
  2.提升学生程序设计能力   教材是学生入门和提高的主要材料。笔者选用人民邮电出版社陈慧南编著的《数据结构:使用C++语言描述(第2版)》作为“数据结构”课程的教材。该教材2007年入选普通高等教育“十一五”国家级规划教材,其中对每一种主要的数据结构均给出了C++代码实现。与传统经典教材[2,3]相比,省略了学生将伪代码转换为可执行代码的中间过程。学生在实现基本数据结构时可直接参考教材程序完成。该教材列出了“数据结构”中使用的C++知识点,并指导学生在课后自行开展有针对性的复习。通过边复习、边学习的方式,部分同学能够克服程序设计能力不足的缺陷,建立理解和实践“数据结构”课程的信心。
  针对许多学生仅能理解C++代码片段,无法将这些代码片段合成完整的程序问题,笔者通过课堂教学和实践环节两个方面加以弥补。在课堂教学中,教师至少编写一个完整的数据结构实现。通过演示,使学生了解编写代码的具体动态流程和技巧。实践环节中,采用循序渐进的代码编写方式,即课堂上先给出对应算法完整程序的框架,并演示程序得到的最终结果,让学生去填写框架中的函数内容,接下来要求学生独立完成一些函数模块,具体操作方法与文献[6]中的第一项研究方法相同。实践表明,采用结对编程、独立完成实验报告的方式与独自完成实践环节的效果相比较,实践环节学生平均成绩高5~7分。
  3.及时反馈实践结果
  鼓励学生在编写代码前,首先编写测试用例。一方面有助于学生了解代码中的边界条件,考虑代码实现中的各种特殊情况。另一方面也有助于学生在编写代码的过程中及时获得反馈。避免传统编写代码方式所导致的程序无法正常运行的情况,增强学生的信心。
  第二,指导学生编写代码的正确次序。例如,在编写单链表类时,先实现构造函数和析构函数,再实现插入函数和打印函数。这样便可先检测插入函数是否正常工作,在此基础上,再完成删除函数等其他功能函数。这种迭代开发、单元测试,将错误局部化的思想对于培养学生正确的程序设计观念十分重要。指导学生重视代码重构的工作并鼓励学生重构代码,通过介绍编码规范,强调良好代码风格的重要性。
  第三,指导学生调试程序。针对Visual C++ 6.0集成开发环境和gcc编译器,总结学生在编码时常犯的各种编程错误,并给出相应的代码调试方法。通过不断完善文档、分发并反馈,从而减轻教师的工作量,培养学生的参与精神和不断总结的能力。
  最后除课后答疑外,笔者还及时通过电子邮件反馈疑难解答和平时成绩。教师将有代表性的提问进行总结和群发邮件,使学生能及时掌握自己的最新成绩,并允许学生质疑分数的公平性和公正性,制定较详细的实践环节评分标准,明确实验报告的结构,要求学生重视需求分析、概要设计,并要如实撰写总结和体会部分。许多同学的总结都停留在表面,并没有总结实际学到的编程知识和调试方法。
  以下是在“数据结构”课程实践环节中的的评分标准:
  能独立查阅文献资料,较好地理解课题任务并提出实施方案;内容详实准确、文字流畅,符合规定内容及字数要求;论证、分析、设计、计算、结构、建模、实验正确合理;用语符合技术规范,图表、公式清楚;努力学习,遵守纪律,作风严谨务实,按期完成规定的任务。
  三、实践环节教学效果
  1.课堂和实验课教学效果
  通过课堂讲授和实践性环节锻炼,学生能端正学习态度,树立编写代码的信心和决心。通过制定合理的编程任务,每个学生都能动手编写程序。通过动手实践,加深了对数据结构相关知识点的理解。采用结对编程、测试优先和代码重构,学生认识到编写能够运行的代码和优秀代码的差异。有些同学能够进一步完成更高难度的编程任务,并参加国家级的比赛,如挑战杯等。
  2.实践环节效果反馈
  本次共有97名学生学习“数据结构”课程,每个学生需要完成4份实验报告。统计结果表明,上交报告的积极性、分析设计的规范性和总结体会,与去年相比,均有很大程度的提高。拖延上交实验报告的情况从去年的11.0%降低到3.1%,实验报告的内容更加规范,总结体会内容大多集中在编程过程中遇到的问题及解决方案上。通过填充和扩充代码两种编程方法,绝大多数学生完成了数据结构实践环节的基本任务,如单链表的实现等。51.5%的同学能够完成更加复杂的程序设计任务,如双向链表等。
  “数据结构”课程是计算机专业的专业基础课程,应用范围非常广泛。本文分析了数据结构实践教学中目前存在的一些问题,积极探索和尝试新的教学方式,在一定程度上调动了学生的积极性,为学生的软件开发打下了良好的基础。但对于课程体系的建设及教学方法的改进等问题,仍然需要开展进一步的研究。
  参考文献:
  [1]Mehran Sahami.Expanding the Frontiers of Computer Science Education[EB/OL].http://wccce11.unbc.ca/wccce11-sahami.pdf.
  [2]严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,2011.
  [3]科曼,等.算法导论[M].潘金贵,等译.北京:机械工业出版社,
  2006.
  [4]毛德操,胡希明.Linux内核源代码情景分析[M].杭州:浙江大学出版社,2001.
  [5]加西亚·莫利纳,等.数据库系统实现[M].北京:机械工业出版社,2010.
  [6]Charlie McDowell,Brian Hanks,Linda Werner.Experimenting with pair programming in the classroom[J].ACM SIGCSE Bulletin,2003,35(3):
  60-64.
  (责任编辑:李杰)
其他文献
摘要:针对“无所事事”作为造成高校学生网络成瘾进而成为学困生的主要诱因这一事实,根据过程重于结果、预防好于救治、疏导优于堵塞等发展性教育防控原则,以“有所事事”为切入点与着力点,引导广大学生特别是网瘾类学困生去做想做之事、能做之事、可做之事与必做之事,进而达到良好的教育防控成效。  关键词:学困生;网络成瘾;发展性教育  作者简介:毛广(1976-),男,江苏沭阳人,宿迁学院学生处副处长,助理研究
期刊
摘要:根据几年来“流体力学”课程的教学实践,在传统的教学模式上进行创新、整合和优化,提出“启发式”、“对比分析式”和“多视角”等多元化课堂教学方法,让学生充分运用他们拥有的知识和能力去正确比较、分析、综合、判断、概括、归纳和解决问题。并利用多媒体技术作为辅助教学手段,很大程度上改善了教学效果。  关键词:流体力学;多元化;课堂教学模式  作者简介:张明辉(1972-),女,河北沧州人,山东科技大学
期刊
摘要:论述了情感因素在高等数学教学中的作用,指出教师对课程的情感可以激发学生的好奇心、求知欲,培养学生学习兴趣,创造良好的课堂教学气氛,培育学生情感,并据此对教师提出了具体要求,给出了具体的实施措施。  关键词:情感;高等数学教学;好奇心;学习兴趣  作者简介:陈宏宇(1981-),女,山东泰安人,上海应用技术学院理学院,讲师;戚建明(1981-),男,江苏盐城人,上海电机学院数理教学部,讲师。(
期刊
摘要:物联网是在计算机互联网的基础上,利用智能感知、识别等技术发展起来的信息新产业,社会对物联网技术方面的人才需求巨大。为适应物联网市场对网络人才的需求,培养出具有实践动手能力和创新能力的高素质应用型人才,从教学内容、教学方法、考核方式和师资队伍建设等方面对“计算机网络”课程进行改革探索。  关键词:物联网;计算机网络;创新能力;就业  作者简介:杨冰(1981-),女,湖南益阳人,湖南城市学院通
期刊
摘要:“复变函数与积分变换”是机电、电子、信息等工科专业必不可少的一门基础课。如何在紧凑的课时内让学生掌握好该课程的基础知识并能较好地应用到相关专业课程是工科教学的主要目标。针对工科学生的特点结合作者的切身体会,阐述了教学目标、教学内容、教学手段、教学练习等几方面的教学改革建议。  关键词:复变函数;积分变换;教学改革  作者简介:曹海涛(1979-),男,江苏大丰人,河海大学常州校区数理部,讲师
期刊
摘要:实效性是衡量高校思想政治理论课教学成败的一个关键标准。思想政治理论课教学实效性表现形式多种多样,其显现的一面可采用“学生满意度”这个指标来做出基本评价。“学生满意度”调查结果显示,学生目前对“中国近现代史纲要”课教学在“师生平时交流”、“教学内容联系现实、贴近学生”、“史论有深度”和“课堂互动氛围”四个方面感到较不满意。课程教师应在内容的现实性和针对性、历史学术素养以及营造良好互动氛围方面做
期刊
摘要:“毛泽东思想和中国特色社会主义理论体系概论”课(以下简称“概论课”)是我国高校政治理论课的核心课程,其目标不仅是对执政党党史的宣讲、大政方针的解读,更为重要的是在宣讲的过程中提高大学生运用马克思主义的立场、观点和发现问题、分析问题、解决问题的能力,使大学生通过自己的独立思考对执政党及其政策有较高的认同感。  关键词:概论课教学;实效性;启发式教学  作者简介:邱永建(1971-),女,布依族
期刊
摘要:以金陵科技学院动物科学类专业为例,对该专业以技术工程中心引领大学生创新创业教育的建设方案进行深入研究,将学生“学业—就业—创业”和教师“授业—精业—拓业”有机结合,建立以科研、生产能力为核心的教师考评机制及以创新、应用能力为核心的学生考评机制,探索并实践动物科学类实训基地建设运行和校企合作的大学生创新创业教育新模式。  关键词:教育改革;工程中心平台;创新创业教育;培养模式  作者简介:甘黎
期刊
摘要:在分析总结当前力学教学中的新特点、新现象以及存在的问题的基础上,综合考虑学生特点和当前的教学条件,在教学内容、教学模式、教学与工程相结合等方面对提高力学教学效率和效果的措施进行了探讨。  关键词:力学;教学;新特点;改进措施  作者简介:张庆华(1977-),男,河南郑州人,华北水利水电学院土木与交通学院,讲师。(河南 郑州 450011)  基金项目:本文系华北水利水电学院高层次人才科研启
期刊
摘要:为顺应怀化学院“三位一体”人才培养模式改革,提出一种以社会需求为导向、以实际工程为背景、以工程技术为主线的地方院校计算机科学与技术专业培养模式,通过近几年的探索与实践,培养模式的实施取得了初步成效。  关键词:三位一体;培养模式;专业建设  作者简介:姚敦红(1972-),男,湖南怀化人,怀化学院计算机科学与技术教研室主任,讲师。(湖南 怀化 418008)  基金项目:本文系怀化学院“专业
期刊