APP下载

基于编程比赛的Java版数据结构教学模式探讨

2023-08-29董剑波

互联网周刊 2023年16期
关键词:数据结构教学模式

摘要:传统的数据结构教学方法存在理论与实践脱节、学生动力不足等问题,而编程比赛作为一种具有挑战性和竞争性的学习环境,为学生提供了实践应用数据结构理论的机会。通过设计合适的教学模式,将编程比赛与数据结构课程相结合,可以激发学生的学习热情,提高他们的编程能力和问题解决能力。本文对基于编程比赛的Java版数据结构教学模式的设计和实施过程进行了研究,并评估了其对学生学习成果的影响。研究结果表明,该教学模式能够有效提升学生的数据结构应用能力和编程技巧,为学生参与编程比赛和实际软件开发奠定坚实基础。

关键词:数据结构;Java;编程比赛;教学模式

引言

2021年4月,全国职业教育大会提出,要推动“岗课赛证”融通,提高教育质量;同年10月,中共中央办公厅、国务院办公厅在《关于推动现代职业教育高质量发展的意见》中又指出,要完善“岗课赛证”综合育人机制。以编程比赛为基础的教学模式能够以大赛标准为课程考核标准,有效将“赛”和“课”融通[1]。

在现代计算机科学教育中,数据结构是一门基础而重要的课程,为学生提供了解决复杂问题和优化算法的基础知识和技能。然而,传统的数据结构教学方法往往偏重理论和概念的讲解,学生在实践应用方面存在挑战。此外,学生的学习动力也常常受到影响,缺乏对数据结构实际应用的兴趣和激情。因此,寻找一种能够激发学生学习兴趣和提高实践能力的教学模式具有重要意义。

基于编程比赛的Java版数据结构的实现更加简洁和易于管理,比如提供了集合框架(collection framework)和泛型(generics)等功能。Java采用垃圾回收机制来管理内存,不需要手动分配和释放内存。Java拥有规模庞大、功能强大的类库,提供了丰富的数据结构和实现算法,如链表、树、堆、哈希表等[2]。通过将编程比赛与数据结构课程相结合,可以激发学生的学习热情,提高他们的编程能力和问题解决能力。同时,我们也希望通过这种教学模式培养学生的团队合作能力、创新思维和竞争意识。

1. 数据结构教学概述

数据结构在计算机科学教育中具有重要性,已得到广泛研究和认可。有研究表明,数据结构的学习可以帮助学生发展算法设计和分析的能力,提高程序设计的效率和质量,以及应用数据结构解决实际问题。然而,教学数据结构也面临一些挑战和需求,学生对于数据结构的抽象概念可能存在理解困难。因此,研究者提出了各种教学方法和策略,如引入实际案例、问题驱动学习和编程比赛等,以提高学生的学习兴趣和动力。此外,教师还需要提供适当的实践环境和工具支持,以帮助学生应用和实践不同的数据结构。

2. 编程比赛的作用和意义

2.1 编程比赛在学生编程能力培养中的作用

(1)实战经验。编程比赛提供了一个实战的平台,让学生能够在真实的竞争环境中应用和展示他们的编程能力。这有助于学生将课堂学习中的理论知识转化为实际的编程实践,加深对数据结构的理解和应用。

(2)解決问题能力。编程比赛通常涉及解决复杂的问题和算法挑战,要求学生能够分析问题、设计算法,并实现高效的程序[3]。通过参与比赛,学生可以锻炼和提高问题解决能力,培养创新思维和团队合作精神。

(3)学习和分享经验。在编程比赛中,学生可以与其他参赛者交流和分享编程经验、优化算法的方法等。这有助于学生从其他人的经验中学习,拓宽视野,发现自己的不足,并改进自己的编程技能和策略。

2.2 编程比赛对数据结构教学的价值和意义

(1)提高学习动力。编程比赛可以激发学生对数据结构的学习兴趣和动力。比赛中的挑战和竞争使学生更加积极主动地学习和应用数据结构,追求更高的成绩和排名,从而提高他们的学习效果和投入程度。

