APP下载

基于App Inventor的高中生计算思维培养策略探究

2018-01-08曾绍华

新教育时代·教师版 2017年42期
关键词:计算思维算法

摘 要:计算思维是编程解决问题的基本思维方式。APP Inventor是一款可视化的编程工具,其積木式的程序代码编写方式,简单、易用,能更好地将解决问题的算法描述转化为程序语言,实现编程。在教学实践中,开展基于APP Inventor的编程教学,有利于培养学生的计算思维和创新能力。

关键词:APP Inventor 算法 计算思维

普通高中信息技术课程的总目标是提升学生的信息素养,包括信息意识、信息道德和信息知识。要求学生在完成学习后,掌握利用信息技术解决日常生活和学习中的实际问题的能力;形成与信息化社会相适应的价值观,健康安全地使用信息技术。其中,编程是实现计算机加工信息解决实际问题的重要方式。编程解决问题的核心是算法,而算法设计最基本的思维方式是计算思维。计算思维是每个人的基本技能,是人与计算机共通的思维形式,是决定能否有效解决问题的重要因素。无论是必修模块还是选修模块的编程教学,都必须把培养学生的计算思维能力作为核心的教学任务,引导学生使用算法描述解决问题的方法和步骤,并选择合适的程序语言进行程序设计,解决问题。APP Inventor是由Google公司设计和推出的一种免费的Android编程工具,其可视化的设计界面和积木式的代码编写方式,简单、有趣、易用。在实践教学中,笔者尝试使用APP Inventor进行编程教学,探究高中生计算思维的培养策略。[1]

一、APP Inventor及其优点

在普通高中信息技术课程必修模块和选修模块的编程教学中都是选用Visual Basic 6.0(简称VB 6.0)作为程序设计语言的,而笔者则尝试使用APP Inventor进行教学。APP Inventor和VB 6.0都是可视化的编程工具,都能反映当今程序设计的思想和方法,但APP Inventor有着区别于VB 6.0的优点:1、APP Inventor是一种开源的Android移动应用程序开发工具,设计的程序能直接安装、应用于移动设备中,如手机,在移动通信与信息技术高度结合、高速发展的当今社会有着无可替代的优势和吸引力;2、APP Inventor程序代码编写可以使用积木式的堆叠法对代码模块进行拼装来完成,简单易用,不需要太多的编程知识就能完成;3、APP Inventor有丰富的、功能强大的组件模块,如多媒体类、传感器类、社交应用类等组件,学生能较为轻松地编写出实用、有趣的手机程序,能激发学生的学习兴趣,提高学习效率;4、程序调试简单,可使用模拟器或手机进行调试,无需搭建复杂的硬件环境。[2]

二、计算思维

计算思维(Computational Thinking)是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。简单地说,当提出问题时,首先定义问题的内涵,然后利用计算的思路解决问题的方法就是计算思维。编程解决问题的核心是算法,它是解题方案准确而完整的描述,是一系列解决问题的清晰指令。算法中的指令描述的是一个计算。这个计算的合理性、有效性决定了问题解决的成败,这需要学生具有清晰的、正确的、高效的计算思维。因此,在编程教学中,必须把培养学生的计算思维能力作为核心的教学任务。

三、基于App Inventor的高中生计算思维培养策略

在使用App Inventor进行编程教学前,笔者让学生完成了一份调查问卷,结果显示,学生的编程基础较差,且普遍认为编程很难和无趣。但他们对手机应用程序很感兴趣,98%的学生表示想了解手机程序的设计过程,并希望能开发一个属于自己的手机程序。使用App Inventor进行编程教学是学生感兴趣的、认可的。笔者在实践教学中,以培养学生的计算思维和创新能力为目标,不断反思、改进,形成以下四点策略。

1.搭建App Inventor教学环境

