提升计算思维能力的编程游戏设计

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:wang____jiang
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:针对目前程序设计类课程教学过于强调编程语言语法而忽略编程方法,从培养计算思维能力的角度出发,跨越语法规范,设计一种通用编程游戏,阐述了该游戏的设计理念、设计原则、设计内容和设计目标,最后分析了该游戏的应用原则和教学优势。
  关键词:程序设计;计算思维;通用编程游戏
  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)21-0055-03
  Design of General Programming Game for Improving Computational Thinking
  LIU Jie, YANG Xiao-hua, CHEN Xing, LIU Zhi-ming, ZHANG Hui-ren
  (School of Computer Science and Technology, University of South China, Hengyang 421001, China)
  Abstract: Aiming at the problem that the current programming design courses are much emphasis on the programming language syntax rather than the programming method, a general programming game is proposed for crossing the grammar specification, training computational thinking and developing programming ability. The paper describes the design idea, implementation details and application principle of the programming game and analysis its advantages in programming language teaching.
  Key words: programming; computational thinking; general programming game
  程序设计课程是计算机学科的重要课程,也是其他学科的必修课程。这门课程对初学者难度较大,常常出现笔试成绩还行,但上机编程就无从下手的情况。究其原因,主要在于传统教学过程中过分注重语法知识的讲解,关注某个语句是否被编译报错,对问题的求解思路和求解方法等不够重视。这种教学模式导致负面的狭义工具论,学生学到了各种零散的语句和函数的功能,却不能领悟到程序设计的方法和思想,不知道使用这些功能能解决什么问题以及如何解决问题。最后,不少学生学习困难,觉得计算机语言枯燥难懂,逐渐对编程失去兴趣。针对这种情况,结合计算思维,设计一种通用编程游戏,消除语法障碍,对计算思维的培养和程序设计课程教学进行改革和创新。
  1 计算思维与程序设计课程教学
  美国卡内基·梅隆大学计算机科学系主任周以真教授在2006年提出计算思维这一概念,并给出其定义:计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为[1]。她从计算思维的角度谈到了日常生活和工作中多个案例,让我们意识到随着计算机科学的发展,计算思维和3R(Reading,wRiting,andaRithmetic)一样,应当成为每个人的基本技能,而计算思维的能力体现不仅仅是在诸如计算语言、计算平台等计算环境的认识上,更重要的是在计算环境下的问题求解方法,这才是我们应用计算机技术解决各种问题的重要基础[2]。
  程序设计不等于计算思维,但是,程序设计离不开计算思维,任何程序设计都是建立在一定的计算思维上。程序设计教学中不应该再“重语法,轻设计”,更重要的是培养计算思维,从计算思维角度而不是语法角度对学生进行计算概念以及计算实践的考核。为了培养计算思维能力,结合其本质设计编程游戏[3-4]:
  抽象——对计算平台的无关性和计算语言的通用编程思维进行归纳,取出其共同的、本质性的特征;
  自动化——支持游戏指令的一步步自动执行和可视化操作,取代静态的流程图和伪代码。
  2 通用编程游戏
  通用编程游戏ArmGo,如图1,是一类特殊的教育游戏,以机械臂推箱子的形式出现。该游戏与普通电脑游戏不一样,游戏过程中,机械臂不是由键盘、鼠标或操纵杆来控制,而是根据学生为它设计的动作指令自动执行;它的动作指令与其他编程教育游戏也不一样,学生完全不用考虑编程语言自身的语法,而是通过给定的可视化指令集进行指令组合。
  学生的最终目的是通过事先选择的多条指令来控制机械臂将箱子移动到指定位置。
  2.1 设计理念
  该游戏的旨在设计一个培养计算思维能力的教育游戏,不仅具有教育教学的“教育性”——游戏的内容和任务都和计算思维相关,还有主流游戏的“游戏性”——关卡挑战、步骤控制等。
  2.2 设计原则
  通用编程游戏的设计关键在于设计一种跨越具体的程序设计语言语法细节的表达模式,并在此模式下指导学生分析问题、解决问题,培养计算思维能力。这种新模式必须满足“易使用”和“易转换”两个基本原则[5]:
  1)新模式下的表达内容符合人的自然理解习惯,其正确语义无需严格的规范化训练就能理解;
  2)新模式的指令与具体程序代码之间存在无歧义的对应转换关系,即通过简单的固定规则就能将该模式下的表达内容直接翻译成等价的伪代码。
  基于“易使用”原则,该游戏将学习的重点由语法规范转移到问题解决方法(或步骤)的描述与设计,避免初学者过早陷入语言表达形式的汪洋大海;基于“易转换”原则,游戏的最终目标仍是强化学生的计算思维、提高程序设计能力,并实现语义层次而非语法层次的思维能力考核。   2.3 设计内容
  由于该游戏主要用于程序流程的表达,故设计的主要任务是集成逻辑编程的控制结构,用可视化的指令实现编程语言的基本逻辑流程的体系结构,将抽象问题感官化。
  首先,设计了包含普通指令(上移、下移和右移指令)、选择指令、循环指令和模块在内的指令集,可以实现程序设计中的3种基本结构——顺序结构、选择结构和循环结构,以及简单的无参函数设计;其次,给各个关卡设计了初始状态和目标状态,对应程序的输入和输出;最后,根据最少的过关时间和最少的过关指令数,对学生的过关指令流进行评分;而每个关卡的内容也是结合不同的计算概念进行设计的,比如简单选择结构、循环结构等。
  2.4 设计特点
  1)对于编程初学者而言,可以“零语法”开始编程,只有通关与否,没有语法错误;2)指令流是图形符号的集合,每个符号表示要执行的操作,符号依次执行;3)可以实现模块化设计,使算法结构更清晰;4)指令设计和执行过程中是可视化的,上手极为容易,学生可以直接观察自己设计的指令流的执行过程;5)可以对通关代码执行时间和执行步骤进行统计,有助于简单的算法复杂性分析。
  2.5 设计目标
  2012年,美国麻省理工学院媒体实验室提出计算思维三维框架,包括三个维度:计算概念,计算实践和计算观念[6]。通用编程游戏就是基于这个三维框架设计教学目标和游戏功能,对计算思维能力的培养提出了新的研究思路和探索。
  下面在计算思维三维框架下总结通用编程游戏中的活动内涵[6]:
  1)计算概念:是学生在游戏过程中使用最多、印象最深的一些概念,在通用编程游戏中,这些概念被映射成一组指令,可以无歧义地迁移到转换成某种程序设计语言。常用的计算概念有4个:顺序,循环,分支,函数:
  顺序:为了控制机械臂完成某个动作需要执行的一系列指令;
  循环:将相同的顺序步骤重复运行多次;
  分支:根据箱子的颜色决定动作是否执行;
  函数:将某组步骤独立出来,形成模块,可以被其他模块调用。
  2)计算实践:在游戏过程中学生使用的问题解决策略。主要有4种:
  递增和重复:关卡难度不断提升,通关不是一个直接、线性的过程,通关方案应在一步步不断试验中得到修正;
  测试和调试:利用游戏的即时反馈和可视化,可以掌握预测、修正问题的方法;
  再利用和再创作:通过学生之间的交流沟通,找到可以利用的想法和思路,进行修改创作,实现一题多解;
  抽象和模块化:针对复杂关卡,通过模块调用设计整体解决方案。
  3)计算观念:学生在游戏过程中不断形成对自己和同伴以及周围世界的理解,是一种思维习惯的养成。主要有3种观念[5]:
  表达:通关后,要求学生由浅入深用文字-算法描述性语言-计算机语言描述通关思想和过程,要求步骤清晰。时间一长,学生树立“我可以”的信心,将不满足于现有关卡,而乐于尝试和体验其他类型的编程活动。
  联系:借助各种外在支持,如寻求同学帮助、网络答疑,研究和再创作他人通关步骤,与人一起合作通关。
  质疑:对某些通关步骤的功能不足和受限等提出质疑性问题,并给出自己的改进信息。
  在计算思维三维框架下,学生在游戏过程中不断形成计算概念、强化计算实践,确立计算观念,锻炼不同能力,比如问题分析与解决能力、步骤设计与描述能力、分支思维能力、循环思维能力、模块化思维能力以及数学建模能力等。
  2.6 编程游戏的教学应用
  将通用编程游戏入程序设计教学是有步骤地进行:
  1)游戏引入:首先根据教学内容和目标设计来选择关卡,这是最关键的一步,它将直接影响最终的教学效果。针对不同的教学内容,可以提前布置游戏任务,让学生提前思考和讨论。在讨论中,学生彼此间形成思想的碰撞、观点的交流,开拓了思路,也激发了学习兴趣。
  2)知识回归:讨论结束后,教师将课堂内容从游戏回归到教学本身,讲解技术要点和具体运用。
  3)编码演示:鼓励学生通过小组协作完成一关多解,并对评分进行比对分析。
  3 结束语
  在通关的基础上,要求学生用文字步骤清晰地描述通关的过程,进而引导学生使用算法描述性语言,最终使用计算机语言来描述通关的思想和过程。这是教学的最终目的,也是为了培养学生将自然语言转化为计算机语言的能力和灵活运用计算机程序解决实际问题的能力。
  在整个过程中,如何解决问题和如何设计指令,主要是学生通过自己的思考得来的。而教师在教学过程中一方面强调新知识的运用,另一方面主要是给学生展示知识背后的计算思维,让学生感受到计算思维是魅力和重要性,启发学习者的求知欲望和心理共鸣
  教学实践证明,引入通用编程游戏的班级,学生主动参与到游戏知识的学习积极性较高,并且学生的思维活跃,甚至会有一定创新思维,整体学习效果明显提高。所以,在程序设计教学中,恰当地引入通用编程游戏,有助于启发学生的思维,帮助学生理解程序设计的方法和思想,课堂气氛活跃,寓教于乐,是一种“玩物长智”的认知和学习活动。
  参考文献:
  [1] Jeannette M. Wing. Computational Thinking[J]. Communications of the ACM, 2006, 49(3): 33-35.
  [2] 李廉. 计算思维——概念与挑战[J]. 中国大学教学, 2012(1):7-12.
  [3] 江耿豪, 郑炜冬. 编程游戏在计算机语言教学中的运用[J]. 漳州师范学院学报: 自然科学版, 2006(2):128-131.
  [4] 曾夏玲. 基于计算思维能力培养的“轻游戏”教学模式初探[J]. 职教论坛, 2015(11).
  [5] 贺忠. 游戏思想在程序设计语言课程教学中的应用[J]. 计算机教育, 2009(13):157-159.
  [6] 王旭卿. 面向三维目标的国外中小学计算思维培养与评价研究[J]. 电化教育研究, 2014(7).
