数据结构实践课程教学改革探析

时间:2022-10-13 09:42:17

摘要:传统实践教学方式侧重于学生知识能力的积累以及编程能力的锻炼,而在学生综合素养方面的培养考虑较少。

数据结构实践课程教学改革探析

1引言

数据结构是计算机学科的专业基础课程之一,在计算机专业课程体系中起着承上启下的作用[1]。该课程不仅为学科后续其他专业课程提供必备的知识储备,更重要的是课程实践中构造性思维的锻炼和良好的编程能力为学生毕业后从事本专业工作打下一定的基础。因此,本文从学生知识能力和综合素养的培养为出发点,提出利用综合项目作为驱动的数据结构实践教学改革。

2传统实践课程设计

数据结构实践课程传统的教学内容设计分为:基础性实验、应用性实验以及扩展性应用实验。以线性表为例,基础性实验内容包括线性表中的插入、删除、查找等基本操作的实现。应用性实验主要围绕将已实现的结构应用到简单的问题解决,如集合合并问题、有序表合并问题等。扩展应用实验则是结合实际问题中的数据分析,对所学结构进行修改并设计相应算法解决问题,如一元多项式求和问题[2]。通过实践方式,学生能够掌握常见抽象数据类型及其基本操作的实现,常用的查找算法、排序算法的实现并在非数值计算机问题中能够灵活运用。但该方式的教学仍存在以下一些问题。(1)学生从面向过程到面向对象的编程思想转变有一定的难度。学生经过一学期的C语言学习,但没有经过系统的软件开发训练,仍然存在编程基础差、代码调式能力弱等问题。这些因素会严重影响学生完成课程实验的质量。(2)学生编程能力参差不齐,教师指导无法具有针对性,课堂效率低下。课堂上教师对于实验讲解过于详细,导致学生独立思考的能力被制约。反之教师讲解的较为粗略或是只给题目、指导过少,学生遇到问题则无法及时解决,可能出现严重复制他人代码的现象。(3)课程实验内容设计过于被动化和模块化。学生根据给定题目编码实现结构及解决给定问题的程序,缺乏对课程内容的自主思考。以至于在课程学习结束后,学生仍无法理解对课程前后内容进行关联分析,对所学结构进行综合应用的方法。(4)以学生提交解决问题的程序配合实验报告作为考核依据的课程考核方式不合理。这种考核方式容易忽视掉学生的实际代码编写及调试能力,必然导致课程设计的教学效果欠佳。在传统实践课程设计模式下,学生未能在实践中理解构造性思维方法,未能自主理解程序设计与数据结构和算法的关系。同时这种模式对于学生综合素养方面未有明显的锻炼,与提高人才培养质量的教学目标是相违背的。

3项目驱动实践改革

本文结合传统教学设计存在的问题,提出项目驱动、线上线下相结合的实践改革方案,将实验设计为基础性实验和综合项目,具体特色如下:(1)利用线上实验测评平台辅助基础性实验教学的开展。不受课堂时间和地点限制,实验内容在题型、题量上设计可以更加灵活丰富。另外测评平台有系统查看学生提交代码情况等优势,有助于学生自主查阅资料解决问题能力的提高。(2)增加综合项目设计实现部分。按照三个阶段模拟项目开发实现的流程,锻炼学生综合应用结构和算法解决复杂工程问题的能力。同时引入小组分工合作、项目文档撰写、项目验收介绍等环节,进一步锻炼学生的综合素养。实践课程总学时为30学时,内容按照数据结构的实现及应用、综合项目的调研选题、查找排序算法的实现及应用到综合项目的编码实现及验收检查等进行安排。

3.1基础性实验教学设计

实践课的教学目的是通过实验训练对理论教学知识点中的重点难点加深理解,掌握综合应用所学技术解决复杂工程的能力。(1)基础性实验内容包括常见的抽象数据类型采用顺序存储或是链式存储实现,经典查找算法、排序算法的编码实现并在非数值计算机问题中进行灵活运用。基础性实验要求每个学生单独完成,学时安排为22学时,跨度贯穿整个理论课的教学过程。该部分实验设计的主要目是对数据结构理论课程教学中的重点知识进行巩固、强化,培养学生运用所学基本概念和编程技能实现数据结构及其算法的能力[3]。(2)实验教学借助现有成熟的拼题A程序设计类实验教学辅助平台进行。教师利用平台上丰富的题型设计实验内容,从判断题、选择题、程序填空题、函数题、编程题由易到难、由浅入深设计每章节的实验内容[4]。课内实验设计基本以填空题、函数题和编程题为主。教师设计好实验内容并定时和结束题目集,学生在线提交代码进行测试。测评系统能够实时查看评测结果,结合评测结果提示学生能够及时发现问题解决问题。教师也可以结合学生的提交情况,整理题目集中共同的问题,发现难点进行有针对性的答疑解惑,从而提高课堂的效率。利用线上测评平台,学生不受地理和课堂时间的限制,根据自身情况由易到难、循序渐进地完成实验内容,有效提高其自主解决问题的能力。

3.2综合项目教学设计

