公务员期刊网 论文中心 正文

层层递进学生建构项目式程序设计

层层递进学生建构项目式程序设计

摘要:以AppInventor设计电子相册为例,对层层递进引导学生建构项目式程序设计展开分析。根据《中小学信息技术指导纲要》的课程标准,结合AppInventor的教学特点构建了任务分解、逐个突破、不断完善的项目式教学模式。分析了项目式教学模式的基本思路,并结合实例介绍了具体的应用策略,总结了该教学模式的研究成效,发现通过层层递进的教学模式能够引导学生发现程序设计的乐趣,提升学生的逻辑思维能力。

关键词:层层递进;项目式;程序设计;AppInventor;电子相册

1AppInventor应用现状

自20世纪50年代汇编语言诞生以来,程序设计语言的发展就伴随着计算机硬件的发展而不断提升和变化,目前已经诞生了几百种高级语言。虽然程序设计的核心思想没有变化,但方式已经拓展成为了可视化、模块化、图形化的编写。目前,移动终端市场的操作系统主要为IOS和Android,而安卓系统凭借其开放性的优势已经占据了越来越多的市场份额。其中的AppInventor以其可视化、模块化和简便化等特征让缺少编程经验的青少年可以轻松进入安卓的编程世界。AppInventor在实现功能较为复杂的作品时,对于学生编程思维和编程能力的要求较高。因此,需在实际教学中尝试把大型作品进行分解,把具体的代码模块学习融入到每个分项目中去,在保持作品完整性的同时降低学习难度,增加程序编写的操作性和理解性。

2AppInventor项目式作品开发的基本思路

教师利用AppInventor程序设计的便捷性和开放性来让学生通过模仿、调试、分享、改进、创新、完善等步骤逐步设计作品,培养了学生学习程序设计的兴趣和能力。一般程序设计的步骤主要包括分析问题、设计算法、编写程序、运行程序、分析结果。教师可在学生学习AppInventor程序设计的过程中重点强调需求分析、界面设计、模块连接、调试运行等步骤,对于程序语言编辑和算法思路的设计可以先不做过高要求,同时还要注意将语句学习融入到作品不断升级完善的过程中去。

3层层递进引导学生建构项目式程序设计在AppInventor设计电子相册中的应用

层层递进引导学生建构项目式程序设计需要在教学实践过程中提前设计好教学方案和详细操作步骤,要根据不同的学习主题和内容进行灵活变动,以达到教学目标。

3.1搭建基本框架,完成电子相册初级版本

电子相册的初级版本是点击按钮显示一张与其所对应的照片,如果能够在显示照片的同时出现欢迎语,则整个界面会更加友好。根据这一思路,完成电子相册App1.0版本需要按钮组件、图像组件和标签组件,并调用“当按钮被点击”与“显示图片”的代码。在开始程序设计前,需要完成需求分析,并通过教师与学生的讨论来完成相册流程图。流程图是实现程序设计的基本依据,流程图的质量直接决定了程序的质量,需要学生认真完成。完成流程图之后,可以开始程序界面的设计,这时,可以让学生发挥创意,设计出不同的相册界面。完成组件的布局后,要分别设置其特有的属性,可通过组件属性面板并按照App的实际需求来进行设置与修改,如图1所示。设置好组件的属性后,进入逻辑设计环节。在电子相册1.0版本中,主要是实现点击按钮显示图片这一功能。可单击逻辑设计按钮切换到程序设计视图进行代码编写,逻辑代码如图2所示。完成美丽校园App1.0版本的设计后,可以在模拟器中完成调试和修改,有了这个基础版本的电子相册,学生可以在此基础上不断升级,让电子相册功能更强大,或者是设置独具特色的相册。

3.2加入翻页按钮,让电子相册活动起来

通过点击单个按钮来显示相应图片虽然比较直观,但如果图片数量较多,则需要布置同样数量的按钮,这既不利于布局,又不利于代码的学习和提高。因此,可以参考将图片浏览软件中的翻页功能加入进来,以完成电子相册2.0版本的制作。在开始设计之前,同样需要绘制流程图。由于2.0版本加入了翻页功能,相应的界面页发生了变动,组件属性可以参考图3。翻页功能是相册2.0版本的关键,可以引导学生通过理解页码加减来理解翻页。要实现加减就需要引入全局变量、取变量值和合并文本等控件,具体的逻辑设计可以参考图4。实现翻页的逻辑代码不止一种,可以提示学生尝试用不同的代码来实现,比如文本、列表等,关键是引入可以表示页码的代码,实现页码的变换。随后,可以在模拟器上完成调试和修改,加上了翻页功能的电子相册会变得更加完善。

