基于图形化编程的计算思维培养模式探析
2023-12-25余波
摘要:计算思维是各国教育行业所关注的热点话题,我国职业院校也将计算思维能力的培养作为重要的教学任务。文章基于图形化编程软件OpenBlock,结合高职院校的学生基础能力,通过一个游戏编程项目的教学设计和案例实施步骤,计算思维的培养模式进行分析,为培养学生计算思维能力提供了新的思路。
关键词:图形化编程;计算思维;职业教育;创新思维;项目教学
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2023)31-0171-03
开放科学(资源服务)标识码(OSID)
0 引言
科学的思维是人类特有的认识事物的一种过程与方式,将通过感觉器官获取的原始材料,进行逻辑化的理解与推理,从而完成对事物的认知过程。美国卡内基·梅隆大学的周以真教授将计算思维定义为运用计算科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[1]。由此可以看出,计算思维的过程中,也包含了逻辑与推理,也是一种科学的思维方式,只是更加明确地定义了思考的方式和思维活动的种类。计算思维能力融入了每一个人的日常生活、学习和工作中,是人们认识问题、分析问题和解决问题的基础和手段。那么,应该如何培养和提升计算思维能力?培养计算思维能力与编程有哪些联系?如何选择合适的编程工具来帮助学生更好的学习编程?
1 职业院校中的计算思维能力培养
1.1 传统编程训练难以满足计算思维能力培养的需要
在职业院校,计算思维培养的主要目标是通过思考来分析事物的本质,将其中的原理部分抽象化、逻辑化,将完成项目的过程用流程化的方式体现,如图1所示。
程序设计课可以以问题驱动的方式引起学生的学习兴趣,针对学生创造力和创新力进行培养,启发、引导学生在解决问题中思考和学习[2]。所以,教学生编写程序是培养计算思维的最有效的方法之一。编程训练的过程中,学生按问题分析、逻辑分析、算法分析和程序实现等步骤,从分析问题到解决问题,完成了一次计算思维的提升训练。
编写程序虽然在培养学生计算思维方面有先天的优势,但是,存在的问题也比较突出。而在实际讲授过程中,教师会重点关注程序在编译和运行过程中出现问题,也会关注如何搭建和使用编程环境的问题。所以,授课时一般会注重对程序语法知识和编程环境等基础部分的讲解,这样就会导致用在程序结构和算法内容上的讲授时间会被压缩,使学生很难有时间完整的对一个问题进行深入剖析和理解。在枯燥的语法和句法学习过程中,会逐步降低学习的积极性和主动性,也会逐步丧失主动思考的能力[3]。
如“汉诺塔”“鸡兔同笼”和“物不知数”等生活中的“算法”问题,其问题自身的计算方法都广为人知。但是,在计算求解的过程中,计算量会随着计算参数的增长而呈指数级增加,所以只能在相对条件比较简单的情况下才能进行手工计算。如果参与计算的参数增长了,计算量会急剧增加,这时,就只能借助计算机计算求解。但是因为编写程序的过程难度大,只有为数不多的学生有能力用编程的方法得出结果。
1.2 图形化编程能够推动计算思维的培养
在计算机前端技术发展带来的影响下,图形化编程的研究受到了越来越多的关注。通过拖动“块”来写代码,是图形化编程的主要特点。在学习图形化编程的过程中,系统主要提供图形化编程环境和可以拖动的“块”,由学习者根据问题的需要将不同的“块”组合成逻辑“块”组,在组合的过程中,系统同步生成代码,同时还能够提供编译环境和连接硬件的方法,使程序运行的结果能直接通过硬件开发板体现出来[4]。
图形化编程平台的作用主要体现在以下几个方面:第一,图形化的编程平台是一种全新的程序设计方法,其编程的操作方法简洁、直观,容易上手,经过短暂的培训学习,就能够通过“拖动”的方式,构造出各种应用程序的界面、对象和逻辑。第二,编程教学中,代码的编写和排错是编程学习过程中的一大难点。但是在图形化编程环境中,“块”可以像积木一样搭建,且“块”与“块”之间的连接处采用的是类似于一种榫卯结构,如果能够顺利连起来,则表示语法基本正确。第三,图形化编程平台大多支持多种代码的转换,Python、JS、C等,使用者不需要重复学习各种编程语言,搭建好的“积木块”就能够实时自动生成多种程序代碼。
2 基于图形化编程计算思维培养模式
2.1 基于项目教学的图形化编程教学设计
根据教学对象、教学手段和教学目标等要素,将图形化编程的教学设计分为顶层、中间层和底层三个部分,首先是顶层部分,该部分主要是分析学情、内容和目标,制作和收集项目教学资源,制定教学计划,甚至可以细化到课堂的组织形式和互动方式等,为后续的教学过程设计和实施提供支持。其次是中间层部分,该部分主要进行教学过程的设计与开展,根据教学目标的需要选择合适的项目,然后确定教学时数、教学形式和教学评价方式,分别从教师教学角度和学生学习角度细化教学过程。同时,收集整理教学资源,并还要根据教学需要自主开发一部分教学资源。最后是底层部分,主要内容就是教学评价的形成与分析,主要的评价依据就是是否能让学生在分析问题和解决问题的过程中,提出新问题和新思想,并获得新能力和新技能,从而加深对教学目标的认识,螺旋上升式地构建认知,如图2所示。
2.2 基于图形化编程计算思维培养模式的分析
本文所提出的计算思维培养模式是,基于教学过程和教学目标,再结合项目需求、案例分析和总结评估等步骤,使学生在使用图形化编程平台的过程中,计算思维能力得到不断的发展与增强,使得完成项目开发的过程就是计算思维发展的过程。
图形化编程平台除了作为计算思维输出的载体,还能使整个教学活动聚焦到学生对问题的分析环节,使教学的组织方式得到根本性的改变。计算思维的呈现依靠的是对问题的分析和逻辑化过程,而实现这一过程的手段就是编程,通过直观易学的图形化编程工具,将计算思维的培养过程与要点分别加以落实。
3 图形化编程项目促进计算思维发展的教学实践案例
为了验证图形化编程平台对计算思维培养模式的有效性,本研究设计了基于OpenBlock图形化编程平台的教学实践案例[5]。本案例共分为三个步骤,分别由两个过程进行串联。首先,通过对游戏项目的规则进行分析,推导出该游戏项目的执行逻辑,学生在从规则分析步骤到逻辑分析步骤的过程中实现计算思维模型化的发展,这个过程对计算思维能力的提升起到了主要作用。其次,是从逻辑分析步骤到代码实现步骤的过程,由于图形化编程平台具有易学易用的特点,能够有效地适配学生的个体差异,使学生更容易获得完成项目的成功感。
3.1 游戏项目规则分析步骤
使用比较经典的游戏项目作为实践案例可以很容易引起学生的共鸣,学生可以自主对游戏的运行逻辑进行深度剖析。本项目使用的是经典的打砖块游戏,核心规则是屏幕上、左、右三边作为围栏,一颗小球在围栏范围内直线运动,当球与围栏发生碰撞时,将根据碰撞角度改变球的运动方向。玩家使用屏幕底部的一块可以左右移动的挡板,阻止小球从屏幕下方跳出围栏范围。围栏中还有其他障碍物,被小球碰到以后,球会被反弹,障碍物可能会消失。游戏的难度主要由小球的大小和运动速度、障碍物的数量和强度、活动挡板的宽度和移动速度等因素决定,小球在某些特定条件下,会运动得越来越快,有的障碍物需要小球撞击多次后才会消失,活动挡板的宽度也越来越小,导致小球的落点的范围也越来越小。
3.2 游戏项目的逻辑分析步骤
项目中最基本的元素为围栏、挡板和小球,可以通过计时器、砖块和积分器为游戏增加竞技目标和娱乐性。挡板处于屏幕下方,是游戏中唯一由玩家操控的游戏对象。小球碰到任何物体都能够根据碰撞的角度进行反弹,当碰到围栏或挡板时,不记录反弹的次数,当碰到砖块时,需根据反弹的次数计算游戏的得分,游戏的运行逻辑如图3所示。
从项目的逻辑分析可以看出,小球只有两个状态,一个是“运行”,一个是“碰撞”,而“碰撞”是整个项目的关键点。而且,小球是有面积的,球的运动轨迹与砖块发生重叠,就代表两者会发生碰撞,如图4所示。
所以,这个游戏的关键词就是“碰撞”,通过“碰撞”可以改变游戏中各种对象的属性,从而改变游戏的难度。
3.3 图形化编程完成项目开发步骤
为了提高编码效率,降低项目开发的门槛,本项目基于图形化编程环境进行开发,在OpenBlock编程平台中将围栏、挡板和小球这三个游戏中的概念定义成为游戏对象,并为每个对象设定相应的状态。
在小型项目中,对象的移动,一般采用的方法是每一帧都清除整个屏幕,并重绘所有内容。所以,定义一个“绘制管理”的对象,专门用于在屏幕内绘制图形,通过不间断地清除和重绘,使挡板对象“移动”起来。
通过不间断的重新绘制屏幕,挡板已经可以“移动”了。同时,还需要在移动的代码里加上坐标限制以满足不能超出屏幕的要求。根据坐标不断重复刷新,小球的位置不断改变,重新绘制后,小球就会出现在新的地方,小球的移动就完成了。
当小球发生碰撞时,就要进行碰撞计算,以小球当前坐标为原点,将碰撞点坐标发送给小球,碰撞点的计算公式为“(x+位移x-屏幕宽)/位移x×位移y+y”,可以用编程的方式表达这个公式,如图5所示。可以通过这段代码判断小球是否会发生“碰撞”,如果没有发生,就会返回“false”。
至此,已经根据对项目中问题逻辑的分析,完成了主要功能的开发。整个开发过程中,只利用了编程思维,却没有使用编程技能,虽然没有进行编码,但是已经完成了程序的编写。
4 结束语
图形化编程工具以其形象化、简单化和轻量化等特点,降低了学习编程的难度,增加了学习编程的乐趣。相对于较为枯燥、复杂、难懂的代码编写,图形化编程可以让学习者忽略代码的编写过程,而专注于解决项目逻辑的实现问题,将主要精力放在自主探究和创新思维方面。而基于项目的图形化编程教学,可以使学生从兴趣出发,主动梳理问题点,运用自己掌握的知识,分析问题和解决问题,将自己对问题的理解转化成条件、选择和因果关系,借助图形化编程软件完成程序的编写,在解决问题的过程中,不断提高学生的计算思维能力,提升自主学习和实践探究的能力。
参考文献:
[1] 石云.“计算思维” 带给高师院校计算机教育的机遇与挑战[J].中国校外教育,2012(21):167-168.
[2] 孙丽红.基于计算思维培养的C语言实践教学研究[J].信息系统工程,2019(8):167.
[3] 蔣国强.基于APP Inventor的高职生计算思维与编程的教学实践[J].教育观察,2019,8(32):77-78.
[4] 余波,文榕富.基于硬件的拖动式编程平台研究与实践[J].电脑编程技巧与维护,2022(1):56-57,64.
[5] 郁晓华,肖敏,王美玲,等.基于可视化编程的计算思维培养模式研究——兼论信息技术课堂中计算思维的培养[J].远程教育杂志,2017,35(6):12-20.
【通联编辑:王 力】