基于博弈的程序设计基础课程教学案例设计

2023-06-03 13:13李飞邱虹坤孙玉霞蒋宁王亚杰
电脑知识与技术 2023年10期
关键词:五子棋计算思维程序设计

李飞 邱虹坤 孙玉霞 蒋宁 王亚杰

关键词:五子棋;计算思维;程序设计

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

文章编号:1009-3044(2023)10-0142-03

1引言

随着信息技术的不断发展,很多学科与计算机技术的融合越来越密切,对大学生计算机应用能力的要求也越来越强烈,用计算机解决问题的能力逐渐成为衡量大学生素质的标准之一。许多高校都为非计算机专业学生开设计算机程序设计类的必修课,程序设计基础作为一门计算机主干基础课程,其目标是让学生掌握一门计算机语言,培养学生用计算机调试程序和解决实际问题的能力,为后续的专业课的学习提供技术支持。

近年来,计算思维成为计算机相关课程改革的主要方向,需要解决的是如何将计算思维能力的培养落实到教学内容和过程中的问题。在2020年主题为“新时代、新计算、新教育”的计算机教育大会上,针对人工智能快速发展下,计算机教育的发展创新思路问题受到关注,会议提出要将人工智能赋能计算机课程教学中[1]。

计算机博弈又称机器博弈,是指让计算机模拟人的思维进行棋类等游戏的对弈。计算机博弈是计算机思维培养的重要载体,是人工智能领域的重要研究方向之一[2]。它涉及的方法主要包括:博弈问题的提出、棋盘的数据描述、棋面的评估模型、搜索算法的选择、算法的实现与优化、人机交互处理等方面,这些内容刚好与计算思维的思想相一致,非常适合培养学生的计算思维能力。

目前,很多学生沉迷于网络和电子游戏,以何种方式引导青年学生远离网络的危害一直是困扰家长和教师的难题[2]。而多个高校的实践证明,计算机博弈项目能迎合青年学生的愉悦、冒险、好奇和高对抗需求,让他们在快乐中分析、编程、斗智,既长知识,也长能力,既培养了计算机实践与创新能力,也培养了计算思维、科研思维和团队合作精神。笔者将博弈项目——五子棋程序的部分基础内容编写成适合程序设计基础教学使用的案例,让学生在博弈游戏中学习,不但调动了学习积极性,还提高了课程的挑战度和创新性符合“两性一度”的一流课程要求,取得了良好的教学效果。

2计算思维及人工智能概述

周以真教授在2006年提出计算思维(CT,Compu?tational Thinking)的概念,将其定义为运用计算机科学知识进行问题解、系统设计、人类行为理解等一系列思维活动。随着计算机科学迅猛发展,计算思维对很多领域的发展产生了深刻的影响[3-4]。在我国,中科院自动化所的王飞跃教授提出,目前的小学和初高等教学都引入了计算思维,但是仍然没有被提到一定的广度和高度,只有借助计算思维之力才能提高全民族整体素质[4]。教育部高等学校大学计算机课程教学指导委员会在《九校联盟(C9)计算机基础教学发展战略联合声明》中达成了C9共识,确定了以计算思维为核心的计算机基础课程的教学改革[6-8]。

人工智能(AI,Artificial Intelligence)是计算机科学的新分支,该领域的研究包括机器人、语言识别、图像识别、大数据处理等。其研究的主要目标是使机器能完成一些需要人类智能才能完成的复杂工作。近些年,人工智能的普及冲击着教育教学领域,许多高校不但开设了人工智能学院,在教育教学形态上,也发生了巨大变化,比如用机器阅卷取代人工批阅,使教师脱离了大量的重复性工作,用虚拟现实技术开展“沉浸式”教学,使学生在玩中学、在学中玩。在计算基础教学中,如何设计教学内容将计算思维“落地”,如何将人工智能与教学内容融合是值得我们思考的问题。

3五子棋博弈项目概述

五子棋(FIR,Five in a row)又称五子连珠,是一项起源于中国的棋类游戏。它是国际计算机奥林匹克大赛的竞赛项目,也是我国大学生计算机博弈大赛的竞赛项目。是一种集战略、战术和机会于一体的棋类游戏项目。下棋的棋盘与围棋棋盘相似,由纵横各15 条等距离的平行线组成,交叉形成225个落子点,如图1所示。下棋的规则是:黑方先行,落天元点位(棋盘中心),黑白方轮流落子,每次落一子,先形成五子连珠的一方获胜。在正式比赛中有随机开局、指定开局、三手交换和五手N打等规则的加入,既增加了棋的难度,同时也增加了棋的趣味性和机会性。

