融合概率论知识的Java 程序设计项目式教学研究

作者: 梁妍 马驰

融合概率论知识的Java 程序设计项目式教学研究0

摘要:Java程序设计是计算机科学与技术专业的核心课程。为了培养学生的编程思维和创新实践能力,探索了一种融合概率论知识的Java程序设计教学模式,通过教学内容、教学过程和考核方法的设计和实施,将概率论中的典型问题转化为Java程序设计的任务和挑战。调查问卷和教学效果验证了该教学模式对于提高学生的学习成绩和创新能力的有效性。

关键词:教学改革;项目式教学;Java程序设计;概率论

中图分类号:G642 文献标识码:A

文章编号:1009-3044(2025)01-0146-03 开放科学(资源服务) 标识码(OSID) :

0 引言

根据教育部高等教育司2023年工作要点,实施系列“101计划”是推进基础学科和“四新”关键领域核心课程建设的重要举措,其中包括新一代信息技术等新工科相关领域[1]。这些举措要求高等院校不仅要注重知识传授,更要注重能力培养,数学思维、创新教育等方面的融合。Java程序设计是计算机科学与技术专业的核心课程之一,对培养学生的编程思维和创新能力具有重要作用。然而传统的Java程序设计教学模式往往缺乏实际应用场景的引入,导致学生对程序设计的兴趣和动机不足,难以深入理解和掌握Java语言的特点和优势[2]。这种缺乏实际应用场景的引入的原因有多方面,一方面是由于Java语言本身涉及的知识面较广,需要掌握多种编程范式和技术框架,而传统教学模式往往只能覆盖其中一部分;另一方面是由于后续专业课尚未开始,没有为学生提供更多运用Java 语言解决实际问题的机会[3]。

为了改善这一现状,本文探索了一种融合概率论知识的Java程序设计教学模式,将概率论中的典型问题和算法转化为Java程序设计的任务和挑战,激发学生的学习兴趣和主动性,提高学生的编程能力和问题解决能力。融合概率论案例的原因是基于以下几点考虑:一是概率论是数学思维的重要体现之一,与计算机科学有着密切联系;二是概率论中的问题和算法具有丰富多样、形象直观、逻辑清晰、可操作性强等特点,适合作为Java程序设计的案例素材;三是概率论后续专业课(如机器学习等) 需要在3~4学期后才会出现,Java程序设计课程引入概率论知识,可以解决专业课知识点有效衔接问题。

1 课程现状及问题分析

新工科背景下,软件产业对人才的需求是具备实践能力、创新能力和协同能力的高素质复合型人才,而现在Java程序设计教学存在以下主要问题:

1) 教学目标过于单一化,缺乏与数学基础知识的有效衔接。Java程序设计教学与数学教学之间缺乏有效的联系和互动,导致学生在学习Java时感觉与数学无关,而在学习数学时感觉与编程无关。这样就造成了两种知识的孤立和脱节,使得学生难以理解概率论在计算机科学中的重要作用,如在机器学习、数据挖掘、人工智能等领域的广泛应用。因此,学生对Java程序设计的学习缺乏兴趣和动力,也难以掌握概率论的基本概念、定理和方法[4-5]。

2) 教学内容过于理论化,缺乏实际应用场景的引入。Java程序设计教学过于依赖传统的教材和教法,导致教学内容过于单一和枯燥,教学方式过于机械和死板。这样就使得学生在学习Java时只是被动地记忆语法规则和模仿代码示例,而没有主动地思考问题和解决问题。这样就造成了编程思维和逻辑推理能力的缺失,使得学生难以应对复杂的编程任务,也难以发挥创新精神和创造性[6-7]。

3) 教学方法过于传统化,缺乏项目式的教学方式。Java程序设计教学缺乏与实际问题和场景相结合的教学案例和项目,导致教学内容与实际需求脱节,教学方式与实际工作方式不符。这样就使得学生在学习Java时只是在虚拟的环境中进行编程练习,而没有在真实的环境中进行编程实践。这样就造成了实际编程经验和团队协作能力的缺乏,使得学生难以适应社会和产业对高素质编程人才的需求[8]。

2 课程改革设计

Java程序设计课程的教学目的是让学生掌握Java 程序设计的基本语法和面向对象的思想,能够使用Java语言解决实际问题。同时,通过引入概率论的案例,提高学生的编程能力和问题解决能力,实现学科交叉融合的目标。