(2)实践应用。编程比赛要求学生在规定时间内解决问题并提交代码。这种实践应用的方式可以帮助学生将数据结构的知识转化为实际的编程实践,加深对数据结构的理解和掌握。

(3)锻炼综合能力。编程比赛不仅要求学生掌握数据结构的知识,还需要他们具备分析问题、设计算法、实现代码的能力。参与编程比赛可以培养学生的综合能力,提高他们的问题解决能力和编程技巧。

3. 基于编程比赛的Java版数据结构教学模式设计

3.1 设计教学模式的目标和原则

设计教学模式的主要目标是通过编程比赛的形式,激发学生的学习兴趣,促使他们深入理解数据结构的原理和应用。通过编程比赛的实践,让学生掌握数据结构的实际应用,培养他们解决实际问题的能力。该教学模式应当遵循以下原则[4]:

(1)实践导向原则:注重学生的实践能力培养,将理论知识与实际编程相结合,使学生能够熟练运用数据结构解决实际问题。

(2)竞争激励原则:通过编程比赛的竞争机制,激发学生的学习动力和竞争意识,推动他们不断提升自己的编程能力。

(3)个性化学习原则:根据学生的不同水平和需求,提供个性化的学习支持和指导,让每个学生都能在比赛中找到适合自己的学习路径。

(4)团队合作原则:鼓励学生通过组队参与编程比赛,培养他们的团队合作能力和沟通协作能力,提高整体的学习效果。

3.2 教学内容和案例的选择

基于比赛中需要用到职业岗位任务中的知识点,教学内容应包括基本的数据结构:数组、链表、栈和队列;查找和排序算法:二分查找、冒泡排序、快速排序,以及通过时间复杂度和空间复杂度来比较不同的排序算法;树和图的应用:二叉树、AVL树、图的邻接矩阵和邻接表表示方式,以及图的深度优先搜索和广度优先搜索算法[5]。根据学生基础能力,可以适当删减部分内容,比如高职院校学生如果数学基础较差,就可以不深入讲解图的相关知识。

案例的选择应该兼顾内容的难易度、实用性和趣味性,使学生在逐步掌握应用数据结构知识的同时能保持学习的兴趣和动力。比如让学生利用数据结构和算法解决迷宫问题,如使用栈或队列实现迷宫路径的搜索;让学生利用栈实现表达式的计算,包括中缀表达式转后缀表达式等。

3.3 教学环境和工具的配置

合适的教学环境和工具的配置对于学生的学习和实践非常重要,以下是一些建议:

(1)在线评测系统:结合在线评测系统,如HackerRank、LeetCode或Codeforces,为学生提供数据结构相关的编程题目,并自动评测学生的代码。

(2)虚拟化环境:配置一个虚拟化环境,如VirtualBox或Docker,用于快速创建和管理虚拟机,为学生提供统一的实验环境,并降低配置和部署的复杂性。

(3)教学平台:使用一个教学管理系统(如Moodle)来组织课程内容、发布作业和获取学生反馈。这样可以集中管理教学资源和学生作业,并为学生提供及时的反馈和评估。

(4)集成开发环境(IDE):选择一个功能强大且易于使用的Java集成開发环境,例如Eclipse、IntelliJ IDEA。这些IDE提供了编码、调试和项目管理等功能,方便学生进行数据结构的编程实践。

(5)版本控制工具:配置一个版本控制工具,如Git,用于管理学生的代码版本和协作,也可以托管代码,可以保证学生的代码安全,并支持多人合作开发[6]。

4. 实施和评估

4.1 教学模式的实施过程