其他文献
摘要:微课作为信息化教学的新教育资源,以其独有的特征,在普通和高等教育,得到学生、教师和家长的认可。基于中职学生的特殊性,该文以在word软件中制作员工名片为例,介绍微课在中职学校设计和开发的原则,从教学内容和学习者特征分析,教学目的的制定,教学策略的选择,以及微课制作过程的设计等方面详细的介绍微课的开发和设计,提出了对中职微课开发的新见解,为其他微课的设计与开发提供了借鉴。  关键词: 微课;开
摘要:根据USB3.0协议,链路层控制器主要是对链路的初始化和配置,对主机和设备之间的数据交流建立链接和控制。该文详细介绍链路层状态控制器的基本原理以及利用 Verilog HDL 语言实现了状态控制器的描述, 并通过了Modelsim 仿真。  关键词:USB 3.0;状态控制器;仿真验证  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)02-0411-03  
老家有一棵老桑树,它已经25岁了,怪不得大家都叫它桑树爷爷。桑树爷爷的树干又粗又高,颜色是深咖啡色的;叶子是深绿色的,有点儿小,像我们的手掌。桑树爷爷就像草原上的一位士兵,看着远方。  桑树爷爷的果实可有趣了。如果桑果不是应季的话,它会酸得让你无法忍受,吃一颗你的牙齿就被酸倒了。桑果的颜色分为两种,一种是红色的,一种是黑色的。如果你用手捏住红色的桑果,它就会拿起魔法杖,把你的手变得血红。黑色的桑果
摘要:Prolog是人工智能语言的一个典型代表。本文简要阐述了人工智能语言及其特点,并通过实例介绍了Prolog语言及其基本结构。   关键词:人工智能语言;Prolog;递归  中图分类号:TP312文献标识码:A文章编号:1009-3044(2008)05-10ppp-0c    Prolog的思想最早由R. Kowalski提出,1972年,第一个prolog语言在法国的马赛研制成功,最初设
摘要:化工实验仿真软件需要准确的模型,严密的逻辑和美观逼真的界面。使用C#.net或Flash单独开发都有各自的优点和缺点。该论文应用Flash开发仿真界面,使用C#.net开发逻辑、算法及数据库访问,结合二者开发了化工原理阻力实验仿真程序。分析了在Flash中制作界面的工作及技术,研究了二者之间参数及事件的传递方法。为提高开发效率,研究了自动生成ActionScript 代码的方法。二者结合开发
摘 要:文章基于信息技术的优势、中职药理学课程特点以及教学现状,以《解热镇痛药复方制剂》为例,通过实践研究证实将信息技术融入药理学课程教学中,确实提高了教学效果和效率、学生参与活动率、查看资源率,课堂参与度更高、测验成绩更好。   关键词:信息技术;药理学;云班课;翻转课堂   中图分类号:G434 文献标志码:B 文章编号:1673-8454(2019)12-0052-0
摘 要:Focusky打破了传统PowerPoint单线条展示方式,采用“画布”作为内容展示界面,以路线呈现的方式,通过缩放、旋转、平移等功效创造非线性的演示效果。Focusky与Prezi功能相似,但更本土化,支持多种中外文字体,且有着丰富的动画效果。通过Focusky制作的微课不仅能较好地展示教学内容的逻辑顺序、路线呈现方式、手绘、手写等动画效果的逼真度,还说明了该软件在微课制作中的便利性,为
摘要:在数据服务网格系统(DSGrid)中,基于XML DataBase的XML复制技术是保证系统查询性能的关键技术。提出了基于XML复制关系图的复制更新策略,通过XML复制之间的数据依赖关系来追踪底层数据更新对各层次的XML复制的影响,并根据更新策略确定XML复制的更新方法。  关键词:XML DataBase; XML关系图;DSGrid  中图分类号:TP393 文献标识码:A 文章编号:1