综合项目要求按小组进行,每组学生不超过3人。该部分安排8学时,跨度为4周进行。项目按照“调研选题-功能设计-详细设计-编码实现-测试-提交”这一过程进行。(1)第一阶段教师项目任务书文档,布置项目调研选题任务。在任务书中明确项目选择的数据结构、查找算法、排序算法以及测试数据的存储等要求。选题以学生主动、适度、适量为基础进行调研确定。每个小组可以结合学生自身能力进行合理分工,要求每位学生都参与到综合项目设计和实现。在实施过程中,由于大学二年级的学生未经过系统的软件开发训练,普遍缺乏分析和编写较大程序的经验,对于软件开发的基本流程全无了解,不具备驾驭全局解决实际问题的能力。教师可以引导学生综合利用已有知识和兴趣点进行课程设计,尽量选题多样化。该阶段要求每个小组结合“项目的功能-拟选择的结构-拟实现的结构操作-结构拟采用的存储结构-拟构造的输入测试数据-拟构造的输出测试数据”等内容,完成项目初步计划表。(2)第二阶段项目编码实现。学生利用C/C++等编程语言对项目设计的结构、算法进行编码实现。该阶段需要发挥小组的团队协作能力,协调不同学生负责的功能模块的开发和调用关系[5]。教师结合各组制定的计划表,监督进展情况,并作出实时的指导和答疑。(3)第三阶段为项目的验收检查,采用检查系统代码以及提交项目报告的方式进行。系统检查按照“功能演示-数据结构设计-算法设计-代码介绍”流程进行。小组成员针对自己完成的模块进行讲解并回答教师的提问[6]。教师从结构设计的合理性和复杂性、算法设计的复杂性以及是否注意效率问题、测试数据输入输出方式、项目的创新性等分别对每个小组的完成情况给出具体的评价。在系统检查过程中,教师针对项目设计的不足之处提出相应的建议,并结合问题的方式引导学生对数据、数据结构、算法、程序设计关系进行梳理,对复杂程序设计方法的掌握。

3.3课程的考核

包括基础性实验部分(50%)、综合项目(40%)、平时表现(10%)三部分。平时表现主要是学生考勤、课堂纪律遵守等方面。基础性实验主要结合学生完成基础性实验的数量以及独立完成程度进行打分。该部分由测评系统提供的数据作为参考。综合项目部分主要以小组为单位进行考核。教师从文档的撰写质量,项目展示的质量、项目完成的饱满度和复杂性、项目的创新性和实用性等方面进行评价。学生个人能力考查由教师和组长分别打分评价,教师结合学生个人对其在项目中的设计和实现部分的理解表达,以及和其他成员之间的协调合作等方面综合评价。

4教学成效

项目驱动的课设改革目前在2021学年上学期、下学期分别对计算机科学与技术专业、软件工程专业的2020级学生在数据结构实践课程教学中实施,并收到了良好的教学效果:(1)2021学年上学期项目选题共37组,其中采用2种结构及以上的占81%,用到哈希算法的占3%。图结构及应用选题1个,评选出优秀作品2个,良好作品3个。而2021学年下学期项目选题54组,其中采用2种结构及以上的占88.5%,用到哈希算法占21.2%。图结构及其算法的应用选题增加了3个,最后评选出优秀作品6个,良好作品8个。随着改革措施的推进,学生课设作品质量有明显的提升。(2)在2021学年下学期期末时,教师通过问卷调查方式获取学生对实践教学的反馈。调查数据显示,94%的学生认为经过实验课程的学习编程能力有所提高,99%的学生能够接受线上提交测评的方式完成基础性实验。从测评平台上获取学生习题集完成情况的数据分析表明:2021学年上学期习题集完成80%以上的学生数占比约88.7%,2021学年下学期习题集完成80%以上的学生数占比约93.4%。可知利用在线程序设计类实验测试平台协助基础性实验的教学实施,有效提高实验效率。(3)针对综合项目的问卷调查数据显示,96%的学生认为综合项目有效提高自己对数据结构和算法的综合应用能力;63.5%的学生认为综合项目能够帮助自己更为系统地理解程序设计与数据结构和算法的关系,编码能力得到了锻炼;还有35%的学生反应对于部分结构的应用还不是很懂;57.5%的学生认为自己在综合项目上的表现已达到预期的教学目标。

5总结

传统实践教学方式侧重于学生知识能力的积累以及编程能力的锻炼,而在学生综合素养方面的培养考虑较少。项目驱动的实践教学模式前期利用在线测评系统辅助基础性实验的实施,实现了学生对数据结构和算法实现原理的理解,有效地锻炼其自主学习能力的教学目标。实践教学后期引入综合项目,有效地驱动学生自主使用课程知识分析问题、解决问题的能力。通过实践加深对理论知识的理解、对程序设计与数据结构和算法关系的理解,提高学生程序设计能力。该教学设计不仅训练了学生复杂工程的编码能力,同时激发学生自主学习的热情,对学生的沟通、团队协作、文档撰写等综合素养进行了培养。这一学年实践课程改革的教学效果比传统的教学模式有显著提高,学生学习的积极性得到充分调动。但在实施过程中仍存在很多问题:如何引导学生选题多样化,项目中复杂算法的应用;项目文档的规范化、标准化、项目过程管理、课程考核的细化等方面需要在今后的教学中不断改进完善。

参考文献

[1]雷庆,张洪博,叶双.新工科背景下数据库系统原理课程的改革.福建电脑,2020,36(02):23-28

[2]严蔚敏,吴伟民.数据结构(C语言).北京:清华大学出版社,2021

[3]龙颖波,刘远刚,何贞铭,蔡永香,李功权,邓帆.GIS专业数据结构课程设计教学内容优化.计算机时代,2019(12):81-84

[4]孙笑微.基于PTA平台的《C语言程序设计》教学改革与实践.沈阳师范大学学报:自然科学版,2020,38(4):377-380

[5]赵晓,何立风,孙连山,李健,张行.双模式驱动的数据结构课程设计.计算机教育,2016(5):41-43

[6]孙玉霞,杨朋英,熊旭辉,黄烜,刘红日.算法与数据结构课程设计教学中的实践探究.电脑知识与技术,2016,12(32):139-140

作者:陈亦萍 单位:福州大学至诚学院计算机工程系

上一篇: 现代企业财会管理创新探究 下一篇: 物业上市公司全面预算管理研究
相关文章
精选范文
相关期刊