2.1 教学内容设计

课程的教学内容分为三个模块,每个模块包含若干个章节。具体内容包括:1) Java语言基础,介绍Java 语言的基本语法和特点,流程控制语句以及数组和字符串;2) Java面向对象编程,介绍Java语言的面向对象编程思想,包括类、对象、封装、继承、多态、抽象类、接口等;3) Java常用API,介绍Java语言的数据结构和算法,界面设计Swing等。

概率论在诸多领域都有应用,经典的问题有三门问题、扑克牌问题、生日悖论、赌徒破产问题等。以三门问题[9]为例,它是一个经典的概率问题,它涉及条件概率和贝叶斯公式的应用。Java程序可以模拟三门问题,教学知识点与模拟项目的对应关系如下所示。

1) 数据类型:定义三个整型变量来表示三扇门的编号,以及一个布尔型变量来表示是否换门的选择。使用随机数生成器来模拟主持人和参赛者的选择。

2) 运算符:使用算术运算符和取余运算符来计算不同情况下的中奖概率。使用逻辑运算符和关系运算符来判断是否中奖和是否换门。

3) 流程控制:使用if-else语句来处理不同的选择和结果。使用for 循环来重复实验多次并累计统计数据。

4) 数组、列表、栈、队列:使用数组或列表来存储三扇门的状态,以及参赛者和主持人的选择。使用栈或队列来模拟主持人排除一扇错误的门的过程。

5) 类和对象:定义一个类来封装三门问题的逻辑和数据,包括属性和方法。创建一个对象来调用类中的方法并输出结果。

6) 继承、多态:定义一个抽象类或接口来规范三门问题的行为,如初始化、选择、排除、判断等。定义一个子类来继承或实现父类或接口,并重写其中的方法。

7) 界面显示:使用Swing图形库来创建一个可视化的界面,显示三扇门的图像,以及按钮和文本框等控件,让用户可以交互式地进行实验并查看结果。

2.2 教学过程

在Java程序设计教学过程中,受到学时等客观因素的限制,采用了情景教学法[10],学生通过主动探究和解决问题,提高对Java语言和程序设计的理解和兴趣,培养创新思维和实践能力。主要流程如下:

1) 情境设计。教师利用多媒体方式,展示三门问题的视频,让学生想象自己是参加三门问题游戏的选手,引起学生的兴趣和注意力,并与学生进行简单的互动,引导学生需要用Java语言编写一个程序来帮助自己做出正确的选择。

2) 先行组织。学生分组进行合作学习,每个小组由四到五名学生组成。向学生介绍本次项目的目标、要求、评价标准和时间安排,并提供一些参考资料和资源,如Java语言的基本语法的书籍、网站、视频等。教师指导学生查找资料,并提出预习问题,围绕这些问题去进行思考与学习。

3) 情景呈现。教师简要介绍基本概念和公式,并给出示例的主要步骤和结果。以“类和对象”章节为例,定义一个类来封装三门问题的逻辑和数据,包括以下属性和方法:①一个长度为3的整型数组doors,用来表示三扇门后面的内容,0代表山羊,1代表汽车。②一个整型变量choice,用来表示参赛者选择的门的编号。③一个整型变量open,用来表示主持人开启的门的编号。④一个布尔变量switch,用来表示参赛者是否换门。⑤一个构造方法MontyHall(),用来随机初始化doors数组,并打乱顺序。⑥一个方法choose(intc),用来让参赛者选择一扇门,并将choice赋值为c。⑦一个方法open(),用来让主持人开启一扇有山羊的门,并将open赋值为该门的编号。⑧一个方法switch(),用来让参赛者换另一扇未开启的门,并将switch赋值为true。⑨一个方法result(),用来判断参赛者是否赢得汽车,并返回布尔值。⑩然后,可以创建一个MontyHall对象,并调用其方法来模拟一次游戏过程,并输出结果。

4) 学习研讨。将学生分成若干小组,分配任务和角色,如组长、开发人员、测试人员等,学生在小组内进行讨论和协作,利用所学的知识和技能,完成程序设计、编码、测试、分析等过程,并记录下自己的思路、方法、结果和遇到的问题。

5) 反思优化。每个小组展示自己的程序设计和运行结果,并邀请其他小组进行评价和提问。引导学生对比不同小组的程序设计和运行结果,并分析其中的优缺点、异同点等。学生反思自己在程序设计中遇到的困难和问题。