笔者使用的是由麻省理工学院(MIT)联合广州市教育信息中心、华南理工大学计算机科学与工程学院部署的国内唯一的App Inventor官方服务器(http://app.gzjkw.net)。它的优点是:(1)操作简单。连上因特网,打开浏览器,访问服务器,使用QQ账号,或是注册一个账号登录,就能在线开发程序。(2)更新及时。由于是官方服务器,所以避免了离线版不能及时更新组件和代码模块的尴尬。(3)教学延续性好。程序开发过程,项目内容会自动保存在服务器中,学生不需要担心数据丢失,没完成的部分可以回家或者在下一课时继续完成。(4)设计人性化。App Inventor官方服务器可以切换多种语言显示,如英文、简体中文、繁体中文等,方便不同使用者。此外,还提供多样的调试方式,可以使用AI伴侣、模拟器,或是连接USB设备调试,也可以通过打包apk下载到计算机中,或是生成二维码,使用手机等移动设备扫描下载、安装调试。笔者建议如条件允许,程序的调试最好使用手机。每个小组放置1-2台连上wifi的Android手机,学生测试时通过扫描二维码,将程序的apk文件下载到手机中并安装,运行测试。使用手机调试的优点是能真实地看到、感受到程序在手机中的运行状态,特别是开发传感器类程序,这是模拟器无法做到的。[3]

2.精选教学案例

虽然学生对手机编程很感兴趣,但在情感上他们还是会觉得编程很难,所以教学案例的选择很重要。从课程编排上,教学例子渗透编程知识要由浅到深、循序渐进,同时注意任务的分层设置,照顾不同层次的学生。此外,例子要有足够的吸引力,多从学生生活、学习上可能遇到的实际问题中寻找实用、有趣的内容。同时,由于App Inventor是针对Android的编程工具,设计的程序能直接在手机上安装、运行,所以,选择例子时要多考虑学生使用手机的习惯和兴趣,尝试调用手机的各种传感器和多媒体部件,并提供多样的音频、图像等素材让学生自由选择和搭配,让程序有“声”有“色”。如教学第一课,笔者提供多套“小黄人”(近两年很火热的一个电影卡通人物)的音频和图像素材,让学生完成一个最简单的程序——点击按钮,出现图像和声音。学生充分发挥了他们的个性化设计,“小黄人”不同的搞笑声在机房内此起彼落,同时伴随着学生的笑声。又如,介绍条件判断时,结合方向传感器,完成了“硬币消失”的小魔术;讲授选择结构和数值运算时,设计了一个手机用计步器程序,等等。这些实用、有趣的程序例子能激发学生的学习兴趣和热情,有利于学生的计算思维和创新能力的发展。[4]endprint

3.算法描述与设计

以计算的思路设计正确的解题方案是编程解决问题的重要途径,这需要提高学生算法描述与设计的能力。算法描述有多种表达方法,常用的有自然语言、流程图和伪代码等描述。自然语言描述算法最符合人的表达习惯,是最容易理解的,但在描述分支和多重循环等复杂算法时容易出现错误。流程图描述算法形象、直观,有利于分析复杂的算法,保证代码编写的正确性。伪代码是介于自然语言和计算机程序语言之间的一种算法描述,它的特点是简洁、易懂、便于修改,也容易转化为程序语言代码。高中学生已经能用较为完整和流畅的语言分析问题,描述解决问题的过程和关键点,所以,App Inventor编程教学初期,首选使用自然语言描述。然后,当遇到使用自然语言无法描述清晰的问题时,引导学生使用流程图或伪代码进行描述。App Inventor的程序代码根据不同的功能分成不同颜色、不同形状的积木块,不符合编程语法的积木之间会自动排斥,不能拼装。所以,学生根据算法描述,不需要太多的编程知识就能完成程序的代码编写。在实践教学中,笔者尝试将代码模块通过图像处理工具生成各种积木拼图,学生选择和使用这些积木拼图结合文字表述组成另类的流程图来描述算法。描述完成后,学生很容易就能在App Inventor的逻辑设计中拼装出正确的程序代码,完成程序。算法方法也有很多種,与计算有关的包括穷举法、递归法、递推法等。算法描述和设计中的每一种策略作为问题求解方法,都具有明显的计算思维特征。因此,算法描述和设计的学习过程就是培养计算思维的过程。

4.评价多元化

评价具有激励学生自信、调整学习进度、改进教学方法、诊断学习效果等功能。在App Inventor编程教学中要以多个角度、多种方法进行学习评价。编程是以解决实际问题为目的的,这是评价的重要标准。而在解决问题的过程中,要对算法的正确性、可读性、时间复杂度、空间复杂度等进行评价。App Inventor是用于开发Android移动应用程序的,所以,也要评价程序的用户界面和功能设置等是否符合人们使用移动设备的习惯。此外,开展自评、教师评、小组评等多方评价,评价时,既要看编程作品的完成度和创新性,也要看学生在程序设计过程中的情感态度、合作精神、学习习惯等。多元化评价能营造一种热烈而又轻松和谐的学习气氛,有利于促进学生的全面发展。

App Inventor编程教学,其可视化的设计界面和积木式的代码编写方式,以及多样的调用手机多媒体和传感器的程序例子,让程序设计变得简单、有趣。编程解决问题的过程,学生掌握了算法描述和设计的方法,培养和提升了计算思维能力。

参考文献

[1]李艺.信息技术基础(必修)[M].北京:教育科学出版社,2004.

[2]李艺.算法与程序设计(选修)[M].北京:教育科学出版社,2004.

[3]Jeannette M. Wing.Computational Thinking[J]. Communications of the ACM,2006

[4]冯巨恒.基于计算思维的App Inventor教学实践[J].中国现代教育装备,2015(10):77-80.

作者简介

曾绍华(1980.6—), 性别:男,民族:汉,籍贯(精确到市):广东省广州市,当前职务:教师,当前职称:中教一级,学历:本科,研究方向: 信息技术教学。endprint

猜你喜欢

计算思维算法
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养
一种改进的整周模糊度去相关算法