3.3添加自动浏览,完善电子相册整体功能

增加了翻页功能后,用户可以通过点击上下页按钮来浏览图片,如果此时想要点击按钮来实现自动浏览图片的功能,就要引入新的控件,这对于程序设计又提出了新的挑战。要想实现自动浏览功能,就需要在界面设计中添加非可视组件计时器,利用计时器组件的自动计时功能来实现顺序播放。要想实现自动浏览需要解决两个问题,一是怎样让变量按照顺序依次变换,二是当图片播放到最后一张时怎么重头开始播放。要实现这两个要点并不困难,前者可以利用相册2.0版本中的语句,只是现在需要将此语句连接到计时器中去,而后者则可以增加如果控件,让程序运行到最后一张时执行回到第一张的语句。至此,电子相册已经完成了三个不同的版本,后续还可以在前面的基础上增加不同的功能,比如直接跳转至某一页的照片、添加背景音乐、展示多个图片,等等。同样的主题会随着功能的不断变换和完善而制作出不同的电子相册,而要想实现不同的功能自然会运用到不同的控件和语句。随着学习的不断深入,学生在制作出功能各异的电子相册的同时也增强了逻辑思维和编程能力。

4AppInventor项目式教学的研究成效

由于计算机程序设计需要较强的逻辑思维能力、语言表达能力和英语理解能力,大学生在学习过程中尚存在较大难度,对中小学生而言更是难上加难,而且传统的先讲解理论再实践操作的教学方法也无法取得较好的教学效果。但幸运的是,现在的编程软件在不断更新变化,给程序设计教学带来了新的教学思路,能够与层层递进项目式教学模式相结合,使学生在学习程序设计时更具有操作性和探究性,能够联系生活实际,进而培养学生解决实际问题的能力。

4.1以项目为主体画出思维导图,培养任务分解能力

学生在解决综合性问题时,往往会手足无措,因此,教师要帮助学生提高任务分解的能力,把一个大项目分解成若干个小项目。以电子相册为例,可利用思维导图的形式尝试把项目的完成步骤分解为流程图、界面设计、组件设置、逻辑设计等几大块,然后再把大块内容细化,如图5所示。完成任务分解图后,尝试按照详图一步步完成每个分项目,然后将分项目组合起来,完成整个项目的制作。按照“整体-局部-整体”的完成思路,不仅可以提高学生完成项目的能力,而且可以让学生思考整体和局部之间的关系,提高学生从全局考虑问题的能力。

4.2以控件设计为载体,培养学生的编程能力

程序设计是通过特定计算机语言解决具体问题的过程。在进行程序设计的过程中有一个重要的环节,就是将问题通过算法的形式表述出来。在没有可视化的控件作为设计载体之前,算法的理解和表达给学生的学习带来了很大困难,而现在借助AppInventor的直观设计环境,学生可以从简单的程序开始,先不断添加新的控件和功能,然后再通过理解控件之间的逻辑关系来逐步提高程序设计能力。同样是实现图片展示功能,方法是多种多样的,比如直接设定语句,或先设置列表再选择,或用随机数来实现。

4.3不断完善和创新项目,培养学生的创新能力

从相册1.0版本更新到相册3.0版本的过程中涉及了不同的设计思路,应用了不同的控件和语句,使学生思考如何在同一主题的情况下实现不同的功能。在教师和学生、学生和学生的交流过程中,学生的创新能力得到了锻炼。按照这样的教学任务设计思路,还可以做出同一主题、不同设计思路的特色作品,比如画图板App、计算器App、找不同游戏App,等等,每一个App都可以按照从基础功能到综合功能的思路来进行制作,让学生在不断丰富完善App功能的过程中提升程序设计能力。

5反思

程序设计的过程是先将现实中的问题用算法描述出来,然后再将算法转为相关的程序设计语言,最后再通过计算机执行相关语句来实现。利用可视化的软件来编辑程序会更接近学生在生活中的思维方式。为了进一步降低编程的难度,引导学生完成程序设计,在实际教学中设计了层层递进的项目式教学方法,并将其运用到了AppInventor程序设计的过程中,让学生在学习的过程中能够体会到编程所带来的乐趣。但在教学过程中也暴露出了不少问题,比如怎样更好地提升学生团队合作的能力,怎样将模块化编辑和代码编辑紧密联系起来,怎样提升学生对于程序设计的理解,等等。在后续的教学中,将继续以层层递进的项目式教学法为主线不断更新和完善教学过程,增强各个项目的延续性,培养学生的逻辑思考能力。

作者:张遹东 单位:杭州师范大学东城实验学校