6) 融会贯通。总结本节课的主要内容和要点,并与学生一起回顾本节课的教学目标和要求,检查学生是否达到了预期的效果。教师可以鼓励学生将所学的知识和技能与其他领域或学科进行联系和拓展,如数学、物理、经济、金融等,并引导学生思考这些知识和技能对自己的学习和生活的意义和价值。

2.3 考核方法

考核方法综合项目展示和试卷测试两种方式。项目展示占总成绩的60%,项目展示考核学生对所学知识的综合运用能力和沟通表达能力。试卷测试占总成绩的40%,试卷测试考核学生对所学基本知识的掌握程度和理解能力。详细考核方式如表1所示。

3 改革效果的评估和反馈

3.1 满意度调查

为了了解学生对教学改革的认知和评价,设计了调查问卷,共包含10个问题,涉及学生对教学改革的总体印象、帮助程度、作用、影响、贡献、喜欢程度、不喜欢程度、改进意见等方面。问卷采用五级量表法,让学生根据自己的实际情况选择最符合自己的选项。问卷调查通过教务系统进行发放,参与学生为2021级软件工程专业220名同学,“对改革的总体印象”问题可以得到图1所示的数据柱状图。根据数据分析结果,绝大多数(82.3%) 的学生对教学改革表示非常满意或满意,只有少数(4.5%) 的学生表示不满意或非常不满意,说明教学改革在总体上得到了学生的认可和支持。

3.2 教学效果对比

针对改革前2020级学生和改革后2021级学生的成绩分析,对比柱状图如图2所示。从数据中可以看出,2017级的学生在各个方面都比2016级的学生有所进步,其中总体平均分分别为80.1分和78.5分,提高幅度为2.1%。最高分、最低分分别为96.0分、58.0 分,提高幅度分别为1.1%、5.5%。优秀率、良好率、及格率分别为17.3%、40.0%、37.3%,提高幅度分别为10.9%、3.9%、4.2%,同时,2021级的不及格率比2020 级的低,分别为5.5%和10.1%,降低幅度为45.5%。

4 结束语

融合概率论知识的项目式教学模式,可以提高学生的编程能力和问题解决能力,实现学科交叉融合的目标。将概率论中的典型问题和算法转化为Java程序设计的任务和挑战,激发学生的学习兴趣和主动性,提高了学生对课程的参与度。在今后的教学实践中还需进一步探索教学模式的普适性、教学资源的完善性等问题。

参考文献:

[1] 教育部高等教育司.教育部高等教育司2023年工作要点[EB/OL].[2024-03-29]. http://www.moe.gov.cn/s78/A08/tong⁃zhi/202303/t20230329_1053339.html.

[2] 李莉,汪红兵,李新宇,等.面向新工科和金课建设的Java程序设计课程实践教学内容改革[J].计算机教育,2022(4):52-55.

[3] 葛萌,欧阳宏基,张忠.翻转课堂教学模式在“Java程序设计”中的应用研究[J].微型电脑应用,2020,36(5):34-36.

[4] 郑庆华,张健,鲍崇高,等.抓好基础课程质量建设,促进基础课程教师发展[J].高等工程教育研究,2016(1):87-91.

[5] 李娟,黄承宁.应用型本科离散数学课程分层教学改革与实践[J].电脑知识与技术,2022,18(30):131-133,174.

[6] 崔晓龙,张敏,张磊,等.新工科背景下应用型大数据人才培养课程群研究与建设[J].实验技术与管理,2021,38(2):213-218.

[7] 陈益.程序设计课程群的多层次教学新生态构建[J].计算机教育,2023(1):172-175.

[8] 欧阳宏基,葛萌,郭新明.Java技术的应用型人才培养模式研究[J].微型电脑应用,2019,35(9):14-16.

[9] 李勇,刘璐“. 三门问题” 的反思[J].数学通报,2018,57(9):7-10.

[10] 陈暄.基于认知学徒制的虚拟学习情境的设计与实践:以《C语言程序设计》为例[J].职教论坛,2016(26):72-75.

【通联编辑:王 力】

基金项目:本文得到广东省重点建设学科科研能力提升项目(No.2021ZDJS082);惠州学院网络教学改革项目(编号:WLJG006) 资助

上一篇 点击页面呼出菜单 下一篇