基于AppInventor的程序设计教学实践研究

    高俊涛

    ● 中小学程序设计教学的定位与教学目标

    计算思维是在运用计算机科学领域的思想方法形成问题解决方案的过程中产生的一系列思维活动,它在信息技术课中的落实手段是算法与程序设计。江苏省《义务教育信息技术课程纲要》(2017年修订)中明确指出,“算法是程序设计的灵魂,程序设计语言是实现算法的重要工具”,两者不可或缺又相辅相成。

    算法与程序设计教學在各学段的培养目标逐层递进,各有差异。小学的目标是启蒙和培养兴趣,并不强调程序设计语言的完整性,也不强调算法的概念和理解。初中的目标是建立相对完整的程序设计语言知识结构,建立初步的算法概念,了解简单的算法,侧重通过程序设计语言解决一些简单的实际应用问题。高中的目标是建立高阶思维,强调掌握丰富的算法,侧重于解决问题的方法设计。我们的最终目标不是把每位学生都培养成未来的程序员,而是在潜移默化中帮助学生建构计算思维的思想,使其在未来的学习、工作和生活中可以灵活自如地运用计算思维去解决遇到的问题。

    ● 程序设计教学在中小学阶段的学情调查与分析

    算法与程序设计在信息技术学科中的重要性不言而喻,江苏省教育厅为各学段配备了相关教材用于日常教学:小学以Scratch为教学载体,初中和高中以VB为教学载体。然而各学段实施情况却大相径庭,以笔者所在的苏州工业园区为例:全区24所小学均开展Scratch教学,实现了全覆盖,并在省编教材的基础上不断地丰富与拓展;全区21所初中,开设VB课程的只有6所,并且教学效果不尽如人意;全区4所高中,为确保高二会考的通过率,均未选修VB程序设计。VB作为初中学段程序设计教学的载体,为什么不受欢迎呢?

    对此,笔者在全省初中信息技术骨干教师会议召开期间开展了一次关于程序设计教学状况的情况调查。调查显示,只有43%的教师认为VB作为初中程序设计的教学语言可以被大部分学生接受,有12%的教师认为绝大多数学生不能接受VB。而在影响VB教学的主要因素这一问题中,有43%的教师认为最大的问题是学生不感兴趣,31%的教师认为学生学习的时间不够,影响兴趣,26%的教师认为VB的严谨性影响学生的学习效果。以上调查反映出VB的专业性和严谨性成为制约广大初中学生学习程序设计的桎梏。那么,初中学段的程序设计教学该选择怎样的载体呢?又如何让大多数初中学生爱上程序设计呢?

    ● 程序设计教学改革探究之路

    1.App Inventor作为初中学段程序设计教学载体的可行性分析

    为了鼓励更多的初中教师进行程序设计教学,让更多的初中学生愿意学并且能学好程序设计,笔者所在的苏州工业园区初中信息技术教师团队提出以导向兴趣化、设计游戏化和去数学化为切入点开展程序设计教学改革,并在经历了三年的实践摸索后,确定在初中学校使用App Inventor替代VB作为程序设计教学载体,让学生从“要我学编程”向“我要玩编程”转变,在潜移默化中学习知识、培养能力。

    (1)便捷简易的开发环境

    App Inventor最早是Google实验室(Google Lab)的一个子计划。2012年1月1日,Google把该项目移交给美国麻省理工学院行动学习中心。App Inventor是一种完全在线开发的Android编程环境,使用者通过浏览器即可实现应用的外观与行为设计,通过安卓移动终端或模拟器即可进行在线调试,通过打包下载即可获得APK安装包文件。

    (2)简单有趣的块语言设计

    利用App Inventor开发APP应用简单有趣,编程视图中的代码块都已经封装了代码,不需要学习者亲自编写代码,只需要按照设计意图拖拽相应的模块就能完成编程。从前面的调查可以看出,利用VB程序设计语言进行教学的主要困难是学生需要记忆大量的语法,这是横亘在学习程序设计的广大初中学生面前的一道门槛,而块语言没有此门槛,各个模块之间可以灵活组合,有效地将学生的学习精力集中在问题的解决和算法的设计与实现上。图1和图2分别为App Inventor开发平台的逻辑设计界面与外观设计界面。

    (3)符合主流的面向对象设计

    App Inventor虽然是块语言,但遵循了面向对象的程序设计方法。面向对象的程序设计是程序设计发展的主流方向,它使设计与维护程序变得更为简单,使得程序更便于分析、设计与理解。

    (4)丰富多彩的生活问题导向

    传统的程序设计教材中,教学案例往往是一些数学问题,如水仙花数、斐波那契数列、求闰年等,大多数学生看到这类案例会误以为学习程序设计就是在变相地学习数学,从而产生畏惧感。实际上,学习程序设计的目的不仅仅是科学地解决数学问题,更是要发现、分析和解决生活中遇到的形形色色的问题。

    随着智能手机的普及,各种优秀的APP应用层出不穷,这些APP应用有很多是为了解决生活中的问题,还有很多是学生喜欢的小游戏。在基于App Inventor的程序设计教学中,教师可以因势利导,把这些应用转变成教学案例,它们既贴近学生生活,容易引起他们的共鸣,又可以消除学生对程序设计的距离感和恐惧感,有助于帮助学生建立一个促进其主动学习以及意义建构的学习环境。

    2.App Inventor、Scratch、Python的关系分析

    对于选择使用什么程序设计语言进行初中学段的教学,笔者所在团队成员展开了讨论,有的建议沿用小学阶段的Scratch,有的建议向高中看齐,直接使用Python……最后确定使用App Inventor,因为它可以很好地体现Scratch、Python和App Inventor三者之间的优势。

    Scratch是一款少儿编程工具,符合三年级以上小学生的认知水平,但Scratch主要是基于PC端的软件编程环境,作品展示的途径比较狭窄,如果要拓展它的功能还必须购买各种扩展板、传感器等外部硬件。其侧重点不是算法的学习,而更多体现的是创意实现。而App Inventor保留了块语言编程的简单性和易用性,语言形式上是Scratch的延续,学过Scratch的小学生到中学阶段可以平滑地过渡到App Inventor。

    App Inventor的语言功能和对硬件的驱动能力要远强于Scratch,它更接近于实际生活应用。App Inventor不仅可以调用安卓手机或平板等移动设备的硬件资源,实现更多更丰富的应用场景,而且还可以通过APK文件很方便地在不同的安卓设备之间分享传播。同时,随着调试模拟器的出现,在电脑上也可以模拟出App Inventor项目在手机上的大部分运行效果。

    Python和VB一样,是一种解释型行命令语言,如果以Python作为初中程序设计教学的载体,其行命令特性仍然会成为广大初中学生学习程序设计的认知门槛。

    也许有人会诟病App Inventor是块语言,太简单,但App Inventor与Python一样,也有对象、属性、事件、方法等面向对象的程序设计的元素,具备编程的完整性和规范性特点,这对初中学生来说,能为他们向未来高中阶段的Python过渡打下原理性基础。因此,App Inventor与Scratch、Python这三种语言比较符合各自学段学生的认知水平,它们各有特色,优势互补,可以形成逐层递进的关系,即App Inventor可以成为小学和高中程序设计教学衔接的桥梁和纽带。

    ● 总结

    笔者所在的苏州工业园区2015年选择了三所具有代表性的初中学校(优质校、中等校、薄弱校)进行基于App Inventor的程序设计教学试点,2017年进一步扩大实验范围,在所有初中学校全面开展基于App Inventor的程序设计教学研究,经过三年多的教学实践探索,摸索出了一条教学实施路径:课堂以项目学习为主线,融合教材知识点;教学以微课、讨论为支撑,以互动学习平台为支架;考核以创意实现为目标,突出成果的展示发布。App Inventor教学取得了不错的效果,课堂项目达成率超过90%,学生创意作品层出不穷,这充分证明App Inventor的确可以将抽象小众的程序设计变得生活化、大众化。

    实践证明,在初中课堂基于App Inventor玩转程序设计,有助于深化信息技术教育的理念,体现计算思维的方法与内容,促进计算思维从“为计算”到“用计算”的转变。“为计算”的教育注重计算思维概念和意象等思维要素的掌握,将程序设计、计算机语言和工具操作作为主要学习内容。“用计算”的教育是在计算思维要素学习的基础上,强调培养学生在真实情境和具体活动中,利用信息技术解决问题的能力和内在思维。笔者所在的程序设计教育研究团队将继续努力,坚持以促进学生思维发展为目标,不断实踐,努力使广大初中学生能够在程序设计的学习中体验成功,享受快乐!

    参考文献:

    李锋,王吉庆.计算思维教育:从“为计算”到“用计算”[J].中国电化教育,2015(10):6-10.

相关文章!
  • 小学语文课堂教学中的激励性评

    摘 要:激励性评价作为小学常用的教学方式,在教师日常教学中具有重要作用,在各小学学科中都有应用。在小学语文课堂上,语文教师需要与学

  • 高等教育人工智能应用研究综述

    奥拉夫·扎瓦克奇-里克特 维多利亚·艾琳·马林【摘要】多种国际报告显示教育人工智能是当前教育技术新兴领域之一。虽然教育人工智能已有约

  • 生活引路,作文随行

    周海波【摘 要】“写作教学应贴近学生实际,让学生易于动笔,乐于表达,应引导学生关注现实,热爱生活,表达真情实感。”教师如何让学生更加贴