4课堂教学实例设计

现存教学案例中存在一些弊端,比如案例不统一、缺乏系统性和连贯性等问题,使课程教学不能达到预期的目标。针对上述问题,结合大学生计算机博弈项目,设计了一系列基于棋类游戏程序的教学案例[9-10]。在本文中,笔者选出五子棋程序中适合C语言教学的元素,设计成基础案例,以任务驱动形式不断完善案例,逐渐融入多个知识点,达到“寓教于乐”的目的。项目调动了学生的学习兴趣,得到了较好的学习效果,部分实例如表1所示。

限于篇幅,选出两个案例详细描述。

实例一:五子棋的界面设计

C语言程序的执行结果是DOS 命令形式的,因此,初学者认为表示一个棋盘是很难实现的。该实例利用循环控制线条的输出,使学生对C语言程序另眼相看。由于方便显示,用表格表示棋盘,每一个单元格表示实际棋盘上的交叉点。部分代码如下:

上述代码运行后得到图2这样的棋盘:

实例二:统计黑白子個数

在该实例中,利用了多分支选择结构语句实现落子个数的统计。适合在选择结构程序设计的时候讲解。通过该实例让学生体会二维数组和if-else语句在解决实际问题中的用途。

5 上机实验题目设计

程序设计基础的实验项目分成普通上机实验和专项实验。普通上机实验的任务要求学生利用课堂2至4个学时独立完成相同实验内容,锻炼学生的程序编写和上机调试能力。而专项实验任务要求在几周的课外学时完成,2至3人一组,合作完成一项比较复杂的编程任务。在验收环节,学生要演示和讲解自己的工作,回答老师提出的问题。这不但锻炼了学生的编程实践能力,还引导他们在表达沟通、团队合作的方面不断自我提升。

程序设计基础的上机实验任务难度要适中,在短学时内可以实现。将五子棋程序中适合的元素提取出,制作成一部分实验任务,让学生在课内通过编译环境实现将枯燥的编程实验变成有趣味的游戏挑战,增加了学习乐趣。实验内容包括:统计棋盘上白子的数目和黑子的数目;产生落子位置(可用随机落子法),判断某一位置是否有落子;判断是否行棋结束,如果结束,哪方获胜。

综合专项实验是程序设计基础课程实验部分的最后一个实验项目,要求学生完成一个复杂的综合性的程序设计题目,任务有一定的难度。其中组长负责分工、总体程序框架建立及其他功能整合,组员合作完成。其目的是既要巩固学生对C语言知识的综合运用能力和用计算机解决复杂问题的能力,同时培养学生的沟通表达能力和团队合作精神。根据五子棋项目的特点,设计了一个综合专项实验案例,如表2所示。该题目有若干个功能,最后综合成一个简单的五子棋竞赛程序,能够实现人机对弈的过程。

该综合案例的设计,不仅巩固了学生对程序设计基础各个知识点的掌握,又将博弈游戏的趣味性和创新性融入课程,让学生组队实现一个完整的工程类项目,具有挑战性,符合一流课程的“两性一度”的要求。

6教学效果

大部分学生认为程序设计基础课程内容比较枯燥乏味,缺乏兴趣。陈旧的教学案例也已经不适应时代的教学方式,很多同学渴望学习先进性、前沿性的新内容。计算机博弈提供了很好的案例元素,它既有趣味性,又有前沿性,能很好地唤醒大学生的好奇心,激发学习兴趣和潜能。从2019年逐渐引入博弈案例教学以来,学生的学习兴趣和学习效果明显提升。图3是2019年至2021年对我校机械专业学生《计算机基础》课程的成绩统计图。虽然由于疫情原因,部分课时采用线上方式进行,但是学生并没有因此受到太多影响,从图中可以看出学生的平均成绩和及格率明显提升,越来越多的学生对博弈项目产生了浓厚兴趣,参加校级和省级博弈比赛的人数逐年提升。

通过课程实践证明,利用博弈元素进行教学案例的设计,既能增强学生的学习兴趣,又能鼓励学生参加校内外博弈竞赛,一举两得。学生还可以依托博弈申报大学生创新项目。希望这种案例设计方式能对计算机基础教学提供参考和帮助。

猜你喜欢
五子棋计算思维程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
Sim Sim
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索
程序设计课程中计算思维和应用能力培养问题研究
90后罗运生:五子棋是我生命的一部分
PLC梯形图程序设计技巧及应用
财政部长吴波的“五子棋局”
夏日五子棋