制定明确的教学目标和计划,确定课程的内容、教学方法和评估方式,设计合适的案例。利用案例讲解数据结构的基本概念、算法和应用场景,向学生介绍Java编程语言的相关知识和技巧。选择一些与数据结构相关的编程题目作为编程比赛的项目,将学生分为小组或团队,每个团队由3~4名学生组成,教师提供指导和辅导,帮助学生理解题目要求,提供解题思路和算法设计的指导,学生团队在规定的时间内完成编程比赛项目[7]。教师对学生的编程比赛项目进行评估,并提供及时的反馈和建议。学生团队分享他们在编程比赛中的经验和教训,讨论解题思路、算法优化和代码实现等方面的问题。

4.2 总结学生的学习成果和反馈并评估教学模式对学生编程能力的影响

对学生完成的编程作品进行评估,包括代码的正确性、功能的实现程度、算法的优化等方面,也可以提供一个评估表或问卷,让学生评估自己在不同方面的能力提升和学习收获,例如编程技巧、算法设计、问题解决能力等[8]。然后通过问卷调查、小组讨论或个别面谈的方式收集学生的反馈,了解他们对教学模式的感受和看法。通过对学习成绩的统计分析,可以了解学生的整体学习情况和能力提升情况。最后观察学生在课堂上的参与度、学习态度和问题解决能力,并记录相关的观察结果。根据学生的学习成果和反馈,以及对教学模式的评估结果,进行教学模式的改进和调整。可以针对学生的需求和问题,优化教学内容、教学方法和评估方式,以提高教学效果和学生的编程能力[9]。

5. 教学模式的优势和局限性

基于编程比赛的教学模式提供了一个创新和探索的空间,学生可以尝试不同的算法和数据结构,挑战自己的编程能力。学生通过参与比赛,追求优秀的成绩和排名,从而更加积极主动地学习数据结构和算法知识。通过实际编码的过程,学生可以更深入地理解和掌握数据结构的原理和应用。通过解决复杂的编程问题和算法的过程,学生可以培养自己的问题解决能力和创新思维[10]。通过团体竞赛项目可以培养学生的团队合作能力、沟通能力和协作能力,提高他们在实际工作中的综合能力。学生的比赛结果会被实时评估和排名,他们可以及时得到反馈和评估结果。这种实时反馈和评估机制有助于学生及时发现和纠正自己的问题,促进他们的学习和成长。

同时,这种教学模式也存在一定的挑战,编程比赛的竞争性质可能会使学生感到压力和焦虑。他们可能过度关注比赛结果而忽视了学习过程中的深入理解和知识应用。数据结构作为一个广泛的领域,涵盖了多种数据结构和算法,但是编程比赛通常会着重解决特定类型的问题,缺乏全面性。编程比赛的评估和反馈通常以比赛结果和排名为主,而缺乏对学生知识和技能的全面评估。可以考虑引入包括作业、项目和实践等更全面的评估方式,以提供更准确的学生反馈和个性化的指导[11]。教师的培训和支持会带来额外的成本,基于编程比赛的教学模式需要教师具备丰富的数据结构和编程知识,并熟悉比赛规则和评估标准。因此,对教师的培训和支持是必要的,以确保他们能够有效地指导学生,并提供必要的技术支持。

6. 结果与讨论

基于编程比赛的Java版数据结构课程教学模式在实施过程中取得了积极的效果。

(1)通过参与编程比赛,学生得到了大量编程实践机会,锻炼和提升了编程能力,学会了如何将数据结构和算法知识应用于实际问题的解决中,提高了代码的效率和质量。

(2)编程比赛要求学生解决复杂的编程问题,这促使他们深入理解不同数据结构的原理和应用。通过实践的过程,学生加深了对数据结构的认识,并能够选择和应用适当的数据结构来解决问题。

(3)编程比赛通常以团队为单位进行,学生需要与队友合作,共同解决问题。这培养了学生的团队合作精神、沟通能力和协作能力,提高了他们在团队合作中的表现和贡献。

(4)编程比赛中的问题通常具有一定难度和复杂性,学生需要通过分析、设计和实现来解决这些问题。这培养了学生的问题解决能力和创新思维,使他们能够独立思考并提出有效的解决方案。

(5)编程比赛中,学生的编程作品会被实时评估和排名,他们可以及时得到反馈和评估结果。这种实时反馈有助于学生发现和纠正问题,并促进他们的学习和进步。

(6)激发学习兴趣和动力:编程比赛的竞争性和实践性激发了学生的学习兴趣和动力。学生通过参与比赛,追求优秀的成绩和排名,更加积极主动地学习数据结构和算法知识。

教育部鼓励高校开展以赛促教、以赛促学的教学模式,将比赛与教学相结合,提高教学质量和学生创新能力。基于编程比赛的Java版数据结构课程教学模式,符合这一政策导向。而且这种教学模式通常需要与外部机构或企业进行合作,提供实践机会和项目支持,这种合作可以促进高校与社会的紧密联系,拓展学生的社会实践机会,为他们提供更广阔的职业发展平台,所以这种教学模式有望得到更广泛的推广和应用。需要注意的是,教学模式的实施效果和学生学习成果受多种因素的影响,如教师的指导和支持、学生的学习态度和能力等。因此,在实施教学模式时,需要综合考虑这些因素,并根据实际情况进行适当调整和优化,以最大限度地提高实施效果和学生学习成果。

结语

高校承担着为社会提供高质量人才的重任。为了更好地满足软件工程专业人才培养的需求,文章对软件工程系学生的数据结构课程的课堂教学设计以及教学方法展开了讨论,将各种现代化的教育技术手段和方式综合应用到了教学中。以Java为基础,构建了程序设计类课程体系,并制订了与市场需要相匹配的培养计划,这對保证软件人才培养的质量有着十分重要的作用。所以,教师应该努力将这门课程逐渐打造成一门对学生有益的、能更好地帮助学生增长知识、提高能力的“金课”,为培养出社会所需的高品质人才而不断改进与创新。

参考文献:

[1]中共中央办公厅 国务院办公厅印发《关于推动现代职业教育高质量发展的意见》[A/OL].(2021-10-21) [2023-07-19).https://www.gov.cn/gongbao/content/2021/content_5647348.htm.

[2]陈仕军,陶茂虎,王前.基于python语言版“数据结构与算法”的教学改革与实践[J].湖北工程学院学报,2022,42(3):58-62.

[3]段韶鹏,温文豪,轩春青,等.基于Java的混合数据结构教学演示系统优化设计[J].信息与电脑,2019,(1):100-101.

[4]胡建华,鄢旭.基于数据结构与简化内存模型的Java集合教学方法研究[J].计算机教育,2018,(5):30-32.

[5]丁子康,杜梅.Java教学与数据结构教学的衔接与融合[J].信息与电脑,2018,(4):202-203,206.

[6]沈静,李陬.基于Java语言的独立学院《数据结构》教学改革和实践[J].福建电脑,2015,(5):58-59,14.

[7]滑亚慧,石锋,王建.基于工程认证的“数据结构”课程教学改革实践[J].教育教学论坛,2022,(44):54-57.

[8]路红,刘红英.基于OBE理念的数据结构课程教学改革研究[J].电脑与电信,2022,(4):29-32.

[9]熊回香,叶佳鑫.信息管理类专业数据结构课程教学改革探索[J].计算机教育,2022,(3):11-14.

[10]杨智明,杨天晴.工程教育专业认证背景下数据结构课程教学改革探析[J].文化创新比较研究,2021,5(32):82-85.

[11]陈黎黎,国红军.OBE理念下软件工程专业“数据结构与算法”课程教学改革研究[J].辽宁科技学院学报,2021,23(5):38-40.

作者简介:董剑波,本科,助教,研究方向:计算机方向课程设置。

猜你喜欢

数据结构教学模式
群文阅读教学模式探讨
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
高职高专数据结构教学改革探讨
“一精三多”教学模式的探索与实践
“导航杯”实践教学模式的做法与成效
5E教学模式对我国中学数学教学的启示
TRIZ理论在“数据结构”多媒体教学中的应用
《数据结构》教学方法创新探讨